diff options
-rw-r--r-- | config.tests/bbsensor_compass/bbsensor_compass.pro | 4 | ||||
-rw-r--r-- | config.tests/bbsensor_compass/main.cpp | 56 | ||||
-rw-r--r-- | qtsensors.pro | 1 | ||||
-rw-r--r-- | src/plugins/sensors/blackberry/bbcompass.cpp | 12 | ||||
-rw-r--r-- | src/plugins/sensors/blackberry/blackberry.pro | 3 |
5 files changed, 76 insertions, 0 deletions
diff --git a/config.tests/bbsensor_compass/bbsensor_compass.pro b/config.tests/bbsensor_compass/bbsensor_compass.pro new file mode 100644 index 00000000..349130a3 --- /dev/null +++ b/config.tests/bbsensor_compass/bbsensor_compass.pro @@ -0,0 +1,4 @@ +TEMPLATE = app +SOURCES += main.cpp +CONFIG += qt +requires(blackberry) diff --git a/config.tests/bbsensor_compass/main.cpp b/config.tests/bbsensor_compass/main.cpp new file mode 100644 index 00000000..fcaec54e --- /dev/null +++ b/config.tests/bbsensor_compass/main.cpp @@ -0,0 +1,56 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Research In Motion +** Contact: http://www.qt-project.org/ +** +** This file is part of the QtSensors module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** GNU Lesser General Public License Usage +** 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, Nokia gives you certain additional +** rights. These rights are described in the Nokia 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. +** +** Other Usage +** Alternatively, this file may be used in accordance with the terms and +** conditions contained in a signed written agreement between you and Nokia. +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ +#include <QtCore/qglobal.h> +#ifndef Q_OS_BLACKBERRY +#error "Missing Q_OS_BLACKBERRY" +#endif +#include <sensor/sensor.h> + +int main(int argc, char** argv) +{ + Q_UNUSED(argc); + Q_UNUSED(argv); + sensor_event_t event; + sensor_type_e compass = SENSOR_TYPE_COMPASS; + Q_UNUSED(compass); + Q_UNUSED(event); + return 0; +} diff --git a/qtsensors.pro b/qtsensors.pro index 912823f1..2ad8197d 100644 --- a/qtsensors.pro +++ b/qtsensors.pro @@ -1,6 +1,7 @@ load(configure) blackberry { qtCompileTest(bbsensor_header) + qtCompileTest(bbsensor_compass) } load(qt_parts) diff --git a/src/plugins/sensors/blackberry/bbcompass.cpp b/src/plugins/sensors/blackberry/bbcompass.cpp index 9ada2cd5..02f9c9fa 100644 --- a/src/plugins/sensors/blackberry/bbcompass.cpp +++ b/src/plugins/sensors/blackberry/bbcompass.cpp @@ -44,13 +44,20 @@ using namespace BbUtil; BbCompass::BbCompass(QSensor *sensor) +#ifdef HAVE_COMPASS_SENSOR + : BbSensorBackend<QCompassReading>(devicePath(), SENSOR_TYPE_COMPASS, sensor) +#else : BbSensorBackend<QCompassReading>(devicePath(), SENSOR_TYPE_ROTATION_MATRIX, sensor) +#endif { setDescription(QLatin1String("Azimuth in degrees from magnetic north")); } bool BbCompass::updateReadingFromEvent(const sensor_event_t &event, QCompassReading *reading) { +#ifdef HAVE_COMPASS_SENSOR + reading->setAzimuth(event.compass_s.azimuth); +#else float xRad, yRad, zRad; matrixToEulerZXY(event.rotation_matrix, xRad, yRad, zRad); float azimuth = radiansToDegrees(zRad); @@ -59,6 +66,7 @@ bool BbCompass::updateReadingFromEvent(const sensor_event_t &event, QCompassRead else azimuth = 360.0f - azimuth; reading->setAzimuth(azimuth); +#endif switch (event.accuracy) { case SENSOR_ACCURACY_UNRELIABLE: @@ -85,5 +93,9 @@ bool BbCompass::updateReadingFromEvent(const sensor_event_t &event, QCompassRead QString BbCompass::devicePath() { +#ifdef HAVE_COMPASS_SENSOR + return QLatin1String("/dev/sensor/compass"); +#else return QLatin1String("/dev/sensor/rotMatrix"); +#endif } diff --git a/src/plugins/sensors/blackberry/blackberry.pro b/src/plugins/sensors/blackberry/blackberry.pro index ef6dda60..9972e446 100644 --- a/src/plugins/sensors/blackberry/blackberry.pro +++ b/src/plugins/sensors/blackberry/blackberry.pro @@ -9,6 +9,9 @@ load(qt_plugin) config_bbsensor_header { DEFINES += HAVE_NDK_SENSOR_H } +config_bbsensor_compass { + DEFINES += HAVE_COMPASS_SENSOR +} DESTDIR = $$QT.sensors.plugins/sensors |