diff options
author | Treehugger Robot <android-test-infra-autosubmit@system.gserviceaccount.com> | 2024-03-12 06:48:19 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2024-03-12 06:48:19 +0000 |
commit | e3e953203d9b3af9c87830ea2533058573041471 (patch) | |
tree | 44c86fb20484946db479af336202d03f1a6cd27b | |
parent | 45fc8c324372e2ad2c326eeecc52fcda828a0283 (diff) | |
parent | 903b517d1576559a9dc21fc5c28b90a0c7e05d62 (diff) | |
download | goldfish-e3e953203d9b3af9c87830ea2533058573041471.tar.gz |
Merge "Fix checking of the sensor type" into main
-rw-r--r-- | sensors/multihal_sensors.cpp | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/sensors/multihal_sensors.cpp b/sensors/multihal_sensors.cpp index beb34d92..829c501c 100644 --- a/sensors/multihal_sensors.cpp +++ b/sensors/multihal_sensors.cpp @@ -39,6 +39,17 @@ struct SensorsTransportStub : public SensorsTransport { const char* Name() const override { return "stub"; } }; +// https://android.googlesource.com/platform/hardware/interfaces/+/refs/heads/main/sensors/aidl/android/hardware/sensors/SensorInfo.aidl#146 +// 3 bits starting from the 1st: MMMx +uint32_t getSensorReportingMode(const uint32_t sensorFlagBits) { + return sensorFlagBits & (7U << 1); +} + +bool isOnChangeSensor(const uint32_t sensorFlagBits) { + return getSensorReportingMode(sensorFlagBits) == + static_cast<uint32_t>(SensorFlagBits::ON_CHANGE_MODE); +} + const SensorsTransportStub g_sensorsTransportStub; } @@ -140,7 +151,7 @@ Return<Result> MultihalSensors::activate(const int32_t sensorHandle, if (enabled) { const SensorInfo* sensor = getSensorInfoByHandle(sensorHandle); LOG_ALWAYS_FATAL_IF(!sensor); - if (sensor->flags & static_cast<uint32_t>(SensorFlagBits::ON_CHANGE_MODE)) { + if (isOnChangeSensor(sensor->flags)) { doPostSensorEventLocked(*sensor, activationOnChangeSensorEvent(sensorHandle, *sensor)); } else { |