aboutsummaryrefslogtreecommitdiff
path: root/macros.h
diff options
context:
space:
mode:
Diffstat (limited to 'macros.h')
-rw-r--r--macros.h44
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;
+}