summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/sensors/qsensor.cpp24
-rw-r--r--src/sensors/qsensor.h5
-rw-r--r--src/sensors/qsensor_p.h3
3 files changed, 32 insertions, 0 deletions
diff --git a/src/sensors/qsensor.cpp b/src/sensors/qsensor.cpp
index 3e13eb69c4..0b22ad20f7 100644
--- a/src/sensors/qsensor.cpp
+++ b/src/sensors/qsensor.cpp
@@ -375,6 +375,30 @@ 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.
+*/
+/*!
+ \fn QSensor::alwaysOnChanged()
+
+ This signal is emitted when the alwaysOn property changes.
+*/
+void QSensor::setAlwaysOn(bool alwaysOn)
+{
+ if (d->alwaysOn == alwaysOn) return;
+ d->alwaysOn = alwaysOn;
+ emit alwaysOnChanged();
+}
+
+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 dda9eb867b..02ef032e90 100644
--- a/src/sensors/qsensor.h
+++ b/src/sensors/qsensor.h
@@ -98,6 +98,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 NOTIFY alwaysOnChanged REVISION 1)
#ifdef Q_QDOC
Q_PROPERTY(int maxBufferSize)
Q_PROPERTY(int efficientBufferSize)
@@ -120,6 +121,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);
@@ -158,6 +162,7 @@ Q_SIGNALS:
void readingChanged();
void sensorError(int error);
void availableSensorsChanged();
+ void alwaysOnChanged();
protected:
// called by the back end
diff --git a/src/sensors/qsensor_p.h b/src/sensors/qsensor_p.h
index 6458a828ed..de34cd02df 100644
--- a/src/sensors/qsensor_p.h
+++ b/src/sensors/qsensor_p.h
@@ -74,6 +74,7 @@ public:
, filter_reading(0)
, cache_reading(0)
, error(0)
+ , alwaysOn(false)
{
}
@@ -99,6 +100,8 @@ public:
QSensorReading *cache_reading;
int error;
+
+ bool alwaysOn;
};
class QSensorReadingPrivate