summaryrefslogtreecommitdiffstats
path: root/src/plugins/sensorgestures/qtsensors/qshake2recognizer.h
diff options
context:
space:
mode:
authorLorn Potter <lorn.potter@nokia.com>2012-02-01 10:28:51 +1000
committerQt by Nokia <qt-info@nokia.com>2012-02-01 06:24:50 +0100
commit89fbd66b01bab3eca2ed9591f158f28d6e43e9e2 (patch)
treee41f9c52421a9e011851720f628638870b9d1de0 /src/plugins/sensorgestures/qtsensors/qshake2recognizer.h
parentb643afb7845d4fc15eb469d0d9a1ec18b0dbb254 (diff)
try harder to make sure gesture dont fire too easily
some gestures will fire when trying other gestures. Make sure they don't collide and provide false positives as much. Change-Id: I4abd7d9ee876b77a211ae1b46bcc56f4fdc64ec0 Sanity-Review: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Lorn Potter <lorn.potter@nokia.com>
Diffstat (limited to 'src/plugins/sensorgestures/qtsensors/qshake2recognizer.h')
-rw-r--r--src/plugins/sensorgestures/qtsensors/qshake2recognizer.h33
1 files changed, 18 insertions, 15 deletions
diff --git a/src/plugins/sensorgestures/qtsensors/qshake2recognizer.h b/src/plugins/sensorgestures/qtsensors/qshake2recognizer.h
index 18423248..ff3de8cf 100644
--- a/src/plugins/sensorgestures/qtsensors/qshake2recognizer.h
+++ b/src/plugins/sensorgestures/qtsensors/qshake2recognizer.h
@@ -53,6 +53,12 @@
#include <qsensorgesturerecognizer.h>
QT_BEGIN_NAMESPACE
+struct ShakeData {
+ qreal x;
+ qreal y;
+ qreal z;
+};
+
class QShake2SensorGestureRecognizer : public QSensorGestureRecognizer
{
Q_OBJECT
@@ -77,8 +83,9 @@ public:
bool stop();
bool isActive();
- int thresholdTime() const;
- void setThresholdTime(int msec);
+ QTimer *timer;
+ int timerTimeout;
+
Q_SIGNALS:
void shakeLeft();
@@ -90,27 +97,23 @@ private slots:
void accelChanged();
void timeout();
+
private:
QAccelerometer *accel;
- qreal pXaxis;
- qreal nXaxis;
-
- qreal pYaxis;
- qreal nYaxis;
-
- qreal pZaxis;
- qreal nZaxis;
-
- bool detectingState;
- QTimer *timer;
- int timerTimeout;
bool active;
- int accelRange;
ShakeDirection shakeDirection;
+ ShakeData prevData;
+ ShakeData currentData;
+
+ bool checkForShake(ShakeData prevSensorData, ShakeData currentSensorData, qreal threshold);
+ bool shaking;
+ int shakeCount;
+ int threshold;
+ bool isNegative(qreal num);
};
QT_END_NAMESPACE
#endif // QSHAKERECOGNIZER_H