diff options
author | Lorn Potter <lorn.potter@nokia.com> | 2012-02-07 08:58:29 +1000 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-02-08 06:59:15 +0100 |
commit | 68045db7c9025f5d0fa82e33a71df4fe48754fe6 (patch) | |
tree | 50536371738c43d28ed7b885b59ebfcfb54dde49 /src/plugins/sensorgestures/qtsensors/qcoversensorgesturerecognizer.cpp | |
parent | 820e423d6bfe5368b081c6956c767ea8027df0d6 (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.cpp | 41 |
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 |