diff options
author | Lorn Potter <lorn.potter@nokia.com> | 2012-02-01 10:28:51 +1000 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-02-01 06:24:50 +0100 |
commit | 89fbd66b01bab3eca2ed9591f158f28d6e43e9e2 (patch) | |
tree | e41f9c52421a9e011851720f628638870b9d1de0 /src/plugins/sensorgestures/qtsensors/qshake2recognizer.h | |
parent | b643afb7845d4fc15eb469d0d9a1ec18b0dbb254 (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.h | 33 |
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 |