diff options
author | Brian Stack <bstack@google.com> | 2018-10-23 10:38:03 -0700 |
---|---|---|
committer | Brian Stack <bstack@google.com> | 2018-10-24 16:33:26 -0700 |
commit | 897528dd53b19da07e35959102defc7e5e1e546c (patch) | |
tree | d3a7326377fa2818c734f8b6ad4c0126546722e2 /sensors/2.0/default/Sensors.cpp | |
parent | 9a407f23a6134185c5f720a04dd19b33cf7edab1 (diff) |
Implement activate and batch functions
Implements the activate and batch functions for the default Sensors
2.0 implementation.
Bug: 111070257
Test: Builds
Change-Id: I5987ab722cdd97c7cd7ff466d6d989794171b851
Diffstat (limited to 'sensors/2.0/default/Sensors.cpp')
-rw-r--r-- | sensors/2.0/default/Sensors.cpp | 32 |
1 files changed, 24 insertions, 8 deletions
diff --git a/sensors/2.0/default/Sensors.cpp b/sensors/2.0/default/Sensors.cpp index 9fea647989..29721fa8af 100644 --- a/sensors/2.0/default/Sensors.cpp +++ b/sensors/2.0/default/Sensors.cpp @@ -16,6 +16,7 @@ #include "Sensors.h" +#include <android/hardware/sensors/2.0/types.h> #include <log/log.h> namespace android { @@ -37,8 +38,15 @@ Sensors::~Sensors() { } // Methods from ::android::hardware::sensors::V2_0::ISensors follow. -Return<void> Sensors::getSensorsList(getSensorsList_cb /* _hidl_cb */) { - // TODO implement +Return<void> Sensors::getSensorsList(getSensorsList_cb _hidl_cb) { + std::vector<SensorInfo> sensors; + for (const auto& sensor : mSensors) { + sensors.push_back(sensor.second->getSensorInfo()); + } + + // Call the HIDL callback with the SensorInfo + _hidl_cb(sensors); + return Void(); } @@ -47,9 +55,13 @@ Return<Result> Sensors::setOperationMode(OperationMode /* mode */) { return Result{}; } -Return<Result> Sensors::activate(int32_t /* sensorHandle */, bool /* enabled */) { - // TODO implement - return Result{}; +Return<Result> Sensors::activate(int32_t sensorHandle, bool enabled) { + auto sensor = mSensors.find(sensorHandle); + if (sensor != mSensors.end()) { + sensor->second->activate(enabled); + return Result::OK; + } + return Result::BAD_VALUE; } Return<Result> Sensors::initialize( @@ -86,10 +98,14 @@ Return<Result> Sensors::initialize( return result; } -Return<Result> Sensors::batch(int32_t /* sensorHandle */, int64_t /* samplingPeriodNs */, +Return<Result> Sensors::batch(int32_t sensorHandle, int64_t samplingPeriodNs, int64_t /* maxReportLatencyNs */) { - // TODO implement - return Result{}; + Result result = Result::BAD_VALUE; + auto sensor = mSensors.find(sensorHandle); + if (sensor != mSensors.end() && sensor->second->batch(samplingPeriodNs)) { + result = Result::OK; + } + return result; } Return<Result> Sensors::flush(int32_t /* sensorHandle */) { |