diff options
Diffstat (limited to 'macros.h')
-rw-r--r-- | macros.h | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/macros.h b/macros.h new file mode 100644 index 0000000..5c97d64 --- /dev/null +++ b/macros.h @@ -0,0 +1,44 @@ +#pragma once + +#include "kaleidoscope/plugin/Macros.h" + +enum { MACRO_VERSION_INFO, + MACRO_ANY + }; + +#ifndef BUILD_INFORMATION +#define BUILD_INFORMATION "locally built" +#endif + +static void versionInfoMacro(uint8_t keyState) { + if (keyToggledOn(keyState)) { + Macros.type(PSTR("Keyboardio Model 01 - Kaleidoscope ")); + Macros.type(PSTR(BUILD_INFORMATION)); + } +} + +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; + } + + if (keyIsPressed(keyState)) + kaleidoscope::hid::pressKey(lastKey, toggledOn); +} + +const macro_t *macroAction(uint8_t macroIndex, uint8_t keyState) { + switch (macroIndex) { + + case MACRO_VERSION_INFO: + versionInfoMacro(keyState); + break; + + case MACRO_ANY: + anyKeyMacro(keyState); + break; + } + return MACRO_NONE; +} |