diff options
author | Paul Olav Tvete <paul.tvete@digia.com> | 2014-08-08 18:31:20 +0200 |
---|---|---|
committer | Paul Olav Tvete <paul.tvete@digia.com> | 2014-08-12 09:24:51 +0200 |
commit | ea7af7f00886f77941b81262e597c3b7f3477f48 (patch) | |
tree | 535e61590542e9f6e464b93de16202ce239b7e3b /src/plugins/sensors/android/src/androidjnisensors.cpp | |
parent | 825ae95d8984a3daa49ad81a91e85483918799af (diff) |
Compass sensor implementation for Android
Change-Id: Ic13d2d1e400a92b2f0c3c83e279c58b799f9d06b
Reviewed-by: Lorn Potter <lorn.potter@jollamobile.com>
Diffstat (limited to 'src/plugins/sensors/android/src/androidjnisensors.cpp')
-rw-r--r-- | src/plugins/sensors/android/src/androidjnisensors.cpp | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/plugins/sensors/android/src/androidjnisensors.cpp b/src/plugins/sensors/android/src/androidjnisensors.cpp index 87889a89..9a7b671a 100644 --- a/src/plugins/sensors/android/src/androidjnisensors.cpp +++ b/src/plugins/sensors/android/src/androidjnisensors.cpp @@ -54,6 +54,7 @@ static jmethodID registerSensorMethodId; static jmethodID unregisterSensorMethodId; static jmethodID getSensorDescriptionMethodId; static jmethodID getSensorMaximumRangeMethodId; +static jmethodID getCompassAzimuthId; static QHash<int, QList<AndroidSensors::AndroidSensorsListenerInterface *> > listenersHash; QReadWriteLock listenersLocker; @@ -166,6 +167,20 @@ namespace AndroidSensors } return true; } + + qreal getCompassAzimuth(jfloat *accelerometerReading, jfloat *magnetometerReading) + { + AttachedJNIEnv aenv; + if (!aenv.jniEnv) + return 0.0; + return aenv.jniEnv->CallStaticFloatMethod(sensorsClass, getCompassAzimuthId, + accelerometerReading[0], + accelerometerReading[1], + accelerometerReading[2], + magnetometerReading[0], + magnetometerReading[1], + magnetometerReading[2]); + } } static const char logTag[] = "Qt"; @@ -227,6 +242,7 @@ static bool registerNatives(JNIEnv *env) GET_AND_CHECK_STATIC_METHOD(unregisterSensorMethodId, sensorsClass, "unregisterSensor", "(I)Z"); GET_AND_CHECK_STATIC_METHOD(getSensorDescriptionMethodId, sensorsClass, "getSensorDescription", "(I)Ljava/lang/String;"); GET_AND_CHECK_STATIC_METHOD(getSensorMaximumRangeMethodId, sensorsClass, "getSensorMaximumRange", "(I)F"); + GET_AND_CHECK_STATIC_METHOD(getCompassAzimuthId, sensorsClass, "getCompassAzimuth", "(FFFFFF)F"); return true; } |