state.h 523 B

12345678910111213141516171819202122232425262728293031323334
  1. #ifndef STATE_H
  2. #define STATE_H
  3. #include <bitset>
  4. #include <array>
  5. #include <USBComposite.h>
  6. #include "debouncer.h"
  7. enum class TrackballMode : uint8_t {
  8. Wheel,
  9. Mouse,
  10. };
  11. class State
  12. {
  13. public:
  14. static const uint16_t MIDDLE_CLICK_TIMEOUT_MS = 0;
  15. State();
  16. void tick(uint8_t delta);
  17. bool fn;
  18. void pressMiddleClick();
  19. bool releaseMiddleClick();
  20. TrackballMode moveTrackball();
  21. private:
  22. bool middleClick;
  23. Timeout<uint16_t, MIDDLE_CLICK_TIMEOUT_MS> middleClickTimeout;
  24. };
  25. #endif