diff options
-rw-r--r-- | src/sensors/qsensor.cpp | 17 | ||||
-rw-r--r-- | src/sensors/qsensor.h | 4 | ||||
-rw-r--r-- | src/sensors/qsensor_p.h | 3 | ||||
-rw-r--r-- | tests/auto/qsensor/tst_qsensor.cpp | 10 |
4 files changed, 34 insertions, 0 deletions
diff --git a/src/sensors/qsensor.cpp b/src/sensors/qsensor.cpp index 3982079..9dc11d1 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 aca95ce..08bb0a7 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 e87f10c..d087672 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 f378b89..f56baad 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; |