diff options
author | alk3pInjection <webmaster@raspii.tech> | 2022-10-30 13:40:08 +0800 |
---|---|---|
committer | alk3pInjection <webmaster@raspii.tech> | 2022-10-30 13:40:08 +0800 |
commit | 6970f503da94ebe21b29bfc967bed54a4124ab30 (patch) | |
tree | b258860a3a4398eee734aa1d824f6b604e1ec293 | |
parent | bda6a1960a80cf8ab49821adb67afca6937e51fe (diff) | |
parent | 8bfebba860b2372071c4cd7ad33fecee29a8527a (diff) |
Merge tag 'LA.QSSI.13.0.r1-07200.02-qssi.0' into tachibana
"LA.QSSI.13.0.r1-07200.02-qssi.0"
Change-Id: I6a4d13b1c593bbdd83ac611ee49a3c37a5be0e78
-rw-r--r-- | modules/sensors/dynamic_sensor/HidRawSensor.cpp | 5 | ||||
-rw-r--r-- | modules/sensors/dynamic_sensor/HidRawSensor.h | 6 |
2 files changed, 8 insertions, 3 deletions
diff --git a/modules/sensors/dynamic_sensor/HidRawSensor.cpp b/modules/sensors/dynamic_sensor/HidRawSensor.cpp index 3759e7e9..c90f4f1a 100644 --- a/modules/sensors/dynamic_sensor/HidRawSensor.cpp +++ b/modules/sensors/dynamic_sensor/HidRawSensor.cpp @@ -1066,7 +1066,10 @@ bool HidRawSensor::getHeadTrackerEventData(const std::vector<uint8_t> &message, bool HidRawSensor::getSensorEventData(const std::vector<uint8_t> &message, sensors_event_t *event) { for (const auto &rec : mTranslateTable) { - int64_t v = (message[rec.byteOffset + rec.byteSize - 1] & 0x80) ? -1 : 0; + int64_t v = 0; + if (rec.minValue < 0) { + v = (message[rec.byteOffset + rec.byteSize - 1] & 0x80) ? -1 : 0; + } for (int i = static_cast<int>(rec.byteSize) - 1; i >= 0; --i) { v = (v << 8) | message[rec.byteOffset + i]; // HID is little endian } diff --git a/modules/sensors/dynamic_sensor/HidRawSensor.h b/modules/sensors/dynamic_sensor/HidRawSensor.h index 074482a8..e4564a0f 100644 --- a/modules/sensors/dynamic_sensor/HidRawSensor.h +++ b/modules/sensors/dynamic_sensor/HidRawSensor.h @@ -154,9 +154,11 @@ private: bool getReportFieldValue(const std::vector<uint8_t> &message, ReportTranslateRecord* rec, ValueType* value) { bool valid = true; - int64_t v; + int64_t v = 0; + if (rec->minValue < 0) { + v = (message[rec->byteOffset + rec->byteSize - 1] & 0x80) ? -1 : 0; + } - v = (message[rec->byteOffset + rec->byteSize - 1] & 0x80) ? -1 : 0; for (int i = static_cast<int>(rec->byteSize) - 1; i >= 0; --i) { v = (v << 8) | message[rec->byteOffset + i]; // HID is little endian } |