remove state.h dependency on debouncer.h

This commit is contained in:
Daniel Zanco 2022-09-15 22:15:09 -03:00
parent d4613afad7
commit 7c93eac0bb
2 changed files with 41 additions and 3 deletions

View File

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

View File

@ -11,7 +11,7 @@ State::State()
{ {
} }
void State::tick(millis_t delta) void State::tick(uint8_t delta)
{ {
middleClickTimeout.updateTime(delta); middleClickTimeout.updateTime(delta);
} }