summaryrefslogtreecommitdiffstats
path: root/src/plugins/sensors/android/sensoreventqueue.h
diff options
context:
space:
mode:
authorJuha Vuolle <juha.vuolle@insta.fi>2021-01-14 15:06:32 +0200
committerJuha Vuolle <juha.vuolle@insta.fi>2021-05-17 08:10:46 +0300
commitf5dafafe912b7367c35fcf441eadc704b8dc3e27 (patch)
tree384e3a30d1d4b6122e3ae731acb10dc66cfce57a /src/plugins/sensors/android/sensoreventqueue.h
parent5ff403d500cd4edfa313a3629b393abf56c64869 (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.h3
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