summaryrefslogtreecommitdiffstats
path: root/src/plugins/sensorgestures/qtsensors/qcoversensorgesturerecognizer.cpp
diff options
context:
space:
mode:
authorLorn Potter <lorn.potter@nokia.com>2012-02-07 08:58:29 +1000
committerQt by Nokia <qt-info@nokia.com>2012-02-08 06:59:15 +0100
commit68045db7c9025f5d0fa82e33a71df4fe48754fe6 (patch)
tree50536371738c43d28ed7b885b59ebfcfb54dde49 /src/plugins/sensorgestures/qtsensors/qcoversensorgesturerecognizer.cpp
parent820e423d6bfe5368b081c6956c767ea8027df0d6 (diff)
fix hover and cover since prox driver output changed.
Change-Id: Ic620a9012472c81f7f1bb15e450638745809effa Reviewed-by: Lorn Potter <lorn.potter@nokia.com>
Diffstat (limited to 'src/plugins/sensorgestures/qtsensors/qcoversensorgesturerecognizer.cpp')
-rw-r--r--src/plugins/sensorgestures/qtsensors/qcoversensorgesturerecognizer.cpp41
1 files changed, 30 insertions, 11 deletions
diff --git a/src/plugins/sensorgestures/qtsensors/qcoversensorgesturerecognizer.cpp b/src/plugins/sensorgestures/qtsensors/qcoversensorgesturerecognizer.cpp
index 82a849ed..0f488ccb 100644
--- a/src/plugins/sensorgestures/qtsensors/qcoversensorgesturerecognizer.cpp
+++ b/src/plugins/sensorgestures/qtsensors/qcoversensorgesturerecognizer.cpp
@@ -41,11 +41,13 @@
#include "qcoversensorgesturerecognizer.h"
+#include <math.h>
+
QT_BEGIN_NAMESPACE
QCoverSensorGestureRecognizer::QCoverSensorGestureRecognizer(QObject *parent) :
QSensorGestureRecognizer(parent),
- lastProx(0)
+ detecting(0), lastProx(0)
{
}
@@ -55,7 +57,7 @@ QCoverSensorGestureRecognizer::~QCoverSensorGestureRecognizer()
void QCoverSensorGestureRecognizer::create()
{
- proximity = new QProximitySensor(this);
+ proximity = new QIRProximitySensor(this);
proximity->connectToBackend();
orientation = new QOrientationSensor(this);
@@ -77,6 +79,7 @@ bool QCoverSensorGestureRecognizer::start()
connect(proximity,SIGNAL(readingChanged()),this,SLOT(proximityChanged()));
proximity->start();
orientation->start();
+ lastProx = proximity->reading()->reflectance();
return proximity->isActive();
}
@@ -95,22 +98,38 @@ bool QCoverSensorGestureRecognizer::isActive()
void QCoverSensorGestureRecognizer::proximityChanged()
{// look at case of face up->face down->face up.
- if ((orientation->reading()->orientation() == QOrientationReading::FaceUp)
- && proximity->reading()->close())
- timer->start();
- else if (proximity->reading()->close())
- timer->stop();
+
+ qreal refl = proximity->reading()->reflectance();
+ qreal difference = lastProx - refl;
+
+ if (fabs(difference) < .15) {
+ return;
+ }
+
+ if (orientation->reading()->orientation() == QOrientationReading::FaceUp
+ && refl > .55) {
+ if (!timer->isActive()) {
+ timer->start();
+ detecting = true;
+ }
+ }
+ if (refl < .55) {
+ if (timer->isActive()) {
+ timer->stop();
+ detecting = false;
+ }
+ }
+ lastProx = refl;
}
void QCoverSensorGestureRecognizer::timeout()
{
-
- if ((orientation->reading()->orientation() == QOrientationReading::FaceUp)
- && proximity->reading()->close()) {
+ if (detecting && orientation->reading()->orientation() == QOrientationReading::FaceUp
+ && proximity->reading()->reflectance() > 0.55) {
Q_EMIT cover();
Q_EMIT detected("cover");
+ detecting = false;
}
- lastProx = proximity->reading()->close();
}
QT_END_NAMESPACE