diff options
author | Alexey Polyudov <apolyudov@google.com> | 2017-05-25 21:00:18 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2017-05-25 21:00:19 +0000 |
commit | 7cc5031132389f902d70f0c2d85593ba752cfc09 (patch) | |
tree | 9c6eabcfe9acdce4de758ef38fa4723a3d2430ad | |
parent | ac90000da30da69fa1ed15ad5b481dfea4b9b60c (diff) | |
parent | 1c50cefc4e4dcd9f66262da7a8a40944c9da31d9 (diff) | |
download | libhardware-7cc5031132389f902d70f0c2d85593ba752cfc09.tar.gz |
Merge "sensors: route sensor handle for multi-hal event injection"
-rw-r--r-- | modules/sensors/multihal.cpp | 6 |
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); |