summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexey Polyudov <apolyudov@google.com>2017-05-25 21:00:18 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2017-05-25 21:00:19 +0000
commit7cc5031132389f902d70f0c2d85593ba752cfc09 (patch)
tree9c6eabcfe9acdce4de758ef38fa4723a3d2430ad
parentac90000da30da69fa1ed15ad5b481dfea4b9b60c (diff)
parent1c50cefc4e4dcd9f66262da7a8a40944c9da31d9 (diff)
downloadlibhardware-7cc5031132389f902d70f0c2d85593ba752cfc09.tar.gz
Merge "sensors: route sensor handle for multi-hal event injection"
-rw-r--r--modules/sensors/multihal.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/modules/sensors/multihal.cpp b/modules/sensors/multihal.cpp
index 4d6013fa..1cea7aeb 100644
--- a/modules/sensors/multihal.cpp
+++ b/modules/sensors/multihal.cpp
@@ -445,7 +445,11 @@ int sensors_poll_context_t::inject_sensor_data(const sensors_event_t *data) {
sensors_poll_device_1_t* v1 = this->get_v1_device_by_handle(data->sensor);
if (halIsAPILevelCompliant(this, data->sensor, SENSORS_DEVICE_API_VERSION_1_4) &&
local_handle >= 0 && v1) {
- retval = v1->inject_sensor_data(v1, data);
+ // if specific sensor is used, we have to replace global sensor handle
+ // with local one, before passing to concrete HAL
+ sensors_event_t data_copy = *data;
+ data_copy.sensor = local_handle;
+ retval = v1->inject_sensor_data(v1, &data_copy);
} else {
ALOGE("IGNORED inject_sensor_data(type=%d, handle=%d) call to non-API-compliant sensor",
data->type, data->sensor);