summaryrefslogtreecommitdiffstats
path: root/modules/input/evdev/InputHost.cpp
diff options
context:
space:
mode:
authorTim Kilbourn <tkilbourn@google.com>2015-02-13 10:35:20 -0800
committerTim Kilbourn <tkilbourn@google.com>2015-03-30 17:21:29 -0700
commit73475a4eb2cebf06f965c58e015d06c333e71e61 (patch)
treeee7d5d7a4673867738f0725a278f54a0f7aaf261 /modules/input/evdev/InputHost.cpp
parent3fba7bebe84b6e2ae515dda142dc3b37071b4dcd (diff)
downloadhardware_libhardware-73475a4eb2cebf06f965c58e015d06c333e71e61.zip
hardware_libhardware-73475a4eb2cebf06f965c58e015d06c333e71e61.tar.gz
hardware_libhardware-73475a4eb2cebf06f965c58e015d06c333e71e61.tar.bz2
Input event hub for evdev input HAL module.
InputHub monitors paths for device changes and input events. InputDeviceManager creates InputDevices and routes input events to them. InputDevices currently just log these events during development. InputHost represents a wrapper around the HAL interface. Change-Id: Ic47d574498eb07bcdcd17812a648539fdf1c69d6
Diffstat (limited to 'modules/input/evdev/InputHost.cpp')
-rw-r--r--modules/input/evdev/InputHost.cpp78
1 files changed, 78 insertions, 0 deletions
diff --git a/modules/input/evdev/InputHost.cpp b/modules/input/evdev/InputHost.cpp
new file mode 100644
index 0000000..0903f47
--- /dev/null
+++ b/modules/input/evdev/InputHost.cpp
@@ -0,0 +1,78 @@
+/*
+ * Copyright (C) 2015 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "InputHost.h"
+
+namespace android {
+
+void InputReport::reportEvent(InputDeviceHandle d) {
+ mCallbacks.report_event(mHost, d, mReport);
+}
+
+void InputReportDefinition::addCollection(InputCollectionId id, int32_t arity) {
+ mCallbacks.input_report_definition_add_collection(mHost, mReportDefinition, id, arity);
+}
+
+void InputReportDefinition::declareUsage(InputCollectionId id, InputUsage usage,
+ int32_t min, int32_t max, float resolution) {
+ mCallbacks.input_report_definition_declare_usage_int(mHost, mReportDefinition,
+ id, usage, min, max, resolution);
+}
+
+void InputReportDefinition::declareUsage(InputCollectionId id, InputUsage* usage,
+ size_t usageCount) {
+ mCallbacks.input_report_definition_declare_usages_bool(mHost, mReportDefinition,
+ id, usage, usageCount);
+}
+
+InputReport InputReportDefinition::allocateReport() {
+ return InputReport(mHost, mCallbacks,
+ mCallbacks.input_allocate_report(mHost, mReportDefinition));
+}
+
+void InputDeviceDefinition::addReport(InputReportDefinition r) {
+ mCallbacks.input_device_definition_add_report(mHost, mDeviceDefinition, r);
+}
+
+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);
+}
+
+InputDeviceDefinition InputHost::createDeviceDefinition() {
+ return InputDeviceDefinition(mHost, mCallbacks, mCallbacks.create_device_definition(mHost));
+}
+
+InputReportDefinition InputHost::createInputReportDefinition() {
+ return InputReportDefinition(mHost, mCallbacks,
+ mCallbacks.create_input_report_definition(mHost));
+}
+
+InputReportDefinition InputHost::createOutputReportDefinition() {
+ return InputReportDefinition(mHost, mCallbacks,
+ mCallbacks.create_output_report_definition(mHost));
+}
+
+InputDeviceHandle InputHost::registerDevice(InputDeviceIdentifier id,
+ InputDeviceDefinition d) {
+ return mCallbacks.register_device(mHost, id, d);
+}
+
+void InputHost::unregisterDevice(InputDeviceHandle handle) {
+ return mCallbacks.unregister_device(mHost, handle);
+}
+
+} // namespace android