summaryrefslogtreecommitdiff
path: root/modules/sensors/dynamic_sensor/DynamicSensorsSubHal.cpp
diff options
context:
space:
mode:
authorAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2021-09-25 01:07:08 +0000
committerAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2021-09-25 01:07:08 +0000
commiteb40a971c3c5736a5ca445ef009928215c84d9b5 (patch)
treee71c14d8d618bc471344ff3430d42e281b769a16 /modules/sensors/dynamic_sensor/DynamicSensorsSubHal.cpp
parent46756e9e4f9371a3fb8b79e639148b23c3fbca9b (diff)
parent3c7a12d8f1764df734f74b486e57acf1f629dd5e (diff)
Snap for 7766737 from 3c7a12d8f1764df734f74b486e57acf1f629dd5e to sc-v2-release
Change-Id: Ie7f9b61f2e0cb7382712849223e8100c727d9c6d
Diffstat (limited to 'modules/sensors/dynamic_sensor/DynamicSensorsSubHal.cpp')
-rw-r--r--modules/sensors/dynamic_sensor/DynamicSensorsSubHal.cpp35
1 files changed, 34 insertions, 1 deletions
diff --git a/modules/sensors/dynamic_sensor/DynamicSensorsSubHal.cpp b/modules/sensors/dynamic_sensor/DynamicSensorsSubHal.cpp
index df636a3b..9f9a9fef 100644
--- a/modules/sensors/dynamic_sensor/DynamicSensorsSubHal.cpp
+++ b/modules/sensors/dynamic_sensor/DynamicSensorsSubHal.cpp
@@ -20,12 +20,22 @@
#include <log/log.h>
using ::android::hardware::sensors::V1_0::Result;
+using ::android::hardware::sensors::V2_1::SensorInfo;
+using ::android::hardware::sensors::V2_1::SensorType;
template<class T> using Return = ::android::hardware::Return<T>;
using ::android::hardware::Void;
namespace android {
namespace SensorHalExt {
+DynamicSensorsSubHal::DynamicSensorsSubHal() {
+ // initialize dynamic sensor manager
+ mDynamicSensorManager.reset(
+ DynamicSensorManager::createInstance(kDynamicHandleBase,
+ kMaxDynamicHandleCount,
+ nullptr /* callback */));
+}
+
// ISensors.
Return<Result> DynamicSensorsSubHal::setOperationMode(OperationMode mode) {
return (mode == static_cast<OperationMode>(SENSOR_HAL_NORMAL_MODE) ?
@@ -77,9 +87,32 @@ Return<void> DynamicSensorsSubHal::configDirectReport(
}
Return<void> DynamicSensorsSubHal::getSensorsList_2_1(
- getSensorsList_2_1_cb callback __unused) {
+ getSensorsList_2_1_cb callback) {
+ const sensor_t& sensor_info = mDynamicSensorManager->getDynamicMetaSensor();
+ std::vector<SensorInfo> sensors;
+
ALOGD("DynamicSensorsSubHal::getSensorsList_2_1 invoked.");
+ // get the dynamic sensor info
+ sensors.resize(1);
+ sensors[0].sensorHandle = sensor_info.handle;
+ sensors[0].name = sensor_info.name;
+ sensors[0].vendor = sensor_info.vendor;
+ sensors[0].version = 1;
+ sensors[0].type = static_cast<SensorType>(sensor_info.type);
+ sensors[0].typeAsString = sensor_info.stringType;
+ sensors[0].maxRange = sensor_info.maxRange;
+ sensors[0].resolution = sensor_info.resolution;
+ sensors[0].power = sensor_info.power;
+ sensors[0].minDelay = sensor_info.minDelay;
+ sensors[0].fifoReservedEventCount = sensor_info.fifoReservedEventCount;
+ sensors[0].fifoMaxEventCount = sensor_info.fifoMaxEventCount;
+ sensors[0].requiredPermission = sensor_info.requiredPermission;
+ sensors[0].maxDelay = sensor_info.maxDelay;
+ sensors[0].flags = sensor_info.flags;
+
+ callback(sensors);
+
return Void();
}