diff options
Diffstat (limited to 'plugins/sensors/blackberry/main.cpp')
-rw-r--r-- | plugins/sensors/blackberry/main.cpp | 169 |
1 files changed, 169 insertions, 0 deletions
diff --git a/plugins/sensors/blackberry/main.cpp b/plugins/sensors/blackberry/main.cpp new file mode 100644 index 0000000000..8ae622d95c --- /dev/null +++ b/plugins/sensors/blackberry/main.cpp @@ -0,0 +1,169 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Research In Motion <blackberry-qt@qnx.com> +** Contact: http://www.qt-project.org/legal +** +** This file is part of the Qt Mobility Components. +** +** $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 "bbaccelerometer.h" +#include "bbaltimeter.h" +#include "bbambientlightsensor.h" +#include "bbcompass.h" +#include "bbgyroscope.h" +#ifdef HAVE_HOLSTER_SENSOR +#include "bbholstersensor.h" +#endif +#include "bbirproximitysensor.h" +#include "bblightsensor.h" +#include "bbmagnetometer.h" +#include "bborientationsensor.h" +#include "bbpressuresensor.h" +#include "bbproximitysensor.h" +#include "bbrotationsensor.h" +#include "bbtemperaturesensor.h" +#include "bbguihelper.h" + +#include <qsensormanager.h> +#include <qsensorplugin.h> + +QTM_USE_NAMESPACE + +static const char *bbAccelerometerId = "bbAccelerometer"; +static const char *bbAltitmeterId = "bbAltimeter"; +static const char *bbAmbientLightSensorId = "bbAmbientLightSensor"; +static const char *bbCompassId = "bbCompass"; +static const char *bbGyroscopeId = "bbGyroscope"; +#ifdef HAVE_HOLSTER_SENSOR +static const char *bbHolsterSensorId = "bbHolsterSensor"; +#endif +static const char *bbIRProximitySensorId = "bbIRProximitySensor"; +static const char *bbLightSensorId = "bbLightSensor"; +static const char *bbMagnetometerId = "bbMagnetometer"; +static const char *bbOrientationSensorId = "bbOrientationSensor"; +static const char *bbPressureSensorId = "bbPressureSensor"; +static const char *bbProximitySensorId = "bbProximitySensor"; +static const char *bbRotationSensorId = "bbRotationSensor"; +static const char *bbTemperatureSensorId = "bbTemperatureSensor"; + +class BbSensorPlugin : public QObject, public QSensorPluginInterface, public QSensorBackendFactory +{ + Q_OBJECT + Q_INTERFACES(QtMobility::QSensorPluginInterface) +public: + void registerSensors() + { + if (sensorSupported(BbAccelerometer::devicePath())) + QSensorManager::registerBackend(QAccelerometer::type, bbAccelerometerId, this); + if (sensorSupported(BbAltimeter::devicePath())) + QSensorManager::registerBackend("BbAltimeter", bbAltitmeterId, this); + if (sensorSupported(BbAmbientLightSensor::devicePath())) + QSensorManager::registerBackend(QAmbientLightSensor::type, bbAmbientLightSensorId, this); + if (sensorSupported(BbCompass::devicePath())) + QSensorManager::registerBackend(QCompass::type, bbCompassId, this); + if (sensorSupported(BbGyroscope::devicePath())) + QSensorManager::registerBackend(QGyroscope::type, bbGyroscopeId, this); +#ifdef HAVE_HOLSTER_SENSOR + if (sensorSupported(BbHolsterSensor::devicePath())) + QSensorManager::registerBackend(QHolsterSensor::type, bbHolsterSensorId, this); +#endif + if (sensorSupported(BbIRProximitySensor::devicePath())) + QSensorManager::registerBackend(QIRProximitySensor::type, bbIRProximitySensorId, this); + if (sensorSupported(BbLightSensor::devicePath())) + QSensorManager::registerBackend(QLightSensor::type, bbLightSensorId, this); + if (sensorSupported(BbMagnetometer::devicePath())) + QSensorManager::registerBackend(QMagnetometer::type, bbMagnetometerId, this); + if (sensorSupported(BbOrientationSensor::devicePath())) + QSensorManager::registerBackend(QOrientationSensor::type, bbOrientationSensorId, this); + if (sensorSupported(BbPressureSensor::devicePath())) + QSensorManager::registerBackend(QPressureSensor::type, bbPressureSensorId, this); + if (sensorSupported(BbProximitySensor::devicePath())) + QSensorManager::registerBackend(QProximitySensor::type, bbProximitySensorId, this); + if (sensorSupported(BbRotationSensor::devicePath())) + QSensorManager::registerBackend(QRotationSensor::type, bbRotationSensorId, this); + if (sensorSupported(BbTemperatureSensor::devicePath())) + QSensorManager::registerBackend("BbTemperatureSensor", bbTemperatureSensorId, this); + } + + QSensorBackend *createBackend(QSensor *sensor) + { + BbSensorBackendBase *backend = 0; + if (sensor->identifier() == bbAccelerometerId) + backend = new BbAccelerometer(sensor); + if (sensor->identifier() == bbAltitmeterId) + backend = new BbAltimeter(sensor); + if (sensor->identifier() == bbAmbientLightSensorId) + backend = new BbAmbientLightSensor(sensor); + if (sensor->identifier() == bbCompassId) + backend = new BbCompass(sensor); + if (sensor->identifier() == bbGyroscopeId) + backend = new BbGyroscope(sensor); +#ifdef HAVE_HOLSTER_SENSOR + if (sensor->identifier() == bbHolsterSensorId) + backend = new BbHolsterSensor(sensor); +#endif + if (sensor->identifier() == bbIRProximitySensorId) + backend = new BbIRProximitySensor(sensor); + if (sensor->identifier() == bbLightSensorId) + backend = new BbLightSensor(sensor); + if (sensor->identifier() == bbMagnetometerId) + backend = new BbMagnetometer(sensor); + if (sensor->identifier() == bbOrientationSensorId) + backend = new BbOrientationSensor(sensor); + if (sensor->identifier() == bbPressureSensorId) + backend = new BbPressureSensor(sensor); + if (sensor->identifier() == bbProximitySensorId) + backend = new BbProximitySensor(sensor); + if (sensor->identifier() == bbRotationSensorId) + backend = new BbRotationSensor(sensor); + if (sensor->identifier() == bbTemperatureSensorId) + backend = new BbTemperatureSensor(sensor); + backend->initSensorInfo(); + backend->setGuiHelper(&m_guiHelper); + return backend; + } + +private: + bool sensorSupported(const QString &devicePath) + { + return QFile::exists(devicePath); + } + + BbGuiHelper m_guiHelper; +}; + +Q_EXPORT_PLUGIN2(libsensors_blackberry, BbSensorPlugin) + +#include "main.moc" |