diff options
author | Andy Shaw <andy.shaw@qt.io> | 2018-10-30 12:00:20 +0100 |
---|---|---|
committer | Andy Shaw <andy.shaw@qt.io> | 2018-10-31 06:18:08 +0000 |
commit | 6ad68d73e4f9c00af6cc030a168458acb7b69b50 (patch) | |
tree | cbbf81f8c4d11d668ed171424e94e3da6a0afa6e /src | |
parent | 76f3abf8e03344a73e32d1324cd7e6751b4039de (diff) |
Android: Implement calibrationLevel for QCompassReading
[ChangeLog][Platform Specific Changes][Android] QCompassReading::calibrationLevel
now returns a valid value when possible.
Change-Id: Ia7b6af9fc14d4edc4ce04af251eb29c84f08b957
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
Reviewed-by: Lorn Potter <lorn.potter@gmail.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/plugins/sensors/android/src/androidcompass.cpp | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/src/plugins/sensors/android/src/androidcompass.cpp b/src/plugins/sensors/android/src/androidcompass.cpp index 610dcde7..0911d901 100644 --- a/src/plugins/sensors/android/src/androidcompass.cpp +++ b/src/plugins/sensors/android/src/androidcompass.cpp @@ -49,7 +49,7 @@ class AndroidAccelerometerListener : public AndroidSensors::AndroidSensorsListen public: AndroidAccelerometerListener(AndroidCompass *parent) - : m_compass(parent) + : accuracy(0), m_compass(parent) { memset(reading, 0, sizeof(reading)); } @@ -64,9 +64,9 @@ public: AndroidSensors::unregisterListener(AndroidSensors::TYPE_ACCELEROMETER, this); } - void onAccuracyChanged(jint accuracy) override + void onAccuracyChanged(jint value) override { - Q_UNUSED(accuracy); + accuracy = value; } void onSensorChanged(jlong /*timestamp*/, const jfloat *values, uint size) override @@ -80,6 +80,7 @@ public: } jfloat reading[3]; + jint accuracy; private: AndroidCompass *m_compass; @@ -89,7 +90,7 @@ class AndroidMagnetometerListener : public AndroidSensors::AndroidSensorsListene { public: AndroidMagnetometerListener(AndroidCompass *parent) - :m_compass(parent) + : accuracy(0), m_compass(parent) { memset(reading, 0, sizeof(reading)); } @@ -104,9 +105,9 @@ public: AndroidSensors::unregisterListener(AndroidSensors::TYPE_MAGNETIC_FIELD, this); } - void onAccuracyChanged(jint accuracy) override + void onAccuracyChanged(jint value) override { - Q_UNUSED(accuracy); + accuracy = value; } void onSensorChanged(jlong /*timestamp*/, const jfloat *values, uint size) override @@ -120,6 +121,7 @@ public: } jfloat reading[3]; + jint accuracy; private: AndroidCompass *m_compass; }; @@ -169,5 +171,7 @@ void AndroidCompass::testStuff() qreal azimuth = AndroidSensors::getCompassAzimuth(m_accelerometerListener->reading, m_magnetometerListener->reading); m_reading.setAzimuth(qRadiansToDegrees(azimuth)); + const qreal accuracyValue = (m_accelerometerListener->accuracy + m_magnetometerListener->accuracy) / 6; + m_reading.setCalibrationLevel(accuracyValue); newReadingAvailable(); } |