From 89fbd66b01bab3eca2ed9591f158f28d6e43e9e2 Mon Sep 17 00:00:00 2001 From: Lorn Potter Date: Wed, 1 Feb 2012 10:28:51 +1000 Subject: 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 Reviewed-by: Lorn Potter --- .../sensorgestures/qtsensors/qshake2recognizer.h | 33 ++++++++++++---------- 1 file changed, 18 insertions(+), 15 deletions(-) (limited to 'src/plugins/sensorgestures/qtsensors/qshake2recognizer.h') 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 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 -- cgit v1.2.3