summaryrefslogtreecommitdiffstats
path: root/src/sensors/qsensorbackend.cpp
diff options
context:
space:
mode:
authorJuha Vuolle <juha.vuolle@insta.fi>2021-06-08 16:46:33 +0300
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2021-06-15 09:39:08 +0000
commit7a82ee1645ef0df9c766031edd20ea99d5ea7b6e (patch)
tree6ba9bd20bdc08a7b98a416d9b6495cbfa39516e0 /src/sensors/qsensorbackend.cpp
parent3fc0d1114a17d37a84ffc620394180c19a579deb (diff)
Make sensor possible to indicate it is no longer busy
The current implementation allowed sensor backend to only indicate that it is busy, but not to tell when it was freed again. This commit allows sensor backend to indicate also that it's busy state has cleared. It is up to the sensor implementation to decide if it makes sense / is possible to do that or not. Task-number: QTBUG-92513 Task-number: QTBUG-92505 Change-Id: Ied4857850e81346031fd83aa347d9955081118e8 Reviewed-by: Alex Blasche <alexander.blasche@qt.io> (cherry picked from commit f8445fdcbf75e455443304bc290c48c37961e9f1) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
Diffstat (limited to 'src/sensors/qsensorbackend.cpp')
-rw-r--r--src/sensors/qsensorbackend.cpp18
1 files changed, 12 insertions, 6 deletions
diff --git a/src/sensors/qsensorbackend.cpp b/src/sensors/qsensorbackend.cpp
index 31e2e811..1e75644b 100644
--- a/src/sensors/qsensorbackend.cpp
+++ b/src/sensors/qsensorbackend.cpp
@@ -318,21 +318,27 @@ void QSensorBackend::sensorStopped()
}
/*!
- Inform the front end that the sensor is busy.
- This implicitly calls sensorStopped() and
- is typically called from start().
+ Inform the front end of the sensor's busy state according
+ to the provided \a busy parameter.
+
+ If the sensor is set \e busy this implicitly calls sensorStopped().
+ Busy indication is typically done in start().
Note that the front end must call QSensor::isBusy() to see if
the sensor is busy. If the sensor has stopped due to an error
the sensorError() function should be called to notify the class
of the error condition.
*/
-void QSensorBackend::sensorBusy()
+void QSensorBackend::sensorBusy(bool busy)
{
Q_D(QSensorBackend);
QSensorPrivate *sensorPrivate = d->m_sensor->d_func();
- sensorPrivate->active = false;
- sensorPrivate->busy = true;
+ if (sensorPrivate->busy == busy)
+ return;
+ if (busy)
+ sensorPrivate->active = false;
+ sensorPrivate->busy = busy;
+ emit d->m_sensor->busyChanged();
}
/*!