diff options
author | Erik Staats <estaats@google.com> | 2021-09-24 05:48:24 -0700 |
---|---|---|
committer | Erik Staats <estaats@google.com> | 2021-09-24 06:16:51 -0700 |
commit | 3c7a12d8f1764df734f74b486e57acf1f629dd5e (patch) | |
tree | e71c14d8d618bc471344ff3430d42e281b769a16 /modules/sensors/dynamic_sensor/DynamicSensorsSubHal.cpp | |
parent | 1d509cf815c5e3319ce4303eabe863b6b8dcf3a1 (diff) |
dynamic_sensor: Add sensor manager init to sub-HAL 2.1.
Bug: 195964858
Test: Verified dynamic sensor manager is present in sensor list and that
no SELinux violations occur on sc-v2-dev and master.
$ make -j28 && \
vendor/google/tools/flashall -w -s 14281FDEE000A5 --disable_verity && \
sleep 90 && adb root
.
.
.
$ adb shell sensor_test list | grep "sensor_test\|Type\|Dynamic"
sensor_test version 74
Type Subtype Name
32 0 Dynamic Sensor Manager
$ adb logcat -d | grep avc | grep sensor
$
Change-Id: Ib3da287e4f4118ad6b19498248e263f8c1662b3a
Diffstat (limited to 'modules/sensors/dynamic_sensor/DynamicSensorsSubHal.cpp')
-rw-r--r-- | modules/sensors/dynamic_sensor/DynamicSensorsSubHal.cpp | 35 |
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(); } |