summaryrefslogtreecommitdiffstats
path: root/src/plugins
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins')
-rw-r--r--src/plugins/sensorgestures/qtsensors/qcoversensorgesturerecognizer.h2
-rw-r--r--src/plugins/sensorgestures/qtsensors/qdoubletapsensorgesturerecognizer.cpp2
-rw-r--r--src/plugins/sensorgestures/qtsensors/qdoubletapsensorgesturerecognizer.h4
-rw-r--r--src/plugins/sensorgestures/qtsensors/qfreefallsensorgesturerecognizer.h2
-rw-r--r--src/plugins/sensorgestures/qtsensors/qhoversensorgesturerecognizer.h2
-rw-r--r--src/plugins/sensorgestures/qtsensors/qpickupsensorgesturerecognizer.h2
-rw-r--r--src/plugins/sensorgestures/qtsensors/qshake2recognizer.h2
-rw-r--r--src/plugins/sensorgestures/qtsensors/qslamgesturerecognizer.cpp1
-rw-r--r--src/plugins/sensorgestures/qtsensors/qslamgesturerecognizer.h7
-rw-r--r--src/plugins/sensorgestures/qtsensors/qtsensorgestureplugin.cpp2
-rw-r--r--src/plugins/sensorgestures/qtsensors/qtsensorgestureplugin.h2
-rw-r--r--src/plugins/sensorgestures/qtsensors/qturnoversensorgesturerecognizer.h2
-rw-r--r--src/plugins/sensorgestures/qtsensors/qtwistsensorgesturerecognizer.h2
-rw-r--r--src/plugins/sensorgestures/qtsensors/qwhipsensorgesturerecognizer.h2
-rw-r--r--src/plugins/sensorgestures/shake/qshakerecognizer.h2
-rw-r--r--src/plugins/sensorgestures/shake/qshakesensorgestureplugin.cpp2
-rw-r--r--src/plugins/sensorgestures/shake/qshakesensorgestureplugin.h2
-rw-r--r--src/plugins/sensors/android/jar/src/org/qtproject/qt5/android/sensors/QtSensors.java19
-rw-r--r--src/plugins/sensors/android/src/androidcompass.cpp173
-rw-r--r--src/plugins/sensors/android/src/androidcompass.h76
-rw-r--r--src/plugins/sensors/android/src/androidjnisensors.cpp16
-rw-r--r--src/plugins/sensors/android/src/androidjnisensors.h1
-rw-r--r--src/plugins/sensors/android/src/main.cpp11
-rw-r--r--src/plugins/sensors/android/src/src.pro2
-rw-r--r--src/plugins/sensors/blackberry/bbdistancesensor.cpp58
-rw-r--r--src/plugins/sensors/blackberry/bbdistancesensor.h60
-rw-r--r--src/plugins/sensors/blackberry/blackberry.pro2
-rw-r--r--src/plugins/sensors/blackberry/main.cpp6
-rw-r--r--src/plugins/sensors/generic/genericalssensor.h6
-rw-r--r--src/plugins/sensors/generic/genericorientationsensor.h6
-rw-r--r--src/plugins/sensors/generic/genericrotationsensor.h8
-rw-r--r--src/plugins/sensors/generic/generictiltsensor.h6
-rw-r--r--src/plugins/sensors/generic/main.cpp6
-rw-r--r--src/plugins/sensors/sensorfw/sensorfwproximitysensor.cpp14
-rw-r--r--src/plugins/sensors/sensorfw/sensorfwproximitysensor.h1
-rw-r--r--src/plugins/sensors/winrt/main.cpp10
-rw-r--r--src/plugins/sensors/winrt/winrt.pro13
-rw-r--r--src/plugins/sensors/winrt/winrtaccelerometer.cpp10
-rw-r--r--src/plugins/sensors/winrt/winrtambientlightsensor.cpp10
-rw-r--r--src/plugins/sensors/winrt/winrtcompass.cpp13
-rw-r--r--src/plugins/sensors/winrt/winrtgyroscope.cpp10
-rw-r--r--src/plugins/sensors/winrt/winrtrotationsensor.cpp10
42 files changed, 519 insertions, 68 deletions
diff --git a/src/plugins/sensorgestures/qtsensors/qcoversensorgesturerecognizer.h b/src/plugins/sensorgestures/qtsensors/qcoversensorgesturerecognizer.h
index 5df98cc2..87506b25 100644
--- a/src/plugins/sensorgestures/qtsensors/qcoversensorgesturerecognizer.h
+++ b/src/plugins/sensorgestures/qtsensors/qcoversensorgesturerecognizer.h
@@ -43,7 +43,7 @@
#ifndef QCOVERSENSORGESTURERECOGNIZER_H
#define QCOVERSENSORGESTURERECOGNIZER_H
-#include <qsensorgesturerecognizer.h>
+#include <QtSensors/qsensorgesturerecognizer.h>
#include <QTimer>
#include "qtsensorgesturesensorhandler.h"
diff --git a/src/plugins/sensorgestures/qtsensors/qdoubletapsensorgesturerecognizer.cpp b/src/plugins/sensorgestures/qtsensors/qdoubletapsensorgesturerecognizer.cpp
index 444a8e68..1a9f51b8 100644
--- a/src/plugins/sensorgestures/qtsensors/qdoubletapsensorgesturerecognizer.cpp
+++ b/src/plugins/sensorgestures/qtsensors/qdoubletapsensorgesturerecognizer.cpp
@@ -39,7 +39,7 @@
**
****************************************************************************/
-#include <QTapSensor>
+#include <QtSensors/QTapSensor>
#include "qdoubletapsensorgesturerecognizer.h"
QT_BEGIN_NAMESPACE
diff --git a/src/plugins/sensorgestures/qtsensors/qdoubletapsensorgesturerecognizer.h b/src/plugins/sensorgestures/qtsensors/qdoubletapsensorgesturerecognizer.h
index e1e660b3..9d3ba840 100644
--- a/src/plugins/sensorgestures/qtsensors/qdoubletapsensorgesturerecognizer.h
+++ b/src/plugins/sensorgestures/qtsensors/qdoubletapsensorgesturerecognizer.h
@@ -44,8 +44,8 @@
#include <QtSensors/QSensor>
-#include <qsensorgesturerecognizer.h>
-#include <QTapSensor>
+#include <QtSensors/qsensorgesturerecognizer.h>
+#include <QtSensors/QTapSensor>
#include "qtsensorgesturesensorhandler.h"
diff --git a/src/plugins/sensorgestures/qtsensors/qfreefallsensorgesturerecognizer.h b/src/plugins/sensorgestures/qtsensors/qfreefallsensorgesturerecognizer.h
index 9f72582a..7e2635a4 100644
--- a/src/plugins/sensorgestures/qtsensors/qfreefallsensorgesturerecognizer.h
+++ b/src/plugins/sensorgestures/qtsensors/qfreefallsensorgesturerecognizer.h
@@ -44,7 +44,7 @@
#ifndef QFREEFALLSENSORGESTURERECOGNIZER_H
#define QFREEFALLSENSORGESTURERECOGNIZER_H
-#include <qsensorgesturerecognizer.h>
+#include <QtSensors/qsensorgesturerecognizer.h>
#include "qtsensorgesturesensorhandler.h"
diff --git a/src/plugins/sensorgestures/qtsensors/qhoversensorgesturerecognizer.h b/src/plugins/sensorgestures/qtsensors/qhoversensorgesturerecognizer.h
index d8dc0097..8749cd0b 100644
--- a/src/plugins/sensorgestures/qtsensors/qhoversensorgesturerecognizer.h
+++ b/src/plugins/sensorgestures/qtsensors/qhoversensorgesturerecognizer.h
@@ -43,7 +43,7 @@
#ifndef QHOVERSENSORGESTURERECOGNIZER_H
#define QHOVERSENSORGESTURERECOGNIZER_H
-#include <QSensorGestureRecognizer>
+#include <QtSensors/QSensorGestureRecognizer>
#include "qtsensorgesturesensorhandler.h"
diff --git a/src/plugins/sensorgestures/qtsensors/qpickupsensorgesturerecognizer.h b/src/plugins/sensorgestures/qtsensors/qpickupsensorgesturerecognizer.h
index 37f66058..55f6dd56 100644
--- a/src/plugins/sensorgestures/qtsensors/qpickupsensorgesturerecognizer.h
+++ b/src/plugins/sensorgestures/qtsensors/qpickupsensorgesturerecognizer.h
@@ -43,7 +43,7 @@
#ifndef QPICKUPSENSORGESTURERECOGNIZER_H
#define QPICKUPSENSORGESTURERECOGNIZER_H
-#include <qsensorgesturerecognizer.h>
+#include <QtSensors/qsensorgesturerecognizer.h>
#include "qtsensorgesturesensorhandler.h"
QT_BEGIN_NAMESPACE
diff --git a/src/plugins/sensorgestures/qtsensors/qshake2recognizer.h b/src/plugins/sensorgestures/qtsensors/qshake2recognizer.h
index 647b713f..cb232f80 100644
--- a/src/plugins/sensorgestures/qtsensors/qshake2recognizer.h
+++ b/src/plugins/sensorgestures/qtsensors/qshake2recognizer.h
@@ -44,7 +44,7 @@
#include <QDebug>
-#include <qsensorgesturerecognizer.h>
+#include <QtSensors/qsensorgesturerecognizer.h>
#include "qtsensorgesturesensorhandler.h"
diff --git a/src/plugins/sensorgestures/qtsensors/qslamgesturerecognizer.cpp b/src/plugins/sensorgestures/qtsensors/qslamgesturerecognizer.cpp
index c9f58ddd..22fccac9 100644
--- a/src/plugins/sensorgestures/qtsensors/qslamgesturerecognizer.cpp
+++ b/src/plugins/sensorgestures/qtsensors/qslamgesturerecognizer.cpp
@@ -42,6 +42,7 @@
#include "qslamgesturerecognizer.h"
#include "qtsensorgesturesensorhandler.h"
+
#include <QtCore/qmath.h>
QT_BEGIN_NAMESPACE
diff --git a/src/plugins/sensorgestures/qtsensors/qslamgesturerecognizer.h b/src/plugins/sensorgestures/qtsensors/qslamgesturerecognizer.h
index 5dba87a5..232ae35e 100644
--- a/src/plugins/sensorgestures/qtsensors/qslamgesturerecognizer.h
+++ b/src/plugins/sensorgestures/qtsensors/qslamgesturerecognizer.h
@@ -43,10 +43,11 @@
#ifndef QSLAMSENSORGESTURERECOGNIZER_H
#define QSLAMSENSORGESTURERECOGNIZER_H
-#include <qsensorgesturerecognizer.h>
-#include <QtSensors>
+#include <QtSensors/qsensorgesturerecognizer.h>
#include <QtSensors/QOrientationSensor>
-
+#include <QtSensors/QAccelerometer>
+#include <QtSensors/QAccelerometerReading>
+#include <QtSensors/QOrientationReading>
QT_BEGIN_NAMESPACE
class QSlamSensorGestureRecognizer : public QSensorGestureRecognizer
diff --git a/src/plugins/sensorgestures/qtsensors/qtsensorgestureplugin.cpp b/src/plugins/sensorgestures/qtsensors/qtsensorgestureplugin.cpp
index 9715902a..f9999029 100644
--- a/src/plugins/sensorgestures/qtsensors/qtsensorgestureplugin.cpp
+++ b/src/plugins/sensorgestures/qtsensors/qtsensorgestureplugin.cpp
@@ -45,7 +45,7 @@
#include "qtsensorgestureplugin.h"
-#include <qsensorgestureplugininterface.h>
+#include <QtSensors/qsensorgestureplugininterface.h>
#include "qcoversensorgesturerecognizer.h"
#include "qtwistsensorgesturerecognizer.h"
diff --git a/src/plugins/sensorgestures/qtsensors/qtsensorgestureplugin.h b/src/plugins/sensorgestures/qtsensors/qtsensorgestureplugin.h
index 34455ace..d9e974a9 100644
--- a/src/plugins/sensorgestures/qtsensors/qtsensorgestureplugin.h
+++ b/src/plugins/sensorgestures/qtsensors/qtsensorgestureplugin.h
@@ -45,7 +45,7 @@
#include <QObject>
#include <QStringList>
-#include <qsensorgestureplugininterface.h>
+#include <QtSensors/qsensorgestureplugininterface.h>
QT_BEGIN_NAMESPACE
diff --git a/src/plugins/sensorgestures/qtsensors/qturnoversensorgesturerecognizer.h b/src/plugins/sensorgestures/qtsensors/qturnoversensorgesturerecognizer.h
index 1729f3ee..7cf1ea8b 100644
--- a/src/plugins/sensorgestures/qtsensors/qturnoversensorgesturerecognizer.h
+++ b/src/plugins/sensorgestures/qtsensors/qturnoversensorgesturerecognizer.h
@@ -42,7 +42,7 @@
#ifndef QTURNOVERSENSORGESTURERECOGNIZER_H
#define QTURNOVERSENSORGESTURERECOGNIZER_H
-#include <qsensorgesturerecognizer.h>
+#include <QtSensors/qsensorgesturerecognizer.h>
#include "qtsensorgesturesensorhandler.h"
QT_BEGIN_NAMESPACE
diff --git a/src/plugins/sensorgestures/qtsensors/qtwistsensorgesturerecognizer.h b/src/plugins/sensorgestures/qtsensors/qtwistsensorgesturerecognizer.h
index 5db192af..08c81510 100644
--- a/src/plugins/sensorgestures/qtsensors/qtwistsensorgesturerecognizer.h
+++ b/src/plugins/sensorgestures/qtsensors/qtwistsensorgesturerecognizer.h
@@ -43,7 +43,7 @@
#ifndef QWFLICKSENSORGESTURERECOGNIZER_H
#define QWFLICKSENSORGESTURERECOGNIZER_H
-#include <qsensorgesturerecognizer.h>
+#include <QtSensors/qsensorgesturerecognizer.h>
#include <QtSensors/QAccelerometer>
#include <QtSensors/QOrientationSensor>
#include "qtsensorgesturesensorhandler.h"
diff --git a/src/plugins/sensorgestures/qtsensors/qwhipsensorgesturerecognizer.h b/src/plugins/sensorgestures/qtsensors/qwhipsensorgesturerecognizer.h
index a8aef52e..487b80ef 100644
--- a/src/plugins/sensorgestures/qtsensors/qwhipsensorgesturerecognizer.h
+++ b/src/plugins/sensorgestures/qtsensors/qwhipsensorgesturerecognizer.h
@@ -43,7 +43,7 @@
#ifndef QWHIPSENSORGESTURERECOGNIZER_H
#define QWHIPSENSORGESTURERECOGNIZER_H
-#include <qsensorgesturerecognizer.h>
+#include <QtSensors/qsensorgesturerecognizer.h>
#include "qtsensorgesturesensorhandler.h"
diff --git a/src/plugins/sensorgestures/shake/qshakerecognizer.h b/src/plugins/sensorgestures/shake/qshakerecognizer.h
index e7478b6a..64088f53 100644
--- a/src/plugins/sensorgestures/shake/qshakerecognizer.h
+++ b/src/plugins/sensorgestures/shake/qshakerecognizer.h
@@ -49,7 +49,7 @@
#include <QDebug>
#include <QTimer>
-#include <qsensorgesturerecognizer.h>
+#include <QtSensors/qsensorgesturerecognizer.h>
struct AccelData {
qreal x;
diff --git a/src/plugins/sensorgestures/shake/qshakesensorgestureplugin.cpp b/src/plugins/sensorgestures/shake/qshakesensorgestureplugin.cpp
index d1204d22..4979b1dc 100644
--- a/src/plugins/sensorgestures/shake/qshakesensorgestureplugin.cpp
+++ b/src/plugins/sensorgestures/shake/qshakesensorgestureplugin.cpp
@@ -45,7 +45,7 @@
#include "qshakesensorgestureplugin.h"
-#include <qsensorgestureplugininterface.h>
+#include <QtSensors/qsensorgestureplugininterface.h>
#include "qshakerecognizer.h"
diff --git a/src/plugins/sensorgestures/shake/qshakesensorgestureplugin.h b/src/plugins/sensorgestures/shake/qshakesensorgestureplugin.h
index 939b2a9c..919a2c10 100644
--- a/src/plugins/sensorgestures/shake/qshakesensorgestureplugin.h
+++ b/src/plugins/sensorgestures/shake/qshakesensorgestureplugin.h
@@ -45,7 +45,7 @@
#include <QObject>
#include <QStringList>
-#include <qsensorgestureplugininterface.h>
+#include <QtSensors/qsensorgestureplugininterface.h>
class QShakeSensorGesturePlugin : public QObject, public QSensorGesturePluginInterface
{
diff --git a/src/plugins/sensors/android/jar/src/org/qtproject/qt5/android/sensors/QtSensors.java b/src/plugins/sensors/android/jar/src/org/qtproject/qt5/android/sensors/QtSensors.java
index efd1ff6d..e7e309ed 100644
--- a/src/plugins/sensors/android/jar/src/org/qtproject/qt5/android/sensors/QtSensors.java
+++ b/src/plugins/sensors/android/jar/src/org/qtproject/qt5/android/sensors/QtSensors.java
@@ -153,6 +153,25 @@ public class QtSensors implements SensorEventListener
return angles;
}
+ private static float[] mRotation = new float[9];
+ private static float[] mOrientation = new float[3];
+ private static float[] mAcc = new float[3];
+ private static float[] mMag = new float[3];
+
+ private static float getCompassAzimuth(float a0, float a1, float a2, float m0, float m1, float m2)
+ {
+ mAcc[0] = a0;
+ mAcc[1] = a1;
+ mAcc[2] = a2;
+ mMag[0] = m0;
+ mMag[1] = m1;
+ mMag[2] = m2;
+
+ SensorManager.getRotationMatrix(mRotation, null, mAcc, mMag);
+ SensorManager.getOrientation(mRotation, mOrientation);
+ return mOrientation[0];
+ }
+
public static native void accuracyChanged(int sensorType, int accuracy);
public static native void sensorChanged(int sensorType, long timestamp, float[] values);
diff --git a/src/plugins/sensors/android/src/androidcompass.cpp b/src/plugins/sensors/android/src/androidcompass.cpp
new file mode 100644
index 00000000..f2b4bd25
--- /dev/null
+++ b/src/plugins/sensors/android/src/androidcompass.cpp
@@ -0,0 +1,173 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtSensors module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "androidcompass.h"
+
+#include <QDebug>
+#include <qmath.h>
+#include "androidjnisensors.h"
+
+
+class AndroidAccelerometerListener : public AndroidSensors::AndroidSensorsListenerInterface
+{
+public:
+
+ AndroidAccelerometerListener(AndroidCompass *parent)
+ : m_compass(parent)
+ {
+ }
+
+ void start(int dataRate)
+ {
+ AndroidSensors::registerListener(AndroidSensors::TYPE_ACCELEROMETER, this, dataRate);
+ }
+
+ void stop()
+ {
+ AndroidSensors::unregisterListener(AndroidSensors::TYPE_ACCELEROMETER, this);
+ }
+
+ void onAccuracyChanged(jint accuracy) Q_DECL_OVERRIDE
+ {
+ Q_UNUSED(accuracy);
+ }
+
+ void onSensorChanged(jlong /*timestamp*/, const jfloat *values, uint size) Q_DECL_OVERRIDE
+ {
+ if (size < 3)
+ return;
+ reading[0] = values[0];
+ reading[1] = values[1];
+ reading[2] = values[2];
+ m_compass->testStuff();
+ }
+
+ jfloat reading[3];
+
+private:
+ AndroidCompass *m_compass;
+};
+
+class AndroidMagnetometerListener : public AndroidSensors::AndroidSensorsListenerInterface
+{
+public:
+ AndroidMagnetometerListener(AndroidCompass *parent)
+ :m_compass(parent)
+ {
+
+ }
+
+ void start(int dataRate)
+ {
+ AndroidSensors::registerListener(AndroidSensors::TYPE_MAGNETIC_FIELD, this, dataRate);
+ }
+
+ void stop()
+ {
+ AndroidSensors::unregisterListener(AndroidSensors::TYPE_MAGNETIC_FIELD, this);
+ }
+
+ void onAccuracyChanged(jint accuracy) Q_DECL_OVERRIDE
+ {
+ Q_UNUSED(accuracy);
+ }
+
+ void onSensorChanged(jlong /*timestamp*/, const jfloat *values, uint size) Q_DECL_OVERRIDE
+ {
+ if (size < 3)
+ return;
+ reading[0] = values[0];
+ reading[1] = values[1];
+ reading[2] = values[2];
+ m_compass->testStuff();
+ }
+
+ jfloat reading[3];
+private:
+ AndroidCompass *m_compass;
+};
+
+char const * const AndroidCompass::id("android.synthetic.compass");
+
+AndroidCompass::AndroidCompass(QSensor *sensor)
+ : QSensorBackend(sensor), m_accelerometerListener(0), m_magnetometerListener(0), m_isStarted(false)
+{
+ setReading<QCompassReading>(&m_reading);
+ m_isStarted = false;
+}
+
+AndroidCompass::~AndroidCompass()
+{
+ if (m_isStarted)
+ stop();
+ delete m_accelerometerListener;
+ delete m_magnetometerListener;
+}
+
+void AndroidCompass::start()
+{
+ if (!m_accelerometerListener)
+ m_accelerometerListener = new AndroidAccelerometerListener(this);
+ m_accelerometerListener->start(sensor()->dataRate());
+ if (!m_magnetometerListener)
+ m_magnetometerListener = new AndroidMagnetometerListener(this);
+ m_magnetometerListener->start(sensor()->dataRate());
+
+ m_isStarted = true;
+}
+
+void AndroidCompass::stop()
+{
+ if (m_isStarted) {
+ m_isStarted = false;
+ m_accelerometerListener->stop();
+ m_magnetometerListener->stop();
+ }
+}
+
+void AndroidCompass::testStuff()
+{
+ qreal azimuth = AndroidSensors::getCompassAzimuth(m_accelerometerListener->reading, m_magnetometerListener->reading);
+
+ azimuth = azimuth * 180.0 / M_PI;
+ m_reading.setAzimuth(azimuth);
+ newReadingAvailable();
+}
diff --git a/src/plugins/sensors/android/src/androidcompass.h b/src/plugins/sensors/android/src/androidcompass.h
new file mode 100644
index 00000000..897dd463
--- /dev/null
+++ b/src/plugins/sensors/android/src/androidcompass.h
@@ -0,0 +1,76 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtSensors module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef ANDROIDCOMPASS_H
+#define ANDROIDCOMPASS_H
+#include <qcompass.h>
+
+#include "androidcommonsensor.h"
+
+class AndroidAccelerometerListener;
+class AndroidMagnetometerListener;
+
+class AndroidCompass : public QSensorBackend
+{
+ Q_OBJECT
+
+public:
+ static char const * const id;
+
+ AndroidCompass(QSensor *sensor);
+ ~AndroidCompass();
+
+ void start() Q_DECL_OVERRIDE;
+ void stop() Q_DECL_OVERRIDE;
+
+private:
+ AndroidAccelerometerListener *m_accelerometerListener;
+ AndroidMagnetometerListener *m_magnetometerListener;
+
+ QCompassReading m_reading;
+ bool m_isStarted;
+
+public Q_SLOTS:
+ void testStuff();
+
+};
+
+#endif // ANDROIDCOMPASS_H
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;
}
diff --git a/src/plugins/sensors/android/src/androidjnisensors.h b/src/plugins/sensors/android/src/androidjnisensors.h
index 30aab6cc..9d2ccf55 100644
--- a/src/plugins/sensors/android/src/androidjnisensors.h
+++ b/src/plugins/sensors/android/src/androidjnisensors.h
@@ -83,6 +83,7 @@ namespace AndroidSensors
qreal sensorMaximumRange(AndroidSensorType sensor);
bool registerListener(AndroidSensorType sensor, AndroidSensorsListenerInterface *listener, int dataRate = 0);
bool unregisterListener(AndroidSensorType sensor, AndroidSensorsListenerInterface *listener);
+ qreal getCompassAzimuth(jfloat *accelerometerReading, jfloat *magnetometerReading);
}
#endif // ANDROIDJNISENSORS_H
diff --git a/src/plugins/sensors/android/src/main.cpp b/src/plugins/sensors/android/src/main.cpp
index 3d8604fe..b8d14960 100644
--- a/src/plugins/sensors/android/src/main.cpp
+++ b/src/plugins/sensors/android/src/main.cpp
@@ -44,7 +44,9 @@
#include <qsensorbackend.h>
#include <qsensormanager.h>
#include <qaccelerometer.h>
+#include <qcompass.h>
#include "androidaccelerometer.h"
+#include "androidcompass.h"
#include "androidgyroscope.h"
#include "androidlight.h"
#include "androidmagnetometer.h"
@@ -63,10 +65,13 @@ class AndroidSensorPlugin : public QObject, public QSensorPluginInterface, publi
public:
void registerSensors()
{
+ bool accelerometer = false;
+ bool magnetometer = false;
foreach (AndroidSensorType sensor, availableSensors()) {
switch (sensor) {
case TYPE_ACCELEROMETER:
QSensorManager::registerBackend(QAccelerometer::type, QByteArray::number(sensor), this);
+ accelerometer = true;
break;
case TYPE_AMBIENT_TEMPERATURE:
case TYPE_TEMPERATURE:
@@ -84,6 +89,7 @@ public:
break; // add the linear acceleration sensor backend
case TYPE_MAGNETIC_FIELD:
QSensorManager::registerBackend(QMagnetometer::type, QByteArray::number(sensor), this);
+ magnetometer = true;
break;
case TYPE_ORIENTATION:
break; // add the orientation sensor backend
@@ -106,10 +112,15 @@ public:
break; // add backends for API level 18 sensors
}
}
+ if (accelerometer && magnetometer)
+ QSensorManager::registerBackend(QCompass::type, AndroidCompass::id, this);
}
QSensorBackend *createBackend(QSensor *sensor)
{
+ if (sensor->identifier() == AndroidCompass::id)
+ return new AndroidCompass(sensor);
+
AndroidSensorType type = static_cast<AndroidSensorType>(sensor->identifier().toInt());
switch (type) {
case TYPE_ACCELEROMETER: {
diff --git a/src/plugins/sensors/android/src/src.pro b/src/plugins/sensors/android/src/src.pro
index 21423efb..23a6bead 100644
--- a/src/plugins/sensors/android/src/src.pro
+++ b/src/plugins/sensors/android/src/src.pro
@@ -12,6 +12,7 @@ DEFINES += QT_STATICPLUGIN
HEADERS = \
androidjnisensors.h \
androidaccelerometer.h \
+ androidcompass.h \
androidcommonsensor.h \
androidgyroscope.h \
androidmagnetometer.h \
@@ -25,6 +26,7 @@ SOURCES = \
main.cpp \
androidjnisensors.cpp \
androidaccelerometer.cpp \
+ androidcompass.cpp \
androidgyroscope.cpp \
androidmagnetometer.cpp \
androidpressure.cpp \
diff --git a/src/plugins/sensors/blackberry/bbdistancesensor.cpp b/src/plugins/sensors/blackberry/bbdistancesensor.cpp
new file mode 100644
index 00000000..c40845a4
--- /dev/null
+++ b/src/plugins/sensors/blackberry/bbdistancesensor.cpp
@@ -0,0 +1,58 @@
+/****************************************************************************
+**
+** 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.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "bbdistancesensor.h"
+
+BbDistanceSensor::BbDistanceSensor(QSensor *sensor)
+ : BbSensorBackend<QDistanceReading>(devicePath(), SENSOR_TYPE_PROXIMITY, sensor)
+{
+ setDescription(QLatin1String("Distance"));
+}
+
+QString BbDistanceSensor::devicePath()
+{
+ return QLatin1String("/dev/sensor/prox");
+}
+
+bool BbDistanceSensor::updateReadingFromEvent(const sensor_event_t &event, QDistanceReading *reading)
+{
+ reading->setDistance(event.proximity_s.distance);
+ return true;
+}
diff --git a/src/plugins/sensors/blackberry/bbdistancesensor.h b/src/plugins/sensors/blackberry/bbdistancesensor.h
new file mode 100644
index 00000000..c9ea48fe
--- /dev/null
+++ b/src/plugins/sensors/blackberry/bbdistancesensor.h
@@ -0,0 +1,60 @@
+/****************************************************************************
+**
+** 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.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef BBDISTANCESENSOR_H
+#define BBDISTANCESENSOR_H
+
+#include "bbsensorbackend.h"
+#include <qdistancesensor.h>
+
+class BbDistanceSensor : public BbSensorBackend<QDistanceReading>
+{
+ Q_OBJECT
+
+public:
+ explicit BbDistanceSensor(QSensor *sensor);
+
+ static QString devicePath();
+
+protected:
+ bool updateReadingFromEvent(const sensor_event_t &event, QDistanceReading *reading) Q_DECL_OVERRIDE;
+};
+
+#endif
diff --git a/src/plugins/sensors/blackberry/blackberry.pro b/src/plugins/sensors/blackberry/blackberry.pro
index 8095cf16..2b0a9541 100644
--- a/src/plugins/sensors/blackberry/blackberry.pro
+++ b/src/plugins/sensors/blackberry/blackberry.pro
@@ -22,6 +22,7 @@ HEADERS += bbsensorbackend.h \
bbaltimeter.h \
bbambientlightsensor.h \
bbcompass.h \
+ bbdistancesensor.h \
bbgyroscope.h \
bbirproximitysensor.h \
bblightsensor.h \
@@ -39,6 +40,7 @@ SOURCES += bbsensorbackend.cpp \
bbaltimeter.cpp \
bbambientlightsensor.cpp \
bbcompass.cpp \
+ bbdistancesensor.cpp \
bbgyroscope.cpp \
bbirproximitysensor.cpp \
bblightsensor.cpp \
diff --git a/src/plugins/sensors/blackberry/main.cpp b/src/plugins/sensors/blackberry/main.cpp
index 61f9aa08..9037e66b 100644
--- a/src/plugins/sensors/blackberry/main.cpp
+++ b/src/plugins/sensors/blackberry/main.cpp
@@ -54,6 +54,7 @@
#include "bbproximitysensor.h"
#include "bbrotationsensor.h"
#include "bbtemperaturesensor.h"
+#include "bbdistancesensor.h"
#include "bbguihelper.h"
#include <qsensormanager.h>
@@ -75,6 +76,7 @@ static const char *bbPressureSensorId = "bbPressureSensor";
static const char *bbProximitySensorId = "bbProximitySensor";
static const char *bbRotationSensorId = "bbRotationSensor";
static const char *bbTemperatureSensorId = "bbTemperatureSensor";
+static const char *bbDistanceSensorId = "bbDistanceSensor";
class BbSensorPlugin : public QObject, public QSensorPluginInterface, public QSensorBackendFactory
{
@@ -115,6 +117,8 @@ public:
QSensorManager::registerBackend(QRotationSensor::type, bbRotationSensorId, this);
if (sensorSupported(BbTemperatureSensor::devicePath()))
QSensorManager::registerBackend(QAmbientTemperatureSensor::type, bbTemperatureSensorId, this);
+ if (sensorSupported(BbDistanceSensor::devicePath()))
+ QSensorManager::registerBackend(QDistanceSensor::type, bbDistanceSensorId, this);
}
QSensorBackend *createBackend(QSensor *sensor) Q_DECL_OVERRIDE
@@ -150,6 +154,8 @@ public:
backend = new BbRotationSensor(sensor);
if (sensor->identifier() == bbTemperatureSensorId)
backend = new BbTemperatureSensor(sensor);
+ if (sensor->identifier() == bbDistanceSensorId)
+ backend = new BbDistanceSensor(sensor);
backend->initSensorInfo();
backend->setGuiHelper(&m_guiHelper);
return backend;
diff --git a/src/plugins/sensors/generic/genericalssensor.h b/src/plugins/sensors/generic/genericalssensor.h
index 1ed6e76e..f9066522 100644
--- a/src/plugins/sensors/generic/genericalssensor.h
+++ b/src/plugins/sensors/generic/genericalssensor.h
@@ -42,9 +42,9 @@
#ifndef GENERICALSSENSOR_H
#define GENERICALSSENSOR_H
-#include <qsensorbackend.h>
-#include <qlightsensor.h>
-#include <qambientlightsensor.h>
+#include <QtSensors/qsensorbackend.h>
+#include <QtSensors/qlightsensor.h>
+#include <QtSensors/qambientlightsensor.h>
class genericalssensor : public QSensorBackend, public QLightFilter
{
diff --git a/src/plugins/sensors/generic/genericorientationsensor.h b/src/plugins/sensors/generic/genericorientationsensor.h
index d1e7d343..95ec4ab8 100644
--- a/src/plugins/sensors/generic/genericorientationsensor.h
+++ b/src/plugins/sensors/generic/genericorientationsensor.h
@@ -42,9 +42,9 @@
#ifndef GENERICORIENTATIONSENSOR_H
#define GENERICORIENTATIONSENSOR_H
-#include <qsensorbackend.h>
-#include <qorientationsensor.h>
-#include <qaccelerometer.h>
+#include <QtSensors/qsensorbackend.h>
+#include <QtSensors/qorientationsensor.h>
+#include <QtSensors/qaccelerometer.h>
class genericorientationsensor : public QSensorBackend, public QAccelerometerFilter
{
diff --git a/src/plugins/sensors/generic/genericrotationsensor.h b/src/plugins/sensors/generic/genericrotationsensor.h
index 693528fa..6b86eeae 100644
--- a/src/plugins/sensors/generic/genericrotationsensor.h
+++ b/src/plugins/sensors/generic/genericrotationsensor.h
@@ -42,10 +42,10 @@
#ifndef GENERICROTATIONSENSOR_H
#define GENERICROTATIONSENSOR_H
-#include <qsensorbackend.h>
-#include <qrotationsensor.h>
-#include <qaccelerometer.h>
-#include <qmagnetometer.h>
+#include <QtSensors/qsensorbackend.h>
+#include <QtSensors/qrotationsensor.h>
+#include <QtSensors/qaccelerometer.h>
+#include <QtSensors/qmagnetometer.h>
class genericrotationsensor : public QSensorBackend, public QSensorFilter
{
diff --git a/src/plugins/sensors/generic/generictiltsensor.h b/src/plugins/sensors/generic/generictiltsensor.h
index f62c1f58..d781728f 100644
--- a/src/plugins/sensors/generic/generictiltsensor.h
+++ b/src/plugins/sensors/generic/generictiltsensor.h
@@ -42,9 +42,9 @@
#ifndef GENERICTILTSENSOR_H
#define GENERICTILTSENSOR_H
-#include <qsensorbackend.h>
-#include <qtiltsensor.h>
-#include <qaccelerometer.h>
+#include <QtSensors/qsensorbackend.h>
+#include <QtSensors/qtiltsensor.h>
+#include <QtSensors/qaccelerometer.h>
QT_BEGIN_NAMESPACE
diff --git a/src/plugins/sensors/generic/main.cpp b/src/plugins/sensors/generic/main.cpp
index aa9f58c2..dcaa4988 100644
--- a/src/plugins/sensors/generic/main.cpp
+++ b/src/plugins/sensors/generic/main.cpp
@@ -51,9 +51,9 @@
#ifdef QTSENSORS_GENERICTILTSENSOR
#include "generictiltsensor.h"
#endif
-#include <qsensorplugin.h>
-#include <qsensorbackend.h>
-#include <qsensormanager.h>
+#include <QtSensors/qsensorplugin.h>
+#include <QtSensors/qsensorbackend.h>
+#include <QtSensors/qsensormanager.h>
#include <QFile>
#include <QDebug>
diff --git a/src/plugins/sensors/sensorfw/sensorfwproximitysensor.cpp b/src/plugins/sensors/sensorfw/sensorfwproximitysensor.cpp
index b8d782d9..8f949ff1 100644
--- a/src/plugins/sensors/sensorfw/sensorfwproximitysensor.cpp
+++ b/src/plugins/sensors/sensorfw/sensorfwproximitysensor.cpp
@@ -42,12 +42,12 @@
#include "sensorfwproximitysensor.h"
char const * const SensorfwProximitySensor::id("sensorfw.proximitysensor");
-//bool SensorfwProximitySensor::m_initDone = false;
SensorfwProximitySensor::SensorfwProximitySensor(QSensor *sensor)
: SensorfwSensorBase(sensor),
m_initDone(false),
- m_exClose(false)
+ m_exClose(false),
+ firstRun(true)
{
init();
setReading<QProximityReading>(&m_reading);
@@ -59,12 +59,6 @@ void SensorfwProximitySensor::start()
{
if (reinitIsNeeded)
init();
- if (m_sensorInterface) {
- Unsigned data(((ProximitySensorChannelInterface*)m_sensorInterface)->proximity());
- m_reading.setClose(data.x()? true: false);
- m_reading.setTimestamp(data.UnsignedData().timestamp_);
- newReadingAvailable();
- }
SensorfwSensorBase::start();
}
@@ -72,11 +66,13 @@ void SensorfwProximitySensor::start()
void SensorfwProximitySensor::slotDataAvailable(const Unsigned& data)
{
bool close = data.x()? true: false;
- if (close == m_exClose) return;
+ if (!firstRun && close == m_exClose) return;
m_reading.setClose(close);
m_reading.setTimestamp(data.UnsignedData().timestamp_);
newReadingAvailable();
m_exClose = close;
+ if (firstRun)
+ firstRun = false;
}
bool SensorfwProximitySensor::doConnect()
diff --git a/src/plugins/sensors/sensorfw/sensorfwproximitysensor.h b/src/plugins/sensors/sensorfw/sensorfwproximitysensor.h
index caaa9b97..a9352fb7 100644
--- a/src/plugins/sensors/sensorfw/sensorfwproximitysensor.h
+++ b/src/plugins/sensors/sensorfw/sensorfwproximitysensor.h
@@ -66,6 +66,7 @@ private:
QProximityReading m_reading;
bool m_initDone;
bool m_exClose;
+ bool firstRun;
private slots:
void slotDataAvailable(const Unsigned& data);
diff --git a/src/plugins/sensors/winrt/main.cpp b/src/plugins/sensors/winrt/main.cpp
index 13b87125..25251fd7 100644
--- a/src/plugins/sensors/winrt/main.cpp
+++ b/src/plugins/sensors/winrt/main.cpp
@@ -43,10 +43,8 @@
#include "winrtcompass.h"
#include "winrtgyroscope.h"
#include "winrtrotationsensor.h"
-#ifndef Q_OS_WINPHONE
-# include "winrtambientlightsensor.h"
-# include "winrtorientationsensor.h"
-#endif
+#include "winrtambientlightsensor.h"
+#include "winrtorientationsensor.h"
#include <QtSensors/QAccelerometer>
#include <QtSensors/QAmbientLightSensor>
#include <QtSensors/QCompass>
@@ -69,10 +67,8 @@ public:
QSensorManager::registerBackend(QCompass::type, QByteArrayLiteral("WinRtCompass"), this);
QSensorManager::registerBackend(QGyroscope::type, QByteArrayLiteral("WinRtGyroscope"), this);
QSensorManager::registerBackend(QRotationSensor::type, QByteArrayLiteral("WinRtRotationSensor"), this);
-#ifndef Q_OS_WINPHONE
QSensorManager::registerBackend(QAmbientLightSensor::type, QByteArrayLiteral("WinRtAmbientLightSensor"), this);
QSensorManager::registerBackend(QOrientationSensor::type, QByteArrayLiteral("WinRtOrientationSensor"), this);
-#endif
}
QSensorBackend *createBackend(QSensor *sensor)
@@ -89,13 +85,11 @@ public:
if (sensor->identifier() == QByteArrayLiteral("WinRtRotationSensor"))
return new WinRtRotationSensor(sensor);
-#ifndef Q_OS_WINPHONE
if (sensor->identifier() == QByteArrayLiteral("WinRtAmbientLightSensor"))
return new WinRtAmbientLightSensor(sensor);
if (sensor->identifier() == QByteArrayLiteral("WinRtOrientationSensor"))
return new WinRtOrientationSensor(sensor);
-#endif // !Q_OS_WINPHONE
return 0;
}
diff --git a/src/plugins/sensors/winrt/winrt.pro b/src/plugins/sensors/winrt/winrt.pro
index e9f3274f..4a03bf2e 100644
--- a/src/plugins/sensors/winrt/winrt.pro
+++ b/src/plugins/sensors/winrt/winrt.pro
@@ -7,26 +7,21 @@ load(qt_plugin)
HEADERS += \
winrtaccelerometer.h \
+ winrtambientlightsensor.h \
winrtcommon.h \
winrtcompass.h \
+ winrtorientationsensor.h \
winrtrotationsensor.h \
winrtgyroscope.h
SOURCES += \
main.cpp \
winrtaccelerometer.cpp \
+ winrtambientlightsensor.cpp \
winrtcommon.cpp \
winrtcompass.cpp \
+ winrtorientationsensor.cpp \
winrtrotationsensor.cpp \
winrtgyroscope.cpp
-!winphone {
- HEADERS += \
- winrtambientlightsensor.h \
- winrtorientationsensor.h
- SOURCES += \
- winrtambientlightsensor.cpp \
- winrtorientationsensor.cpp
-}
-
OTHER_FILES = plugin.json
diff --git a/src/plugins/sensors/winrt/winrtaccelerometer.cpp b/src/plugins/sensors/winrt/winrtaccelerometer.cpp
index 16261c6f..80d269c0 100644
--- a/src/plugins/sensors/winrt/winrtaccelerometer.cpp
+++ b/src/plugins/sensors/winrt/winrtaccelerometer.cpp
@@ -145,6 +145,9 @@ WinRtAccelerometer::WinRtAccelerometer(QSensor *sensor)
return;
}
+ addDataRate(1, 1000 / d->minimumReportInterval); // dataRate in Hz
+ sensor->setDataRate(1);
+
setReading<QAccelerometerReading>(&d->reading);
}
@@ -169,7 +172,12 @@ void WinRtAccelerometer::start()
sensorError(hr);
return;
}
- quint32 reportInterval = qMax(d->minimumReportInterval, quint32(1000/sensor()->dataRate()));
+
+ int dataRate = sensor()->dataRate();
+ if (!dataRate)
+ return;
+
+ quint32 reportInterval = qMax(d->minimumReportInterval, quint32(1000/dataRate));
hr = d->sensor->put_ReportInterval(reportInterval);
if (FAILED(hr)) {
qCWarning(lcWinRtSensors) << "Unable to attach to set report interval."
diff --git a/src/plugins/sensors/winrt/winrtambientlightsensor.cpp b/src/plugins/sensors/winrt/winrtambientlightsensor.cpp
index 33bbac14..8929b2a4 100644
--- a/src/plugins/sensors/winrt/winrtambientlightsensor.cpp
+++ b/src/plugins/sensors/winrt/winrtambientlightsensor.cpp
@@ -144,6 +144,9 @@ WinRtAmbientLightSensor::WinRtAmbientLightSensor(QSensor *sensor)
return;
}
+ addDataRate(1, 1000 / d->minimumReportInterval); // dataRate in Hz
+ sensor->setDataRate(1);
+
setReading<QAmbientLightReading>(&d->reading);
}
@@ -168,7 +171,12 @@ void WinRtAmbientLightSensor::start()
sensorError(hr);
return;
}
- quint32 reportInterval = qMax(d->minimumReportInterval, quint32(1000/sensor()->dataRate()));
+
+ int dataRate = sensor()->dataRate();
+ if (!dataRate)
+ return;
+
+ quint32 reportInterval = qMax(d->minimumReportInterval, quint32(1000/dataRate));
hr = d->sensor->put_ReportInterval(reportInterval);
if (FAILED(hr)) {
qCWarning(lcWinRtSensors) << "Unable to attach to set report interval."
diff --git a/src/plugins/sensors/winrt/winrtcompass.cpp b/src/plugins/sensors/winrt/winrtcompass.cpp
index 6a678e2a..45aeeddc 100644
--- a/src/plugins/sensors/winrt/winrtcompass.cpp
+++ b/src/plugins/sensors/winrt/winrtcompass.cpp
@@ -94,7 +94,6 @@ public:
qCWarning(lcWinRtSensors) << "Failed to get compass reading timestamp." << qt_error_string(hr);
return hr;
}
-#ifndef Q_OS_WINPHONE // Windows Phone doesn't implement the accuracy interface
ComPtr<ICompassReadingHeadingAccuracy> accuracyReading;
hr = value.As(&accuracyReading);
if (FAILED(hr)) {
@@ -124,7 +123,7 @@ public:
reading.setCalibrationLevel(1.00);
break;
}
-#endif
+
reading.setAzimuth(heading);
reading.setTimestamp(dateTimeToMsSinceEpoch(dateTime));
q->newReadingAvailable();
@@ -165,6 +164,9 @@ WinRtCompass::WinRtCompass(QSensor *sensor)
return;
}
+ addDataRate(1, 1000 / d->minimumReportInterval); // dataRate in Hz
+ sensor->setDataRate(1);
+
setReading<QCompassReading>(&d->reading);
}
@@ -189,7 +191,12 @@ void WinRtCompass::start()
sensorError(hr);
return;
}
- quint32 reportInterval = qMax(d->minimumReportInterval, quint32(1000/sensor()->dataRate()));
+
+ int dataRate = sensor()->dataRate();
+ if (!dataRate)
+ return;
+
+ quint32 reportInterval = qMax(d->minimumReportInterval, quint32(1000/dataRate));
hr = d->sensor->put_ReportInterval(reportInterval);
if (FAILED(hr)) {
qCWarning(lcWinRtSensors) << "Unable to attach to set report interval."
diff --git a/src/plugins/sensors/winrt/winrtgyroscope.cpp b/src/plugins/sensors/winrt/winrtgyroscope.cpp
index 1e729a16..0b1cbb98 100644
--- a/src/plugins/sensors/winrt/winrtgyroscope.cpp
+++ b/src/plugins/sensors/winrt/winrtgyroscope.cpp
@@ -142,6 +142,9 @@ WinRtGyroscope::WinRtGyroscope(QSensor *sensor)
return;
}
+ addDataRate(1, 1000 / d->minimumReportInterval); // dataRate in Hz
+ sensor->setDataRate(1);
+
setReading<QGyroscopeReading>(&d->reading);
}
@@ -166,7 +169,12 @@ void WinRtGyroscope::start()
sensorError(hr);
return;
}
- quint32 reportInterval = qMax(d->minimumReportInterval, quint32(1000/sensor()->dataRate()));
+
+ int dataRate = sensor()->dataRate();
+ if (!dataRate)
+ return;
+
+ quint32 reportInterval = qMax(d->minimumReportInterval, quint32(1000/dataRate));
hr = d->sensor->put_ReportInterval(reportInterval);
if (FAILED(hr)) {
qCWarning(lcWinRtSensors) << "Unable to attach to set report interval."
diff --git a/src/plugins/sensors/winrt/winrtrotationsensor.cpp b/src/plugins/sensors/winrt/winrtrotationsensor.cpp
index 576545e7..e3616a9b 100644
--- a/src/plugins/sensors/winrt/winrtrotationsensor.cpp
+++ b/src/plugins/sensors/winrt/winrtrotationsensor.cpp
@@ -140,6 +140,9 @@ WinRtRotationSensor::WinRtRotationSensor(QSensor *sensor)
return;
}
+ addDataRate(1, 1000 / d->minimumReportInterval); // dataRate in Hz
+ sensor->setDataRate(1);
+
setReading<QRotationReading>(&d->reading);
}
@@ -164,7 +167,12 @@ void WinRtRotationSensor::start()
sensorError(hr);
return;
}
- quint32 reportInterval = qMax(d->minimumReportInterval, quint32(1000/sensor()->dataRate()));
+
+ int dataRate = sensor()->dataRate();
+ if (!dataRate)
+ return;
+
+ quint32 reportInterval = qMax(d->minimumReportInterval, quint32(1000/dataRate));
hr = d->sensor->put_ReportInterval(reportInterval);
if (FAILED(hr)) {
qCWarning(lcWinRtSensors) << "Unable to attach to set report interval."