qshake.h 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. #ifndef QSHAKE_H
  2. #define QSHAKE_H
  3. #include <QAccelerometer>
  4. #include <QAccelerometerFilter>
  5. #include <QAccelerometerReading>
  6. QTM_USE_NAMESPACE
  7. class QShake : public QObject, public QAccelerometerFilter
  8. {
  9. Q_OBJECT
  10. Q_CLASSINFO("Author", "Sebastiano Galazzo")
  11. Q_CLASSINFO("Email", "sebastiano.galazzo@gmail.com")
  12. Q_PROPERTY(float sensitivity READ sensitivity WRITE setSensitivity)
  13. Q_PROPERTY(QShake::Direction direction READ direction WRITE setDirection)
  14. Q_ENUMS(Level)
  15. Q_ENUMS(Direction)
  16. public:
  17. QShake(QObject * parent = 0 );
  18. enum Level {
  19. Low=20,
  20. Medium=30,
  21. High=40,
  22. Step=10
  23. };
  24. enum Direction {
  25. All=0,
  26. LeftRight=1,
  27. UpDown=2,
  28. PushPull=3
  29. };
  30. float sensitivity() const;
  31. void setSensitivity(float value);
  32. QShake::Direction direction() const;
  33. void setDirection(QShake::Direction value);
  34. public slots:
  35. void start();
  36. void stop();
  37. signals:
  38. void shake(bool shaked);
  39. protected:
  40. bool filter(QAccelerometerReading *reading);
  41. private:
  42. float module;
  43. float m_sensitivity;
  44. Direction m_direction;
  45. QAccelerometer sensor;
  46. };
  47. #endif // QSHAKE_H