diff options
Diffstat (limited to 'macros.h')
-rw-r--r-- | macros.h | 27 |
1 files changed, 11 insertions, 16 deletions
@@ -20,41 +20,36 @@ static void versionInfoMacro(uint8_t keyState) { } } -static void anyKeyMacro(uint8_t keyState) { - static Key lastKey; - bool toggledOn = false; - if (keyToggledOn(keyState)) { - lastKey.keyCode = Key_A.keyCode + (uint8_t)(millis() % 36); - toggledOn = true; +static void anyKeyMacro(KeyEvent &event) { + if (keyToggledOn(event.state)) { + event.key.setKeyCode(Key_A.getKeyCode() + (uint8_t)(millis() % 36)); + event.key.setFlags(0); } - - if (keyIsPressed(keyState)) - kaleidoscope::hid::pressKey(lastKey, toggledOn); } -static const macro_t *fvwmMacro(uint8_t keyState) { - if (keyIsPressed(keyState)) { +static const macro_t *fvwmMacro(KeyEvent &event) { + if (keyToggledOn(event.state)) { return MACRO(D(LeftAlt),Dr(ShiftToLayer(FVWM))); } - else if (keyWasPressed(keyState)) { + else if (keyToggledOff(event.state)) { return MACRO(Ur(ShiftToLayer(FVWM)),U(LeftAlt)); } return MACRO_NONE; } -const macro_t *macroAction(uint8_t macroIndex, uint8_t keyState) { +const macro_t *macroAction(uint8_t macroIndex, KeyEvent &event) { switch (macroIndex) { case MACRO_VERSION_INFO: - versionInfoMacro(keyState); + versionInfoMacro(event.state); break; case MACRO_ANY: - anyKeyMacro(keyState); + anyKeyMacro(event); break; case MACRO_FVWM: - return fvwmMacro(keyState); + return fvwmMacro(event); break; } return MACRO_NONE; |