summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTreehugger Robot <android-test-infra-autosubmit@system.gserviceaccount.com>2024-03-12 06:48:19 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2024-03-12 06:48:19 +0000
commite3e953203d9b3af9c87830ea2533058573041471 (patch)
tree44c86fb20484946db479af336202d03f1a6cd27b
parent45fc8c324372e2ad2c326eeecc52fcda828a0283 (diff)
parent903b517d1576559a9dc21fc5c28b90a0c7e05d62 (diff)
downloadgoldfish-e3e953203d9b3af9c87830ea2533058573041471.tar.gz
Merge "Fix checking of the sensor type" into main
-rw-r--r--sensors/multihal_sensors.cpp13
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 {