diff options
author | Juha Vuolle <juha.vuolle@insta.fi> | 2021-01-14 15:06:32 +0200 |
---|---|---|
committer | Juha Vuolle <juha.vuolle@insta.fi> | 2021-05-17 08:10:46 +0300 |
commit | f5dafafe912b7367c35fcf441eadc704b8dc3e27 (patch) | |
tree | 384e3a30d1d4b6122e3ae731acb10dc66cfce57a /src/plugins/sensors/android/sensoreventqueue.h | |
parent | 5ff403d500cd4edfa313a3629b393abf56c64869 (diff) |
Android rotation sensor value and datarate fix
There was a breaking change in Android rotation sensor handling in
Qt 5.12.4 when migrating to NDK usage:
-The unit conversion logic was not transferred as part of
the migration. This task reintroduces the unit conversion part.
-The datarate interval was misinterpreted as usec, whereas it is Hz
Fixes: QTBUG-77423
Change-Id: Ibe51b3dea393e1cbe1502b5611c07f32024daf57
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
(cherry picked from commit edf82b1d6dc7572da93bbdcd5b4ce46fa1dab2ad)
Reviewed-by: Lorn Potter <lorn.potter@gmail.com>
Diffstat (limited to 'src/plugins/sensors/android/sensoreventqueue.h')
-rw-r--r-- | src/plugins/sensors/android/sensoreventqueue.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/plugins/sensors/android/sensoreventqueue.h b/src/plugins/sensors/android/sensoreventqueue.h index 77bf05c6..e6087059 100644 --- a/src/plugins/sensors/android/sensoreventqueue.h +++ b/src/plugins/sensors/android/sensoreventqueue.h @@ -125,8 +125,9 @@ public: void start() override { ASensorEventQueue_enableSensor(m_sensorEventQueue, m_sensor); + // The QSensor datarate is in Hz (frequency), whereas the setEventRate expects microseconds if (sensor()->dataRate() > 0) - ASensorEventQueue_setEventRate(m_sensorEventQueue, m_sensor, std::max(ASensor_getMinDelay(m_sensor), sensor()->dataRate())); + ASensorEventQueue_setEventRate(m_sensorEventQueue, m_sensor, std::max(ASensor_getMinDelay(m_sensor), 1000000/sensor()->dataRate())); m_started = true; } void stop() override |