From 767f33d8c657f194d6d2e33f87ff9fc4560b30fe Mon Sep 17 00:00:00 2001 From: Lorn Potter Date: Wed, 11 Mar 2015 18:00:48 +1000 Subject: add dynamic alwaysOn support for sensorfw backend Change-Id: Ibb4d335ff43a91f84f346ab32847ab376830ed35 Reviewed-by: Alex Blasche --- .../sensors/sensorfw/sensorfwsensorbase.cpp | 27 ++++++++++++++++++++++ src/plugins/sensors/sensorfw/sensorfwsensorbase.h | 2 ++ 2 files changed, 29 insertions(+) diff --git a/src/plugins/sensors/sensorfw/sensorfwsensorbase.cpp b/src/plugins/sensors/sensorfw/sensorfwsensorbase.cpp index 7c65e137..ba37628e 100644 --- a/src/plugins/sensors/sensorfw/sensorfwsensorbase.cpp +++ b/src/plugins/sensors/sensorfw/sensorfwsensorbase.cpp @@ -65,6 +65,7 @@ SensorfwSensorBase::SensorfwSensorBase(QSensor *sensor) connect(watcher, SIGNAL(serviceUnregistered(QString)), this, SLOT(sensordUnregistered())); + connect(sensor, SIGNAL(alwaysOnChanged()),this,SLOT(standyOverrideChanged())); m_available = QDBusConnection::systemBus().interface()->isServiceRegistered("com.nokia.SensorService"); if (m_available) @@ -290,3 +291,29 @@ bool SensorfwSensorBase::initSensorInterface(QString const &name) setRanges(); return true; } + +void SensorfwSensorBase::standyOverrideChanged() +{ + m_sensorInterface->setStandbyOverride(sensor()->isAlwaysOn()); +} + +bool SensorfwSensorBase::isFeatureSupported(QSensor::Feature feature) const +{ + switch (feature) { + case QSensor::AlwaysOn: + return true; + case QSensor::AxesOrientation: + case QSensor::Buffering: + case QSensor::AccelerationMode: + case QSensor::SkipDuplicates: + case QSensor::PressureSensorTemperature: + case QSensor::GeoValues: + case QSensor::Reserved: + case QSensor::FieldOfView: + return false; + break; + }; + + return false; +} + diff --git a/src/plugins/sensors/sensorfw/sensorfwsensorbase.h b/src/plugins/sensors/sensorfw/sensorfwsensorbase.h index b5a4c996..cd12c7f0 100644 --- a/src/plugins/sensors/sensorfw/sensorfwsensorbase.h +++ b/src/plugins/sensors/sensorfw/sensorfwsensorbase.h @@ -95,6 +95,7 @@ protected: int bufferSize() const; virtual qreal correctionFactor() const; bool reinitIsNeeded; + bool isFeatureSupported(QSensor::Feature feature) const; private: bool initSensorInterface(QString const &); @@ -109,6 +110,7 @@ private: private slots: void connectToSensord(); void sensordUnregistered(); + void standyOverrideChanged(); }; #endif -- cgit v1.2.3