Add input HAL methods for getting device properties.
A property map holds the collection of the properties for a given
device identifier. HAL modules allocate and release these property maps
to control the lifetime of the data. The host will typically open and
read the corresponding idc file on allocation, and release these
resources when it is freed.
Change-Id: Ia13ec7b7abf1a79eeed87dc744c174a37f1fb8a9
diff --git a/modules/input/evdev/InputHost.cpp b/modules/input/evdev/InputHost.cpp
index 0903f47..6a65fcd 100644
--- a/modules/input/evdev/InputHost.cpp
+++ b/modules/input/evdev/InputHost.cpp
@@ -47,6 +47,27 @@
mCallbacks.input_device_definition_add_report(mHost, mDeviceDefinition, r);
}
+InputProperty::~InputProperty() {
+ mCallbacks.input_free_device_property(mHost, mProperty);
+}
+
+const char* InputProperty::getKey() {
+ return mCallbacks.input_get_property_key(mHost, mProperty);
+}
+
+const char* InputProperty::getValue() {
+ return mCallbacks.input_get_property_value(mHost, mProperty);
+}
+
+InputPropertyMap::~InputPropertyMap() {
+ mCallbacks.input_free_device_property_map(mHost, mMap);
+}
+
+InputProperty InputPropertyMap::getDeviceProperty(const char* key) {
+ return InputProperty(mHost, mCallbacks,
+ mCallbacks.input_get_device_property(mHost, mMap, key));
+}
+
InputDeviceIdentifier InputHost::createDeviceIdentifier(const char* name, int32_t productId,
int32_t vendorId, InputBus bus, const char* uniqueId) {
return mCallbacks.create_device_identifier(mHost, name, productId, vendorId, bus, uniqueId);
@@ -75,4 +96,9 @@
return mCallbacks.unregister_device(mHost, handle);
}
+InputPropertyMap InputHost::getDevicePropertyMap(InputDeviceIdentifier id) {
+ return InputPropertyMap(mHost, mCallbacks,
+ mCallbacks.input_get_device_property_map(mHost, id));
+}
+
} // namespace android