add keyboard source code

This commit is contained in:
cuu
2023-06-14 13:46:28 +12:00
parent 5b69e9c831
commit 17269a8c72
24 changed files with 1850 additions and 0 deletions

View File

@@ -0,0 +1,47 @@
#include <cassert>
#include <algorithm>
#include <limits>
#include "state.h"
State::State()
: fn(false),
middleClick(false),
scrolled(false)
{
}
void State::tick(millis_t delta)
{
middleClickTimeout.updateTime(delta);
}
void State::setScrolled() {
if(middleClick==true){
scrolled = true;
}
}
bool State::getScrolled() {
return scrolled;
}
void State::pressMiddleClick() {
middleClick = true;
middleClickTimeout.reset();
}
bool State::releaseMiddleClick() {
middleClick = false;
scrolled = false;
const auto timeout = middleClickTimeout.get();
return !timeout;
}
TrackballMode State::moveTrackball() {
middleClickTimeout.expire();
if (middleClick) {
return TrackballMode::Wheel;
} else {
return TrackballMode::Mouse;
}
}