summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLincoln Ramsay <lincoln.ramsay@nokia.com>2011-12-20 11:05:30 +1000
committerQt by Nokia <qt-info@nokia.com>2012-01-11 03:20:40 +0100
commitf9672df5ea9872f911eb0011012f829309e11e71 (patch)
tree379b89d2598cde56b8dc6bd1493db8493b1bb8b5
parent43071ca54cb41fa06e850e75ae282fcd8824356c (diff)
Implement an API for alwaysOn.
Change-Id: If530fed02979ad9c4608f317b718ee449bb25ddc Sanity-Review: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Zsolt Simon <zsolt.simon@nokia.com>
-rw-r--r--src/sensors/qsensor.cpp17
-rw-r--r--src/sensors/qsensor.h4
-rw-r--r--src/sensors/qsensor_p.h3
-rw-r--r--tests/auto/qsensor/tst_qsensor.cpp10
4 files changed, 34 insertions, 0 deletions
diff --git a/src/sensors/qsensor.cpp b/src/sensors/qsensor.cpp
index 39820797..9dc11d19 100644
--- a/src/sensors/qsensor.cpp
+++ b/src/sensors/qsensor.cpp
@@ -341,6 +341,23 @@ bool QSensor::isActive() const
}
/*!
+ \property QSensor::alwaysOn
+ \brief a value to indicate if the sensor should remain running when the screen is off.
+
+ Some platforms have a policy of suspending sensors when the screen turns off.
+ Setting this property to true will ensure the sensor continues to run.
+*/
+void QSensor::setAlwaysOn(bool alwaysOn)
+{
+ d->alwaysOn = alwaysOn;
+}
+
+bool QSensor::isAlwaysOn() const
+{
+ return d->alwaysOn;
+}
+
+/*!
\property QSensor::availableDataRates
\brief the data rates that the sensor supports.
diff --git a/src/sensors/qsensor.h b/src/sensors/qsensor.h
index aca95ce1..08bb0a7e 100644
--- a/src/sensors/qsensor.h
+++ b/src/sensors/qsensor.h
@@ -89,6 +89,7 @@ class Q_SENSORS_EXPORT QSensor : public QObject
Q_PROPERTY(int outputRange READ outputRange WRITE setOutputRange)
Q_PROPERTY(QString description READ description)
Q_PROPERTY(int error READ error NOTIFY sensorError)
+ Q_PROPERTY(bool alwaysOn READ isAlwaysOn WRITE setAlwaysOn)
#ifdef Q_QDOC
Q_PROPERTY(int maxBufferSize)
Q_PROPERTY(int efficientBufferSize)
@@ -111,6 +112,9 @@ public:
void setActive(bool active);
bool isActive() const;
+ bool isAlwaysOn() const;
+ void setAlwaysOn(bool alwaysOn);
+
qrangelist availableDataRates() const;
int dataRate() const;
void setDataRate(int rate);
diff --git a/src/sensors/qsensor_p.h b/src/sensors/qsensor_p.h
index e87f10c3..d0876726 100644
--- a/src/sensors/qsensor_p.h
+++ b/src/sensors/qsensor_p.h
@@ -75,6 +75,7 @@ public:
, filter_reading(0)
, cache_reading(0)
, error(0)
+ , alwaysOn(false)
{
}
@@ -100,6 +101,8 @@ public:
QSensorReading *cache_reading;
int error;
+
+ bool alwaysOn;
};
class QSensorReadingPrivate
diff --git a/tests/auto/qsensor/tst_qsensor.cpp b/tests/auto/qsensor/tst_qsensor.cpp
index f378b89f..f56baad5 100644
--- a/tests/auto/qsensor/tst_qsensor.cpp
+++ b/tests/auto/qsensor/tst_qsensor.cpp
@@ -810,6 +810,16 @@ private slots:
QVERIFY(!sensor.isActive());
}
+ void testAlwaysOn()
+ {
+ TestSensor sensor;
+ QCOMPARE(sensor.isAlwaysOn(), false);
+ sensor.setAlwaysOn(true);
+ QCOMPARE(sensor.isAlwaysOn(), true);
+ sensor.setAlwaysOn(false);
+ QCOMPARE(sensor.isAlwaysOn(), false);
+ }
+
void testIsRegistered()
{
bool expected;