summaryrefslogtreecommitdiffstats
path: root/src/plugins/sensorgestures
diff options
context:
space:
mode:
authorLorn Potter <lorn.potter@nokia.com>2012-05-18 13:57:27 +1000
committerQt by Nokia <qt-info@nokia.com>2012-05-18 07:22:22 +0200
commit8219b470bef74a32b90f1b0289d096285f626d65 (patch)
tree3fb6f1362239292b9d3d37694158975149df27d5 /src/plugins/sensorgestures
parenta697ee84cd4c854046b5876a44d6215c468cce18 (diff)
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 <lincoln.ramsay@nokia.com>
Diffstat (limited to 'src/plugins/sensorgestures')
-rw-r--r--src/plugins/sensorgestures/qtsensors/qhoversensorgesturerecognizer.cpp13
-rw-r--r--src/plugins/sensorgestures/qtsensors/qhoversensorgesturerecognizer.h2
2 files changed, 11 insertions, 4 deletions
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