summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKevin Ottens <kevin.ottens.qnx@kdab.com>2012-05-07 13:03:24 +0200
committerLorn Potter <lorn.potter@gmail.com>2012-11-28 18:20:26 +0100
commitdf9d1ef798bcb9356fbc898a13f190a9fa63da25 (patch)
tree4a7fc42455768025726b9112a15712cf1545a7e7
parent5c20826ca7158643482d688d0cfd313a55601072 (diff)
Add the alwaysOn property to QSensor
(This is a backport from qtsensors commits f9672df5ea9872f911eb0011012f829309e11e71 and 4187d0baa96c4731abfcddfe2c24cf4ef4e72ac5) Change-Id: I9b4adb6a97599dff7f8b0506e5800ed01abdd3b2 Reviewed-by: Lorn Potter <lorn.potter@gmail.com>
-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