@@ -5,13 +5,51 @@
#include <array>
#include <USBComposite.h>
-#include "debouncer.h"
-
enum class TrackballMode : uint8_t {
Wheel,
Mouse,
};
+template <typename T, T millis>
+class Timeout
+{
+public:
+ Timeout()
+ {
+ timeout = 0;
+ }
+
+ void updateTime(uint8_t delta)
+ if (timeout > delta)
+ timeout -= delta;
+ else
+ void expire()
+ bool get() const
+ return timeout == 0;
+ void reset()
+ timeout = millis;
+private:
+ T timeout;
+};
class State
{
public:
@@ -11,7 +11,7 @@ State::State()
}
-void State::tick(millis_t delta)
+void State::tick(uint8_t delta)
middleClickTimeout.updateTime(delta);