diff options
author | Mohammad Saboorian <msab@google.com> | 2021-12-15 21:08:53 +0000 |
---|---|---|
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2021-12-15 21:08:53 +0000 |
commit | 201588159b3ee64aab20f34ca36a02ff65547821 (patch) | |
tree | 726a983ea89db0efb0a3c967602a504ed3936d19 /sensors | |
parent | a9b1125901bc8c38ce29ddea2a4914a9e0cb124e (diff) | |
parent | 82f7edcc5ce4919d0d203651e75096dac96c4b05 (diff) | |
download | goldfish-201588159b3ee64aab20f34ca36a02ff65547821.tar.gz |
Merge "Trigger WRIST_TILT sensor on each new data" am: bafb5d5104 am: 82f7edcc5c
Original change: https://android-review.googlesource.com/c/device/generic/goldfish/+/1924087
Change-Id: Iec25bd6866963102940371929495799ba578ec3e
Diffstat (limited to 'sensors')
-rw-r--r-- | sensors/multihal_sensors.h | 2 | ||||
-rw-r--r-- | sensors/multihal_sensors_qemu.cpp | 13 | ||||
-rw-r--r-- | sensors/sensor_list.cpp | 3 |
3 files changed, 12 insertions, 6 deletions
diff --git a/sensors/multihal_sensors.h b/sensors/multihal_sensors.h index 9b57bc61..57f63683 100644 --- a/sensors/multihal_sensors.h +++ b/sensors/multihal_sensors.h @@ -85,7 +85,7 @@ private: float lastHingeAngle1Value = kSensorNoValue; float lastHingeAngle2Value = kSensorNoValue; float lastHeartRateValue = kSensorNoValue; - float lastWristTiltValue = kSensorNoValue; + float lastWristTiltMeasurement = -1; }; bool isSensorHandleValid(int sensorHandle) const; diff --git a/sensors/multihal_sensors_qemu.cpp b/sensors/multihal_sensors_qemu.cpp index d34ad804..dbdb8597 100644 --- a/sensors/multihal_sensors_qemu.cpp +++ b/sensors/multihal_sensors_qemu.cpp @@ -274,17 +274,22 @@ void MultihalSensors::parseQemuSensorEvent(const int pipe, parsed = true; } } else if (const char* values = testPrefix(buf, end, "wrist-tilt", ':')) { - if (sscanf(values, "%f", &payload->scalar) == 1) { - if (!approximatelyEqual(state->lastWristTiltValue, - payload->scalar, 0.001)) { + long measurementId; + int args = sscanf(values, "%f:%ld", &payload->scalar, &measurementId); + if (args == 2) { + if (state->lastWristTiltMeasurement != measurementId) { event.timestamp = nowNs + state->timeBiasNs; event.sensorHandle = kSensorHandleWristTilt; event.sensorType = SensorType::WRIST_TILT_GESTURE; postSensorEvent(event); - state->lastWristTiltValue = payload->scalar; + state->lastWristTiltMeasurement = measurementId; } + } + if (args >= 1) { + // Skip if the measurement id is not included. parsed = true; } + } else if (const char* values = testPrefix(buf, end, "guest-sync", ':')) { long long value; if ((sscanf(values, "%lld", &value) == 1) && (value >= 0)) { diff --git a/sensors/sensor_list.cpp b/sensors/sensor_list.cpp index 9ed37db3..b51cd68c 100644 --- a/sensors/sensor_list.cpp +++ b/sensors/sensor_list.cpp @@ -334,7 +334,8 @@ const SensorInfo kAllSensors[] = { .fifoMaxEventCount = 0, .maxDelay = 500000, .flags = SensorFlagBits::DATA_INJECTION | - SensorFlagBits::SPECIAL_REPORTING_MODE + SensorFlagBits::SPECIAL_REPORTING_MODE | + SensorFlagBits::WAKE_UP }}; constexpr int kSensorNumber = sizeof(kAllSensors) / sizeof(kAllSensors[0]); |