Use standard timeout checker for MouseKeys

Also, change timestamps from four bytes to two.

Signed-off-by: Michael Richters <gedankenexperimenter@gmail.com>
pull/642/head
Michael Richters 5 years ago
parent 31c80b5811
commit 196ac09629

@ -33,9 +33,9 @@ uint16_t MouseKeys_::accelDelay = 64;
uint8_t MouseKeys_::wheelSpeed = 1; uint8_t MouseKeys_::wheelSpeed = 1;
uint16_t MouseKeys_::wheelDelay = 50; uint16_t MouseKeys_::wheelDelay = 50;
uint32_t MouseKeys_::accelEndTime; uint16_t MouseKeys_::move_start_time_;
uint32_t MouseKeys_::endTime; uint16_t MouseKeys_::accel_start_time_;
uint32_t MouseKeys_::wheelEndTime; uint16_t MouseKeys_::wheel_start_time_;
void MouseKeys_::setWarpGridSize(uint8_t grid_size) { void MouseKeys_::setWarpGridSize(uint8_t grid_size) {
MouseWrapper.warp_grid_size = grid_size; MouseWrapper.warp_grid_size = grid_size;
@ -46,10 +46,10 @@ void MouseKeys_::setSpeedLimit(uint8_t speed_limit) {
} }
void MouseKeys_::scrollWheel(uint8_t keyCode) { void MouseKeys_::scrollWheel(uint8_t keyCode) {
if (millis() < wheelEndTime) if (!Kaleidoscope.hasTimeExpired(wheel_start_time_, wheelDelay))
return; return;
wheelEndTime = millis() + wheelDelay; wheel_start_time_ = Kaleidoscope.millisAtCycleStart();
if (keyCode & KEY_MOUSE_UP) if (keyCode & KEY_MOUSE_UP)
kaleidoscope::hid::moveMouse(0, 0, wheelSpeed); kaleidoscope::hid::moveMouse(0, 0, wheelSpeed);
@ -72,23 +72,21 @@ EventHandlerResult MouseKeys_::afterEachCycle() {
EventHandlerResult MouseKeys_::beforeReportingState() { EventHandlerResult MouseKeys_::beforeReportingState() {
if (mouseMoveIntent == 0) { if (mouseMoveIntent == 0) {
MouseWrapper.accelStep = 0; MouseWrapper.accelStep = 0;
endTime = 0;
accelEndTime = 0;
return EventHandlerResult::OK; return EventHandlerResult::OK;
} }
if (millis() < endTime) if (!Kaleidoscope.hasTimeExpired(move_start_time_, speedDelay))
return EventHandlerResult::OK; return EventHandlerResult::OK;
endTime = millis() + speedDelay; move_start_time_ = Kaleidoscope.millisAtCycleStart();
int8_t moveX = 0, moveY = 0; int8_t moveX = 0, moveY = 0;
if (millis() >= accelEndTime) { if (Kaleidoscope.hasTimeExpired(accel_start_time_, accelDelay)) {
if (MouseWrapper.accelStep < 255 - accelSpeed) { if (MouseWrapper.accelStep < 255 - accelSpeed) {
MouseWrapper.accelStep += accelSpeed; MouseWrapper.accelStep += accelSpeed;
} }
accelEndTime = millis() + accelDelay; accel_start_time_ = Kaleidoscope.millisAtCycleStart();
} }
if (mouseMoveIntent & KEY_MOUSE_UP) if (mouseMoveIntent & KEY_MOUSE_UP)
@ -126,9 +124,9 @@ EventHandlerResult MouseKeys_::onKeyswitchEvent(Key &mappedKey, byte row, byte c
} }
} else if (!(mappedKey.keyCode & KEY_MOUSE_WARP)) { } else if (!(mappedKey.keyCode & KEY_MOUSE_WARP)) {
if (keyToggledOn(keyState)) { if (keyToggledOn(keyState)) {
endTime = millis() + speedDelay; move_start_time_ = Kaleidoscope.millisAtCycleStart();
accelEndTime = millis() + accelDelay; accel_start_time_ = Kaleidoscope.millisAtCycleStart();
wheelEndTime = 0; wheel_start_time_ = Kaleidoscope.millisAtCycleStart() - wheelDelay;
} }
if (keyIsPressed(keyState)) { if (keyIsPressed(keyState)) {
if (mappedKey.keyCode & KEY_MOUSE_WHEEL) { if (mappedKey.keyCode & KEY_MOUSE_WHEEL) {

@ -44,9 +44,9 @@ class MouseKeys_ : public kaleidoscope::Plugin {
private: private:
static uint8_t mouseMoveIntent; static uint8_t mouseMoveIntent;
static uint32_t endTime; static uint16_t move_start_time_;
static uint32_t accelEndTime; static uint16_t accel_start_time_;
static uint32_t wheelEndTime; static uint16_t wheel_start_time_;
static void scrollWheel(uint8_t keyCode); static void scrollWheel(uint8_t keyCode);
}; };

Loading…
Cancel
Save