]> git.friedersdorff.com Git - max/tmk_keyboard.git/commitdiff
core: Add macro commands SM(), RM() and CM()
authortmk <hasu@tmk-kbd.com>
Fri, 15 Jan 2016 07:00:56 +0000 (16:00 +0900)
committertmk <hasu@tmk-kbd.com>
Fri, 15 Jan 2016 07:00:56 +0000 (16:00 +0900)
tmk_core/doc/keymap.md

index d4a129b208150062ff8a7bf7705396ce1d1f32a5..566936c69640f64809f9a22910bba427c634903b 100644 (file)
@@ -368,17 +368,37 @@ Default Layer also has bitwise operations, they are executed when key is release
     MACRO( I(255), T(H), T(E), T(L), T(L), W(255), T(O), END )
 
 #### 2.3.1 Macro Commands
+- **MACRO()**
+- **MACRO_NONE**
+
 - **I()**   change interval of stroke.
 - **D()**   press key
 - **U()**   release key
 - **T()**   type key(press and release)
 - **W()**   wait
+- **SM()**  store modifier state
+- **RM()**  restore modifier state
+- **CM()**  clear modifier state
 - **END**   end mark
 
 #### 2.3.2 Examples
+***TBD***
+
+    const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
+    {
+        switch (id) {
+            case HELLO:
+                return (record->event.pressed ?
+                        MACRO( I(0), T(H), T(E), T(L), T(L), W(255), T(O), END ) :
+                        MACRO_NONE );
+            case ALT_TAB:
+                return (record->event.pressed ?
+                        MACRO( D(LALT), D(TAB), END ) :
+                        MACRO( U(TAB), END ));
+        }
+        return MACRO_NONE;
+    }
 
-***TODO: sample implementation***
-See `keyboard/hhkb/keymap.c` for sample.