state.h 590 B

12345678910111213141516171819202122232425262728293031323334353637
  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. bool getScrolled();
  21. void setScrolled();
  22. TrackballMode moveTrackball();
  23. private:
  24. bool middleClick;
  25. bool scrolled;
  26. Timeout<uint16_t, MIDDLE_CLICK_TIMEOUT_MS> middleClickTimeout;
  27. };
  28. #endif