summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFrederik Gladhorn <frederik.gladhorn@digia.com>2014-03-24 16:08:10 +0100
committerFrederik Gladhorn <frederik.gladhorn@digia.com>2014-03-24 16:08:10 +0100
commit01e97935c61498adb650d2e639ac8948a5e67a8f (patch)
tree46f122dd2ba55acd3bc257811c572c4349500c28
parenta0ba97f918666d46c20964dd2033b407446c4436 (diff)
parent971fc95eca1d9db93aa4bdb75793dfe83e4a97db (diff)
Merge remote-tracking branch 'origin/stable' into dev
-rw-r--r--doc/config/qtsensors-dita.qdocconf33
-rw-r--r--src/imports/sensors/qmlsensorgesture.cpp2
-rw-r--r--src/plugins/sensors/android/src/androidaccelerometer.cpp38
-rw-r--r--src/plugins/sensors/android/src/androidaccelerometer.h7
-rw-r--r--src/plugins/sensors/android/src/androidcommonsensor.h2
-rw-r--r--src/plugins/sensors/android/src/main.cpp5
6 files changed, 51 insertions, 36 deletions
diff --git a/doc/config/qtsensors-dita.qdocconf b/doc/config/qtsensors-dita.qdocconf
deleted file mode 100644
index 0ae12e7e..00000000
--- a/doc/config/qtsensors-dita.qdocconf
+++ /dev/null
@@ -1,33 +0,0 @@
-# Name of the project.
-project = Qt Sensors
-
-# Directories in which to search for files to document and images.
-# By default set to the root directory of the project for sources
-# and headers and qdoc will therefore generate output for each file.
-# Images should be placed in <rootdir>/dic/images and examples in
-# <rootdir>/examples.
-# Paths are relative to the location of this file.
-exampledirs += ../src/examples \
- ../.. \
- ../../examples \
- ../src
-
-headerdirs += ../src \
- ../../src
-
-imagedirs += ../src/images \
-
-sourcedirs += ../src \
- ../../src
-
-excludedirs +=
-
-#Do not change the variables after this line unless you know what you are doing.
-
-outputdir = ../ditaxml
-outputformats = DITAXML
-
-examples.fileextensions = "*.cpp *.h *.js *.svg *.xml *.ui *.qml"
-examples.imageextensions = "*.png *.jpeg *.jpg *.gif *.mng"
-headers.fileextensions = "*.h *.ch *.h++ *.hh *.hpp *.hxx"
-sources.fileextensions = "*.cpp *.qdoc *.mm *.qml"
diff --git a/src/imports/sensors/qmlsensorgesture.cpp b/src/imports/sensors/qmlsensorgesture.cpp
index 3771f6fb..42aa25f7 100644
--- a/src/imports/sensors/qmlsensorgesture.cpp
+++ b/src/imports/sensors/qmlsensorgesture.cpp
@@ -214,6 +214,8 @@ void QmlSensorGesture::setEnabled(bool value)
\qmlsignal SensorGesture::detected(string gesture)
This signal is emitted whenever a gesture is detected.
The gesture parameter contains the gesture that was detected.
+
+ The corresponding handler is \c onDetected.
*/
/*
diff --git a/src/plugins/sensors/android/src/androidaccelerometer.cpp b/src/plugins/sensors/android/src/androidaccelerometer.cpp
index 36ce08e3..5a42d0cb 100644
--- a/src/plugins/sensors/android/src/androidaccelerometer.cpp
+++ b/src/plugins/sensors/android/src/androidaccelerometer.cpp
@@ -1,6 +1,7 @@
/****************************************************************************
**
** Copyright (C) 2013 BogDan Vatra <bogdan@kde.org>
+** Copyright (C) 2014 BlackBerry Limited. All rights reserved.
** Contact: http://www.qt-project.org/legal
**
** This file is part of the QtSensors module of the Qt Toolkit.
@@ -43,7 +44,13 @@
AndroidAccelerometer::AndroidAccelerometer(AndroidSensors::AndroidSensorType type, QSensor *sensor)
: AndroidCommonSensor<QAccelerometerReading>(type, sensor)
-{}
+{
+ QAccelerometer * const accelerometer = qobject_cast<QAccelerometer *>(sensor);
+ if (accelerometer) {
+ connect(accelerometer, SIGNAL(accelerationModeChanged(AccelerationMode)),
+ this, SLOT(applyAccelerationMode()));
+ }
+}
void AndroidAccelerometer::onSensorChanged(jlong timestamp, const jfloat *values, uint size)
{
@@ -61,3 +68,32 @@ void AndroidAccelerometer::onAccuracyChanged(jint accuracy)
{
Q_UNUSED(accuracy)
}
+
+void AndroidAccelerometer::applyAccelerationMode()
+{
+ const QAccelerometer * const accelerometer = qobject_cast<QAccelerometer *>(sensor());
+ if (accelerometer) {
+ stop(); //Stop previous sensor and start new one
+ m_type = modeToSensor(accelerometer->accelerationMode());
+ start();
+ }
+}
+AndroidSensors::AndroidSensorType AndroidAccelerometer::modeToSensor(QAccelerometer::AccelerationMode mode)
+{
+ AndroidSensors::AndroidSensorType type;
+
+ switch (mode) {
+ case QAccelerometer::Gravity:
+ type = AndroidSensors::TYPE_GRAVITY;
+ break;
+ case QAccelerometer::User:
+ type = AndroidSensors::TYPE_LINEAR_ACCELERATION;
+ break;
+ default:
+ case QAccelerometer::Combined:
+ type = AndroidSensors::TYPE_ACCELEROMETER;
+ break;
+ }
+
+ return type;
+}
diff --git a/src/plugins/sensors/android/src/androidaccelerometer.h b/src/plugins/sensors/android/src/androidaccelerometer.h
index 31363014..4eb7471e 100644
--- a/src/plugins/sensors/android/src/androidaccelerometer.h
+++ b/src/plugins/sensors/android/src/androidaccelerometer.h
@@ -47,13 +47,18 @@
class AndroidAccelerometer : public AndroidCommonSensor<QAccelerometerReading>
{
+ Q_OBJECT
+
public:
AndroidAccelerometer(AndroidSensors::AndroidSensorType type, QSensor *sensor);
-
+ static AndroidSensors::AndroidSensorType modeToSensor(QAccelerometer::AccelerationMode mode);
private:
void onAccuracyChanged(jint accuracy) Q_DECL_OVERRIDE;
void onSensorChanged(jlong timestamp, const jfloat *values, uint size) Q_DECL_OVERRIDE;
+private Q_SLOTS:
+ void applyAccelerationMode();
+
};
#endif // ANDROIDACCELEROMETER_H
diff --git a/src/plugins/sensors/android/src/androidcommonsensor.h b/src/plugins/sensors/android/src/androidcommonsensor.h
index 396f4105..134c2b75 100644
--- a/src/plugins/sensors/android/src/androidcommonsensor.h
+++ b/src/plugins/sensors/android/src/androidcommonsensor.h
@@ -79,9 +79,9 @@ public:
protected:
ReaderType m_reader;
+ AndroidSensors::AndroidSensorType m_type;
private:
- AndroidSensors::AndroidSensorType m_type;
bool m_isStarted;
};
diff --git a/src/plugins/sensors/android/src/main.cpp b/src/plugins/sensors/android/src/main.cpp
index 17d499ef..3326208b 100644
--- a/src/plugins/sensors/android/src/main.cpp
+++ b/src/plugins/sensors/android/src/main.cpp
@@ -43,6 +43,7 @@
#include <qsensorplugin.h>
#include <qsensorbackend.h>
#include <qsensormanager.h>
+#include <qaccelerometer.h>
#include "androidaccelerometer.h"
#include "androidgyroscope.h"
#include "androidlight.h"
@@ -112,7 +113,11 @@ public:
AndroidSensorType type = static_cast<AndroidSensorType>(sensor->identifier().toInt());
switch (type) {
case TYPE_ACCELEROMETER:
+ {
+ QAccelerometer * const accelerometer = qobject_cast<QAccelerometer *>(sensor);
+ AndroidSensors::AndroidSensorType type = AndroidAccelerometer::modeToSensor(accelerometer->accelerationMode());
return new AndroidAccelerometer(type, sensor);
+ }
case TYPE_AMBIENT_TEMPERATURE:
case TYPE_TEMPERATURE:
return new AndroidTemperature(type, sensor);