diff options
25 files changed, 182 insertions, 74 deletions
diff --git a/src/plugins/sensors/sensorfw/main.cpp b/src/plugins/sensors/sensorfw/main.cpp index f12a193..89e012c 100644 --- a/src/plugins/sensors/sensorfw/main.cpp +++ b/src/plugins/sensors/sensorfw/main.cpp @@ -51,9 +51,9 @@ #include "sensorfwgyroscope.h" #include "sensorfwlightsensor.h" -#include <qsensorplugin.h> -#include <qsensorbackend.h> -#include <qsensormanager.h> +#include <QtSensors/qsensorplugin.h> +#include <QtSensors/qsensorbackend.h> +#include <QtSensors/qsensormanager.h> #include <QDebug> #include <QSettings> diff --git a/src/plugins/sensors/sensorfw/sensorfwaccelerometer.cpp b/src/plugins/sensors/sensorfw/sensorfwaccelerometer.cpp index 4c50faa..5f1efb2 100644 --- a/src/plugins/sensors/sensorfw/sensorfwaccelerometer.cpp +++ b/src/plugins/sensors/sensorfw/sensorfwaccelerometer.cpp @@ -42,12 +42,12 @@ #include "sensorfwaccelerometer.h" char const * const sensorfwaccelerometer::id("sensorfw.accelerometer"); -bool sensorfwaccelerometer::m_initDone = false; sensorfwaccelerometer::sensorfwaccelerometer(QSensor *sensor) - : SensorfwSensorBase(sensor) + : SensorfwSensorBase(sensor), + m_initDone(false) { - initSensor<AccelerometerSensorChannelInterface>(m_initDone); + init(); setDescription(QLatin1String("x, y, and z axes accelerations in m/s^2")); setRanges(GRAVITY_EARTH_THOUSANDTH); setReading<QAccelerometerReading>(&m_reading); @@ -90,3 +90,9 @@ qreal sensorfwaccelerometer::correctionFactor() const { return GRAVITY_EARTH_THOUSANDTH; } + +void sensorfwaccelerometer::init() +{ + m_initDone = false; + initSensor<AccelerometerSensorChannelInterface>(m_initDone); +} diff --git a/src/plugins/sensors/sensorfw/sensorfwaccelerometer.h b/src/plugins/sensors/sensorfw/sensorfwaccelerometer.h index 1c94aae..25ef144 100644 --- a/src/plugins/sensors/sensorfw/sensorfwaccelerometer.h +++ b/src/plugins/sensors/sensorfw/sensorfwaccelerometer.h @@ -42,7 +42,7 @@ #define SENSORFWACCELEROMETER_H #include "sensorfwsensorbase.h" -#include <qaccelerometer.h> +#include <QtSensors/qaccelerometer.h> #include <accelerometersensor_i.h> #include <datatypes/xyz.h> @@ -60,11 +60,11 @@ protected: virtual bool doConnect(); virtual QString sensorName() const; virtual qreal correctionFactor() const; - + virtual void init() Q_DECL_OVERRIDE; private: QAccelerometerReading m_reading; - static bool m_initDone; + bool m_initDone; private slots: void slotDataAvailable(const XYZ& data); diff --git a/src/plugins/sensors/sensorfw/sensorfwals.cpp b/src/plugins/sensors/sensorfw/sensorfwals.cpp index 839c537..43bab0a 100644 --- a/src/plugins/sensors/sensorfw/sensorfwals.cpp +++ b/src/plugins/sensors/sensorfw/sensorfwals.cpp @@ -43,12 +43,12 @@ #include "sensorfwals.h" char const * const Sensorfwals::id("sensorfw.als"); -bool Sensorfwals::m_initDone = false; Sensorfwals::Sensorfwals(QSensor *sensor) : SensorfwSensorBase(sensor) + , m_initDone(false) { - initSensor<ALSSensorChannelInterface>(m_initDone); + init(); setReading<QAmbientLightReading>(&m_reading); // metadata setDescription(QLatin1String("ambient light intensity given as 5 pre-defined levels")); @@ -110,3 +110,8 @@ QAmbientLightReading::LightLevel Sensorfwals::getLightLevel(int lux) } } +void Sensorfwals::init() +{ + m_initDone = false; + initSensor<ALSSensorChannelInterface>(m_initDone); +} diff --git a/src/plugins/sensors/sensorfw/sensorfwals.h b/src/plugins/sensors/sensorfw/sensorfwals.h index 63d6443..f0b91a9 100644 --- a/src/plugins/sensors/sensorfw/sensorfwals.h +++ b/src/plugins/sensors/sensorfw/sensorfwals.h @@ -43,7 +43,7 @@ #define SENSORFWALS_H #include "sensorfwsensorbase.h" -#include <qambientlightsensor.h> +#include <QtSensors/qambientlightsensor.h> #include <alssensor_i.h> @@ -60,11 +60,11 @@ protected: virtual bool doConnect(); virtual QString sensorName() const; virtual void start(); - + virtual void init() Q_DECL_OVERRIDE; private: QAmbientLightReading m_reading; - static bool m_initDone; + bool m_initDone; private slots: void slotDataAvailable(const Unsigned& data); static QAmbientLightReading::LightLevel getLightLevel(int lux); diff --git a/src/plugins/sensors/sensorfw/sensorfwcompass.cpp b/src/plugins/sensors/sensorfw/sensorfwcompass.cpp index 1fd8441..2cce489 100644 --- a/src/plugins/sensors/sensorfw/sensorfwcompass.cpp +++ b/src/plugins/sensors/sensorfw/sensorfwcompass.cpp @@ -43,12 +43,12 @@ #include "sensorfwcompass.h" char const * const SensorfwCompass::id("sensorfw.compass"); -bool SensorfwCompass::m_initDone = false; SensorfwCompass::SensorfwCompass(QSensor *sensor) : SensorfwSensorBase(sensor) + , m_initDone(false) { - initSensor<CompassSensorChannelInterface>(m_initDone); + init(); setReading<QCompassReading>(&m_reading); sensor->setDataRate(50);//set a default rate } @@ -79,3 +79,8 @@ QString SensorfwCompass::sensorName() const return "compasssensor"; } +void SensorfwCompass::init() +{ + m_initDone = false; + initSensor<CompassSensorChannelInterface>(m_initDone); +} diff --git a/src/plugins/sensors/sensorfw/sensorfwcompass.h b/src/plugins/sensors/sensorfw/sensorfwcompass.h index 7cc5c43..1bb7e6e 100644 --- a/src/plugins/sensors/sensorfw/sensorfwcompass.h +++ b/src/plugins/sensors/sensorfw/sensorfwcompass.h @@ -42,7 +42,7 @@ #define SENSORFWCOMPASS_H #include "sensorfwsensorbase.h" -#include <qcompass.h> +#include <QtSensors/qcompass.h> #include <compasssensor_i.h> #include <datatypes/compass.h> @@ -59,10 +59,10 @@ public: protected: virtual bool doConnect(); virtual QString sensorName() const; - + virtual void init() Q_DECL_OVERRIDE; private: QCompassReading m_reading; - static bool m_initDone; + bool m_initDone; private slots: void slotDataAvailable(const Compass& data); }; diff --git a/src/plugins/sensors/sensorfw/sensorfwgyroscope.cpp b/src/plugins/sensors/sensorfw/sensorfwgyroscope.cpp index e29b77e..6672040 100644 --- a/src/plugins/sensors/sensorfw/sensorfwgyroscope.cpp +++ b/src/plugins/sensors/sensorfw/sensorfwgyroscope.cpp @@ -43,12 +43,12 @@ char const * const SensorfwGyroscope::id("sensorfw.gyroscope"); const float SensorfwGyroscope::MILLI = 0.001; -bool SensorfwGyroscope::m_initDone = false; SensorfwGyroscope::SensorfwGyroscope(QSensor *sensor) : SensorfwSensorBase(sensor) + , m_initDone(false) { - initSensor<GyroscopeSensorChannelInterface>(m_initDone); + init(); setDescription(QLatin1String("angular velocities around x, y, and z axis in degrees per second")); setRanges(MILLI); setReading<QGyroscopeReading>(&m_reading); @@ -89,3 +89,9 @@ qreal SensorfwGyroscope::correctionFactor() const { return MILLI; } + +void SensorfwGyroscope::init() +{ + m_initDone = false; + initSensor<GyroscopeSensorChannelInterface>(m_initDone); +} diff --git a/src/plugins/sensors/sensorfw/sensorfwgyroscope.h b/src/plugins/sensors/sensorfw/sensorfwgyroscope.h index e982c80..30b9579 100644 --- a/src/plugins/sensors/sensorfw/sensorfwgyroscope.h +++ b/src/plugins/sensors/sensorfw/sensorfwgyroscope.h @@ -44,7 +44,7 @@ #define SENSORFWGYROSCOPE_H #include "sensorfwsensorbase.h" -#include <qgyroscope.h> +#include <QtSensors/qgyroscope.h> #include <datatypes/xyz.h> #include <gyroscopesensor_i.h> @@ -62,11 +62,11 @@ protected: virtual bool doConnect(); virtual QString sensorName() const; virtual qreal correctionFactor() const; - + virtual void init() Q_DECL_OVERRIDE; private: QGyroscopeReading m_reading; - static bool m_initDone; + bool m_initDone; static const float MILLI; private slots: void slotDataAvailable(const XYZ& data); diff --git a/src/plugins/sensors/sensorfw/sensorfwirproximitysensor.cpp b/src/plugins/sensors/sensorfw/sensorfwirproximitysensor.cpp index a2e2349..0714e5f 100644 --- a/src/plugins/sensors/sensorfw/sensorfwirproximitysensor.cpp +++ b/src/plugins/sensors/sensorfw/sensorfwirproximitysensor.cpp @@ -43,14 +43,12 @@ #define RM680_PS "/dev/bh1770glc_ps" char const * const SensorfwIrProximitySensor::id("sensorfw.irproximitysensor"); -bool SensorfwIrProximitySensor::m_initDone = false; - - SensorfwIrProximitySensor::SensorfwIrProximitySensor(QSensor *sensor) : SensorfwSensorBase(sensor) + , m_initDone(false) { - initSensor<ProximitySensorChannelInterface>(m_initDone); + init(); setReading<QIRProximityReading>(&m_reading); setDescription(QLatin1String("reflectance as percentage (%) of maximum")); addOutputRange(0, 100, 1); @@ -80,3 +78,8 @@ QString SensorfwIrProximitySensor::sensorName() const } +void SensorfwIrProximitySensor::init() +{ + m_initDone = false; + initSensor<ProximitySensorChannelInterface>(m_initDone); +} diff --git a/src/plugins/sensors/sensorfw/sensorfwirproximitysensor.h b/src/plugins/sensors/sensorfw/sensorfwirproximitysensor.h index c729f59..fce0234 100644 --- a/src/plugins/sensors/sensorfw/sensorfwirproximitysensor.h +++ b/src/plugins/sensors/sensorfw/sensorfwirproximitysensor.h @@ -43,7 +43,7 @@ #define SENSORFWIRPROXIMITYSENSOR_H #include "sensorfwsensorbase.h" -#include <qirproximitysensor.h> +#include <QtSensors/qirproximitysensor.h> #include <proximitysensor_i.h> @@ -58,10 +58,10 @@ public: protected: virtual bool doConnect(); virtual QString sensorName() const; - + virtual void init() Q_DECL_OVERRIDE; private: QIRProximityReading m_reading; - static bool m_initDone; + bool m_initDone; int rangeMax; private slots: diff --git a/src/plugins/sensors/sensorfw/sensorfwlightsensor.cpp b/src/plugins/sensors/sensorfw/sensorfwlightsensor.cpp index 232d4e8..5f2a0da 100644 --- a/src/plugins/sensors/sensorfw/sensorfwlightsensor.cpp +++ b/src/plugins/sensors/sensorfw/sensorfwlightsensor.cpp @@ -42,12 +42,12 @@ #include "sensorfwlightsensor.h" char const * const SensorfwLightSensor::id("sensorfw.lightsensor"); -bool SensorfwLightSensor::m_initDone = false; SensorfwLightSensor::SensorfwLightSensor(QSensor *sensor) : SensorfwSensorBase(sensor) + , m_initDone(false) { - initSensor<ALSSensorChannelInterface>(m_initDone); + init(); setReading<QLightReading>(&m_reading); sensor->setDataRate(10);//set a default rate } @@ -70,3 +70,8 @@ QString SensorfwLightSensor::sensorName() const { return "alssensor"; } +void SensorfwLightSensor::init() +{ + m_initDone = false; + initSensor<ALSSensorChannelInterface>(m_initDone); +} diff --git a/src/plugins/sensors/sensorfw/sensorfwlightsensor.h b/src/plugins/sensors/sensorfw/sensorfwlightsensor.h index 96df633..f9394c3 100644 --- a/src/plugins/sensors/sensorfw/sensorfwlightsensor.h +++ b/src/plugins/sensors/sensorfw/sensorfwlightsensor.h @@ -44,7 +44,7 @@ #define SENSORFWLIGHTSENSOR_H #include "sensorfwsensorbase.h" -#include <qlightsensor.h> +#include <QtSensors/qlightsensor.h> #include <alssensor_i.h> @@ -59,10 +59,10 @@ public: protected: virtual bool doConnect(); virtual QString sensorName() const; - + virtual void init() Q_DECL_OVERRIDE; private: QLightReading m_reading; - static bool m_initDone; + bool m_initDone; private slots: void slotDataAvailable(const Unsigned& data); }; diff --git a/src/plugins/sensors/sensorfw/sensorfwmagnetometer.cpp b/src/plugins/sensors/sensorfw/sensorfwmagnetometer.cpp index e4afdd3..cc49675 100644 --- a/src/plugins/sensors/sensorfw/sensorfwmagnetometer.cpp +++ b/src/plugins/sensors/sensorfw/sensorfwmagnetometer.cpp @@ -40,18 +40,17 @@ ****************************************************************************/ #include "sensorfwmagnetometer.h" -#include <QSensor> char const * const SensorfwMagnetometer::id("sensorfw.magnetometer"); -bool SensorfwMagnetometer::m_initDone = false; const float SensorfwMagnetometer::NANO = 0.000000001; SensorfwMagnetometer::SensorfwMagnetometer(QSensor *sensor) : SensorfwSensorBase(sensor) + , m_initDone(false) { - initSensor<MagnetometerSensorChannelInterface>(m_initDone); + init(); setDescription(QLatin1String("magnetic flux density in teslas (T)")); setRanges(NANO); setReading<QMagnetometerReading>(&m_reading); @@ -103,3 +102,9 @@ qreal SensorfwMagnetometer::correctionFactor() const { return SensorfwMagnetometer::NANO; } + +void SensorfwMagnetometer::init() +{ + m_initDone = false; + initSensor<MagnetometerSensorChannelInterface>(m_initDone); +} diff --git a/src/plugins/sensors/sensorfw/sensorfwmagnetometer.h b/src/plugins/sensors/sensorfw/sensorfwmagnetometer.h index 22d81a8..d86bd04 100644 --- a/src/plugins/sensors/sensorfw/sensorfwmagnetometer.h +++ b/src/plugins/sensors/sensorfw/sensorfwmagnetometer.h @@ -43,7 +43,7 @@ #define SENSORFWMAGNETOMETER_H #include "sensorfwsensorbase.h" -#include <qmagnetometer.h> +#include <QtSensors/qmagnetometer.h> #include <magnetometersensor_i.h> #include <datatypes/magneticfield.h> @@ -62,12 +62,12 @@ protected: virtual void start(); virtual QString sensorName() const; virtual qreal correctionFactor() const; - + virtual void init() Q_DECL_OVERRIDE; private: static const float NANO; QMagnetometerReading m_reading; - static bool m_initDone; + bool m_initDone; bool m_isGeoMagnetometer; private slots: diff --git a/src/plugins/sensors/sensorfw/sensorfworientationsensor.cpp b/src/plugins/sensors/sensorfw/sensorfworientationsensor.cpp index 6211a45..149f693 100644 --- a/src/plugins/sensors/sensorfw/sensorfworientationsensor.cpp +++ b/src/plugins/sensors/sensorfw/sensorfworientationsensor.cpp @@ -44,12 +44,12 @@ #include <datatypes/posedata.h> char const * const SensorfwOrientationSensor::id("sensorfw.orientationsensor"); -bool SensorfwOrientationSensor::m_initDone = false; SensorfwOrientationSensor::SensorfwOrientationSensor(QSensor *sensor) : SensorfwSensorBase(sensor) + , m_initDone(false) { - initSensor<OrientationSensorChannelInterface>(m_initDone); + init(); setReading<QOrientationReading>(&m_reading); sensor->setDataRate(10);//set a default rate } @@ -97,3 +97,9 @@ QOrientationReading::Orientation SensorfwOrientationSensor::getOrientation(int o } return QOrientationReading::Undefined; } + +void SensorfwOrientationSensor::init() +{ + m_initDone = false; + initSensor<OrientationSensorChannelInterface>(m_initDone); +} diff --git a/src/plugins/sensors/sensorfw/sensorfworientationsensor.h b/src/plugins/sensors/sensorfw/sensorfworientationsensor.h index 7c2ecdf..139761a 100644 --- a/src/plugins/sensors/sensorfw/sensorfworientationsensor.h +++ b/src/plugins/sensors/sensorfw/sensorfworientationsensor.h @@ -43,7 +43,7 @@ #define SENSORFWORIENTATIONSENSOR_H #include "sensorfwsensorbase.h" -#include <qorientationsensor.h> +#include <QtSensors/qorientationsensor.h> #include <orientationsensor_i.h> @@ -60,11 +60,11 @@ protected: virtual bool doConnect(); virtual QString sensorName() const; virtual void start(); - + virtual void init() Q_DECL_OVERRIDE; private: QOrientationReading m_reading; static QOrientationReading::Orientation getOrientation(int orientation); - static bool m_initDone; + bool m_initDone; private slots: void slotDataAvailable(const Unsigned& orientation); diff --git a/src/plugins/sensors/sensorfw/sensorfwproximitysensor.cpp b/src/plugins/sensors/sensorfw/sensorfwproximitysensor.cpp index 1f4c2b5..eaf7232 100644 --- a/src/plugins/sensors/sensorfw/sensorfwproximitysensor.cpp +++ b/src/plugins/sensors/sensorfw/sensorfwproximitysensor.cpp @@ -42,12 +42,14 @@ #include "sensorfwproximitysensor.h" char const * const SensorfwProximitySensor::id("sensorfw.proximitysensor"); -bool SensorfwProximitySensor::m_initDone = false; +//bool SensorfwProximitySensor::m_initDone = false; SensorfwProximitySensor::SensorfwProximitySensor(QSensor *sensor) - : SensorfwSensorBase(sensor), m_exClose(false) + : SensorfwSensorBase(sensor), + m_exClose(false) + , m_initDone(false) { - initSensor<ProximitySensorChannelInterface>(m_initDone); + init(); setReading<QProximityReading>(&m_reading); addDataRate(10,10); //TODO: fix this when we know better sensor->setDataRate(10);//set a default rate @@ -86,3 +88,9 @@ QString SensorfwProximitySensor::sensorName() const { return "proximitysensor"; } + +void SensorfwProximitySensor::init() +{ + m_initDone = false; + initSensor<ProximitySensorChannelInterface>(m_initDone); +} diff --git a/src/plugins/sensors/sensorfw/sensorfwproximitysensor.h b/src/plugins/sensors/sensorfw/sensorfwproximitysensor.h index 404e66a..6558447 100644 --- a/src/plugins/sensors/sensorfw/sensorfwproximitysensor.h +++ b/src/plugins/sensors/sensorfw/sensorfwproximitysensor.h @@ -43,7 +43,7 @@ #define SENSORFWPROXIMITYSENSOR_H #include "sensorfwsensorbase.h" -#include <qproximitysensor.h> +#include <QtSensors/qproximitysensor.h> #include <proximitysensor_i.h> @@ -60,11 +60,11 @@ protected: virtual bool doConnect(); virtual QString sensorName() const; virtual void start(); - + virtual void init() Q_DECL_OVERRIDE; private: QProximityReading m_reading; - static bool m_initDone; + bool m_initDone; bool m_exClose; private slots: diff --git a/src/plugins/sensors/sensorfw/sensorfwrotationsensor.cpp b/src/plugins/sensors/sensorfw/sensorfwrotationsensor.cpp index 1971e92..dbeb3b6 100644 --- a/src/plugins/sensors/sensorfw/sensorfwrotationsensor.cpp +++ b/src/plugins/sensors/sensorfw/sensorfwrotationsensor.cpp @@ -42,12 +42,12 @@ #include "sensorfwrotationsensor.h" char const * const SensorfwRotationSensor::id("sensorfw.rotationsensor"); -bool SensorfwRotationSensor::m_initDone = false; SensorfwRotationSensor::SensorfwRotationSensor(QSensor *sensor) : SensorfwSensorBase(sensor) + , m_initDone(false) { - initSensor<RotationSensorChannelInterface>(m_initDone); + init(); setReading<QRotationReading>(&m_reading); QRotationSensor *const rotationSensor = qobject_cast<QRotationSensor *>(sensor); if (rotationSensor) @@ -80,3 +80,9 @@ QString SensorfwRotationSensor::sensorName() const { return "rotationsensor"; } + +void SensorfwRotationSensor::init() +{ + m_initDone = false; + initSensor<RotationSensorChannelInterface>(m_initDone); +} diff --git a/src/plugins/sensors/sensorfw/sensorfwrotationsensor.h b/src/plugins/sensors/sensorfw/sensorfwrotationsensor.h index d6b056b..1f237cf 100644 --- a/src/plugins/sensors/sensorfw/sensorfwrotationsensor.h +++ b/src/plugins/sensors/sensorfw/sensorfwrotationsensor.h @@ -44,7 +44,7 @@ #define SENSORFWROTATION_H #include "sensorfwsensorbase.h" -#include <qrotationsensor.h> +#include <QtSensors/qrotationsensor.h> #include <rotationsensor_i.h> #include <datatypes/xyz.h> @@ -61,10 +61,10 @@ public: protected: virtual bool doConnect(); virtual QString sensorName() const; - + virtual void init() Q_DECL_OVERRIDE; private: QRotationReading m_reading; - static bool m_initDone; + bool m_initDone; private slots: void slotDataAvailable(const XYZ& data); diff --git a/src/plugins/sensors/sensorfw/sensorfwsensorbase.cpp b/src/plugins/sensors/sensorfw/sensorfwsensorbase.cpp index fde2b97..247ee37 100644 --- a/src/plugins/sensors/sensorfw/sensorfwsensorbase.cpp +++ b/src/plugins/sensors/sensorfw/sensorfwsensorbase.cpp @@ -53,10 +53,29 @@ QStringList SensorfwSensorBase::m_bufferingSensors = QStringList() <<"sensorfw.gyroscope"<<"sensorfw.rotationsensor"; SensorfwSensorBase::SensorfwSensorBase(QSensor *sensor) - : QSensorBackend(sensor), m_sensorInterface(0), m_bufferSize(-1), m_prevOutputRange(0), m_efficientBufferSize(1), m_maxBufferSize(1) + : QSensorBackend(sensor), + m_sensorInterface(0), + m_bufferSize(-1), + m_prevOutputRange(0), + m_efficientBufferSize(1), + m_maxBufferSize(1), + m_available(false), + running(false) + { - if (!m_remoteSensorManager) - m_remoteSensorManager = &SensorManagerInterface::instance(); + watcher = new QDBusServiceWatcher("com.nokia.SensorService",QDBusConnection::systemBus(), + QDBusServiceWatcher::WatchForRegistration | + QDBusServiceWatcher::WatchForUnregistration, this); + + connect(watcher, SIGNAL(serviceRegistered(QString)), + this, SLOT(connectToSensord(QString))); + connect(watcher, SIGNAL(serviceUnregistered(QString)), + this, SLOT(sensordUnregistered(QString))); + + + m_available = QDBusConnection::systemBus().interface()->isServiceRegistered("com.nokia.SensorService"); + if (m_available) + connectToSensord(); } SensorfwSensorBase::~SensorfwSensorBase() @@ -109,7 +128,10 @@ void SensorfwSensorBase::start() doConnectAfterCheck(); int returnCode = m_sensorInterface->start().error().type(); - if (returnCode == 0) return; + if (returnCode == 0) { + running = true; + return; + } qWarning() << "m_sensorInterface did not start, error code:" << returnCode; } sensorStopped(); @@ -117,7 +139,9 @@ void SensorfwSensorBase::start() void SensorfwSensorBase::stop() { - if (m_sensorInterface) m_sensorInterface->stop(); + if (m_sensorInterface) + m_sensorInterface->stop(); + running = false; } void SensorfwSensorBase::setRanges(qreal correctionFactor) @@ -142,6 +166,7 @@ bool SensorfwSensorBase::doConnectAfterCheck() // buffer size int size = bufferSize(); + if (size == m_bufferSize) return true; if (m_bufferingSensors.contains(sensor()->identifier())) @@ -186,3 +211,17 @@ qreal SensorfwSensorBase::correctionFactor() const return 1; } +void SensorfwSensorBase::connectToSensord() +{ + m_remoteSensorManager = &SensorManagerInterface::instance(); + if (running) { + stop(); + start(); + } +} + +void SensorfwSensorBase::sensordUnregistered() +{ + m_bufferSize = -1; +} + diff --git a/src/plugins/sensors/sensorfw/sensorfwsensorbase.h b/src/plugins/sensors/sensorfw/sensorfwsensorbase.h index 1c2aa0e..2fc8238 100644 --- a/src/plugins/sensors/sensorfw/sensorfwsensorbase.h +++ b/src/plugins/sensors/sensorfw/sensorfwsensorbase.h @@ -43,17 +43,18 @@ #ifndef SENSORFWSENSORBASE_H #define SENSORFWSENSORBASE_H -#include <qsensorbackend.h> +#include <QtSensors/qsensorbackend.h> #include <sensormanagerinterface.h> #include <abstractsensor_i.h> -#include <QAmbientLightSensor> -#include <QIRProximitySensor> -#include <QTapSensor> -#include <QProximitySensor> +#include <QtSensors/QAmbientLightSensor> +#include <QtSensors/QIRProximitySensor> +#include <QtSensors/QTapSensor> +#include <QtSensors/QProximitySensor> class SensorfwSensorBase : public QSensorBackend { + Q_OBJECT public: SensorfwSensorBase(QSensor *sensor); virtual ~SensorfwSensorBase(); @@ -170,6 +171,12 @@ private: bool doConnectAfterCheck(); int m_efficientBufferSize, m_maxBufferSize; + QDBusServiceWatcher *watcher; + bool m_available; + bool running; +private slots: + void connectToSensord(); + void sensordUnregistered(); }; #endif diff --git a/src/plugins/sensors/sensorfw/sensorfwtapsensor.cpp b/src/plugins/sensors/sensorfw/sensorfwtapsensor.cpp index d5539de..f02dbe5 100644 --- a/src/plugins/sensors/sensorfw/sensorfwtapsensor.cpp +++ b/src/plugins/sensors/sensorfw/sensorfwtapsensor.cpp @@ -42,12 +42,13 @@ #include "sensorfwtapsensor.h" char const * const SensorfwTapSensor::id("sensorfw.tapsensor"); -bool SensorfwTapSensor::m_initDone = false; SensorfwTapSensor::SensorfwTapSensor(QSensor *sensor) - : SensorfwSensorBase(sensor), m_isOnceStarted(false) + : SensorfwSensorBase(sensor), + m_isOnceStarted(false) + , m_initDone(false) { - initSensor<TapSensorChannelInterface>(m_initDone); + init(); setReading<QTapReading>(&m_reading); addOutputRange(QTapReading::Undefined, QTapReading::Z_Both, 1); addDataRate(10,10); //TODO: fix this when we know better @@ -111,3 +112,9 @@ QString SensorfwTapSensor::sensorName() const { return "tapsensor"; } + +void SensorfwTapSensor::init() +{ + m_initDone = false; + initSensor<TapSensorChannelInterface>(m_initDone); +} diff --git a/src/plugins/sensors/sensorfw/sensorfwtapsensor.h b/src/plugins/sensors/sensorfw/sensorfwtapsensor.h index c577bde..c829876 100644 --- a/src/plugins/sensors/sensorfw/sensorfwtapsensor.h +++ b/src/plugins/sensors/sensorfw/sensorfwtapsensor.h @@ -42,7 +42,7 @@ #define SENSORFWTAPSENSOR_H #include "sensorfwsensorbase.h" -#include <qtapsensor.h> +#include <QtSensors/qtapsensor.h> #include <tapsensor_i.h> #include <datatypes/tap.h> @@ -60,10 +60,10 @@ protected: virtual bool doConnect(); virtual void start(); virtual QString sensorName() const; - + virtual void init() Q_DECL_OVERRIDE; private: QTapReading m_reading; - static bool m_initDone; + bool m_initDone; bool m_isDoubleTapSensor; bool m_isOnceStarted; private slots: |