From f9672df5ea9872f911eb0011012f829309e11e71 Mon Sep 17 00:00:00 2001 From: Lincoln Ramsay Date: Tue, 20 Dec 2011 11:05:30 +1000 Subject: Implement an API for alwaysOn. Change-Id: If530fed02979ad9c4608f317b718ee449bb25ddc Sanity-Review: Qt Sanity Bot Reviewed-by: Zsolt Simon --- src/sensors/qsensor.cpp | 17 +++++++++++++++++ src/sensors/qsensor.h | 4 ++++ src/sensors/qsensor_p.h | 3 +++ tests/auto/qsensor/tst_qsensor.cpp | 10 ++++++++++ 4 files changed, 34 insertions(+) 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 @@ -340,6 +340,23 @@ bool QSensor::isActive() const return d->active; } +/*! + \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; -- cgit v1.2.3