]> git.friedersdorff.com Git - max/tmk_keyboard.git/blobdiff - tmk_core/common/action_macro.c
xt_usb: Fix XT soft reset
[max/tmk_keyboard.git] / tmk_core / common / action_macro.c
index ffaf125c06ce8850c8e66135a71ef07c986513ba..b2891bf4bc9cc34a72dc42f5cf6b2bcd5699e0d4 100644 (file)
@@ -34,6 +34,8 @@ void action_macro_play(const macro_t *macro_p)
     macro_t macro = END;
     uint8_t interval = 0;
 
+    uint8_t mod_storage = 0;
+
     if (!macro_p) return;
     while (true) {
         switch (MACRO_READ()) {
@@ -66,6 +68,17 @@ void action_macro_play(const macro_t *macro_p)
                 interval = MACRO_READ();
                 dprintf("INTERVAL(%u)\n", interval);
                 break;
+            case MOD_STORE:
+                mod_storage = get_mods();
+                break;
+            case MOD_RESTORE:
+                set_mods(mod_storage);
+                send_keyboard_report();
+                break;
+            case MOD_CLEAR:
+                clear_mods();
+                send_keyboard_report();
+                break;
             case 0x04 ... 0x73:
                 dprintf("DOWN(%02X)\n", macro);
                 register_code(macro);