From 8219b470bef74a32b90f1b0289d096285f626d65 Mon Sep 17 00:00:00 2001 From: Lorn Potter Date: Fri, 18 May 2012 13:57:27 +1000 Subject: make hover work off difference to initial reflectance instead of using hard coded values which may be different depending on devicecalibration. Change-Id: I1e0a41a7dd45b115daa9f4f873621ffbba673e21 Reviewed-by: Lincoln Ramsay --- .../qtsensors/qhoversensorgesturerecognizer.cpp | 13 +++++++++---- .../qtsensors/qhoversensorgesturerecognizer.h | 2 ++ 2 files changed, 11 insertions(+), 4 deletions(-) (limited to 'src/plugins/sensorgestures') diff --git a/src/plugins/sensorgestures/qtsensors/qhoversensorgesturerecognizer.cpp b/src/plugins/sensorgestures/qtsensors/qhoversensorgesturerecognizer.cpp index 1ce7f1d4..1534a669 100644 --- a/src/plugins/sensorgestures/qtsensors/qhoversensorgesturerecognizer.cpp +++ b/src/plugins/sensorgestures/qtsensors/qhoversensorgesturerecognizer.cpp @@ -47,7 +47,7 @@ QT_BEGIN_NAMESPACE QHoverSensorGestureRecognizer::QHoverSensorGestureRecognizer(QObject *parent) : QSensorGestureRecognizer(parent), - hoverOk(0), lastLightReading(0), detecting(0), active(0) + hoverOk(0), lastLightReading(0), detecting(0), active(0), initialReflectance(0) { } @@ -94,6 +94,7 @@ bool QHoverSensorGestureRecognizer::stop() active = false; timer->stop(); timer2->stop(); + initialReflectance = 0; return active; } @@ -105,15 +106,19 @@ bool QHoverSensorGestureRecognizer::isActive() void QHoverSensorGestureRecognizer::irProximityReadingChanged(QIRProximityReading *reading) { reflectance = reading->reflectance(); - if (!detecting && (reflectance > .25 && reflectance < .50)) { + + if (initialReflectance == 0) + initialReflectance = reflectance; + + if (!detecting && reflectance - initialReflectance > 0.1) { detecting = true; timer->start(); timer2->start(); detectedHigh = reflectance; } else if (hoverOk && detecting - && reflectance < .33 - ) { + && reflectance - initialReflectance < 0 + && initialReflectance / reflectance > 0.98) { // went light again after 1 seconds Q_EMIT hover(); Q_EMIT detected("hover"); diff --git a/src/plugins/sensorgestures/qtsensors/qhoversensorgesturerecognizer.h b/src/plugins/sensorgestures/qtsensors/qhoversensorgesturerecognizer.h index 5d19007c..1e8cd051 100644 --- a/src/plugins/sensorgestures/qtsensors/qhoversensorgesturerecognizer.h +++ b/src/plugins/sensorgestures/qtsensors/qhoversensorgesturerecognizer.h @@ -84,6 +84,8 @@ private: qreal detectedHigh; qreal lastProx; bool active; + qreal initialReflectance; + }; QT_END_NAMESPACE -- cgit v1.2.3