summaryrefslogtreecommitdiff
path: root/sensors/2.0/default/Sensors.cpp
diff options
context:
space:
mode:
authorBrian Stack <bstack@google.com>2018-11-05 13:48:16 -0800
committerBrian Stack <bstack@google.com>2018-11-13 17:32:10 -0800
commitd23f2006031a033a8edf4f07a73724340d40294a (patch)
tree357ed4fe9858e1cd34569f9f4b1eb54d44a97f25 /sensors/2.0/default/Sensors.cpp
parent9c1867eec850558e04a772cd36f9ff744a2111b9 (diff)
Data Injection Support for Default Sensors HAL 2.0
Implements data injection support for the default Sensors HAL 2.0. Allows events to be injected into the Sensors HAL and these events be written back to the Event FMQ. Bug: 111070257 Test: Passes data injection VTS tests Change-Id: If652417ec0df4148ffb5be3d5dd8bc6f0be65467
Diffstat (limited to 'sensors/2.0/default/Sensors.cpp')
-rw-r--r--sensors/2.0/default/Sensors.cpp18
1 files changed, 12 insertions, 6 deletions
diff --git a/sensors/2.0/default/Sensors.cpp b/sensors/2.0/default/Sensors.cpp
index cceb7d5c25..4346ee1ebf 100644
--- a/sensors/2.0/default/Sensors.cpp
+++ b/sensors/2.0/default/Sensors.cpp
@@ -54,9 +54,11 @@ Return<void> Sensors::getSensorsList(getSensorsList_cb _hidl_cb) {
return Void();
}
-Return<Result> Sensors::setOperationMode(OperationMode /* mode */) {
- // TODO implement
- return Result{};
+Return<Result> Sensors::setOperationMode(OperationMode mode) {
+ for (auto sensor : mSensors) {
+ sensor.second->setOperationMode(mode);
+ }
+ return Result::OK;
}
Return<Result> Sensors::activate(int32_t sensorHandle, bool enabled) {
@@ -120,9 +122,13 @@ Return<Result> Sensors::flush(int32_t sensorHandle) {
return Result::BAD_VALUE;
}
-Return<Result> Sensors::injectSensorData(const Event& /* event */) {
- // TODO implement
- return Result{};
+Return<Result> Sensors::injectSensorData(const Event& event) {
+ auto sensor = mSensors.find(event.sensorHandle);
+ if (sensor != mSensors.end()) {
+ return sensor->second->injectEvent(event);
+ }
+
+ return Result::BAD_VALUE;
}
Return<void> Sensors::registerDirectChannel(const SharedMemInfo& /* mem */,