From daa5343cc830f297d76a86d8133dac2b00294a19 Mon Sep 17 00:00:00 2001 From: Lorn Potter Date: Thu, 3 Apr 2014 10:18:43 +1000 Subject: send first proximity signal even when it's "closed". This fixes a bug where the proximity sensor would send the initial signal only when it was not closed. This will send it regardless. Change-Id: I5f388e671091ae2a7719f700a049cea41bfaa0db Reviewed-by: Alex Blasche --- src/plugins/sensors/sensorfw/sensorfwproximitysensor.cpp | 16 ++++++---------- src/plugins/sensors/sensorfw/sensorfwproximitysensor.h | 1 + 2 files changed, 7 insertions(+), 10 deletions(-) diff --git a/src/plugins/sensors/sensorfw/sensorfwproximitysensor.cpp b/src/plugins/sensors/sensorfw/sensorfwproximitysensor.cpp index d98dfd1..76ce38d 100644 --- a/src/plugins/sensors/sensorfw/sensorfwproximitysensor.cpp +++ b/src/plugins/sensors/sensorfw/sensorfwproximitysensor.cpp @@ -42,12 +42,12 @@ #include "sensorfwproximitysensor.h" char const * const SensorfwProximitySensor::id("sensorfw.proximitysensor"); -//bool SensorfwProximitySensor::m_initDone = false; SensorfwProximitySensor::SensorfwProximitySensor(QSensor *sensor) : SensorfwSensorBase(sensor), - m_exClose(false) - , m_initDone(false) + m_exClose(false), + m_initDone(false), + firstRun(true) { init(); setReading(&m_reading); @@ -57,12 +57,6 @@ SensorfwProximitySensor::SensorfwProximitySensor(QSensor *sensor) void SensorfwProximitySensor::start() { - if (m_sensorInterface) { - Unsigned data(((ProximitySensorChannelInterface*)m_sensorInterface)->proximity()); - m_reading.setClose(data.x()? true: false); - m_reading.setTimestamp(data.UnsignedData().timestamp_); - newReadingAvailable(); - } SensorfwSensorBase::start(); } @@ -70,11 +64,13 @@ void SensorfwProximitySensor::start() void SensorfwProximitySensor::slotDataAvailable(const Unsigned& data) { bool close = data.x()? true: false; - if (close == m_exClose) return; + if (!firstRun && close == m_exClose) return; m_reading.setClose(close); m_reading.setTimestamp(data.UnsignedData().timestamp_); newReadingAvailable(); m_exClose = close; + if (firstRun) + firstRun = false; } bool SensorfwProximitySensor::doConnect() diff --git a/src/plugins/sensors/sensorfw/sensorfwproximitysensor.h b/src/plugins/sensors/sensorfw/sensorfwproximitysensor.h index caaa9b9..a9352fb 100644 --- a/src/plugins/sensors/sensorfw/sensorfwproximitysensor.h +++ b/src/plugins/sensors/sensorfw/sensorfwproximitysensor.h @@ -66,6 +66,7 @@ private: QProximityReading m_reading; bool m_initDone; bool m_exClose; + bool firstRun; private slots: void slotDataAvailable(const Unsigned& data); -- cgit v1.2.1