summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLorn Potter <lorn.potter@gmail.com>2015-03-11 18:00:48 +1000
committerLorn Potter <lorn.potter@gmail.com>2015-03-19 18:29:42 +0000
commit767f33d8c657f194d6d2e33f87ff9fc4560b30fe (patch)
tree0e40a2eae80d45b426ca85d83955ac511ac73c36
parent46a55f2a75b67c477c7fd0d8d706906475e7ec55 (diff)
add dynamic alwaysOn support for sensorfw backend
Change-Id: Ibb4d335ff43a91f84f346ab32847ab376830ed35 Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>
-rw-r--r--src/plugins/sensors/sensorfw/sensorfwsensorbase.cpp27
-rw-r--r--src/plugins/sensors/sensorfw/sensorfwsensorbase.h2
2 files changed, 29 insertions, 0 deletions
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