diff options
Diffstat (limited to 'src/plugins')
-rw-r--r-- | src/plugins/sensors/sensorfw/sensorfwsensorbase.cpp | 12 | ||||
-rw-r--r-- | src/plugins/sensors/sensorfw/sensorfwsensorbase.h | 1 |
2 files changed, 10 insertions, 3 deletions
diff --git a/src/plugins/sensors/sensorfw/sensorfwsensorbase.cpp b/src/plugins/sensors/sensorfw/sensorfwsensorbase.cpp index 1702777..27a07ad 100644 --- a/src/plugins/sensors/sensorfw/sensorfwsensorbase.cpp +++ b/src/plugins/sensors/sensorfw/sensorfwsensorbase.cpp @@ -59,7 +59,8 @@ SensorfwSensorBase::SensorfwSensorBase(QSensor *sensor) m_efficientBufferSize(1), m_maxBufferSize(1), m_available(false), - running(false) + running(false), + m_attemptRestart(false) { watcher = new QDBusServiceWatcher("com.nokia.SensorService",QDBusConnection::systemBus(), @@ -131,8 +132,12 @@ void SensorfwSensorBase::start() if (returnCode == 0) { running = true; return; + } else if (returnCode == QDBusError::ServiceUnknown) { + m_attemptRestart = true; + qWarning() << "m_sensorInterface did not start, DBus service unknown. Waiting for service registration and retrying."; + } else { + qWarning() << "m_sensorInterface did not start, error code:" << returnCode; } - qWarning() << "m_sensorInterface did not start, error code:" << returnCode; } sensorStopped(); } @@ -142,6 +147,7 @@ void SensorfwSensorBase::stop() if (m_sensorInterface) m_sensorInterface->stop(); running = false; + m_attemptRestart = false; } void SensorfwSensorBase::setRanges(qreal correctionFactor) @@ -219,7 +225,7 @@ void SensorfwSensorBase::connectToSensord() m_remoteSensorManager = 0; return; } - if (running) { + if (running || m_attemptRestart) { stop(); reinitIsNeeded = true; start(); diff --git a/src/plugins/sensors/sensorfw/sensorfwsensorbase.h b/src/plugins/sensors/sensorfw/sensorfwsensorbase.h index df8ca84..3e5e053 100644 --- a/src/plugins/sensors/sensorfw/sensorfwsensorbase.h +++ b/src/plugins/sensors/sensorfw/sensorfwsensorbase.h @@ -113,6 +113,7 @@ private: QDBusServiceWatcher *watcher; bool m_available; bool running; + bool m_attemptRestart; private slots: void connectToSensord(); void sensordUnregistered(); |