summaryrefslogtreecommitdiffstats
path: root/src/plugins/sensors/android/src/androidjnisensors.cpp
diff options
context:
space:
mode:
authorPaul Olav Tvete <paul.tvete@digia.com>2014-08-08 18:31:20 +0200
committerPaul Olav Tvete <paul.tvete@digia.com>2014-08-12 09:24:51 +0200
commitea7af7f00886f77941b81262e597c3b7f3477f48 (patch)
tree535e61590542e9f6e464b93de16202ce239b7e3b /src/plugins/sensors/android/src/androidjnisensors.cpp
parent825ae95d8984a3daa49ad81a91e85483918799af (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.cpp16
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;
}