diff options
author | Luke Silva <lukemasilva@gmail.com> | 2017-01-27 10:28:42 +1100 |
---|---|---|
committer | Luke Silva <lukemasilva@gmail.com> | 2017-01-27 10:28:42 +1100 |
commit | cfc4149712217625fcb75e50348094fd9df432f5 (patch) | |
tree | d1041e50f5c4e5dc643f6fb867ce327486b94a7c | |
parent | 87bc36253dd915c51571e1972b771f49db9673d3 (diff) | |
download | qmk_firmware-cfc4149712217625fcb75e50348094fd9df432f5.tar.gz qmk_firmware-cfc4149712217625fcb75e50348094fd9df432f5.zip |
Add ability to use tap macros without using functions
-rw-r--r-- | quantum/keymap_common.c | 5 | ||||
-rw-r--r-- | quantum/quantum_keycodes.h | 1 |
2 files changed, 5 insertions, 1 deletions
diff --git a/quantum/keymap_common.c b/quantum/keymap_common.c index eced3d2bb..5190f24e8 100644 --- a/quantum/keymap_common.c +++ b/quantum/keymap_common.c | |||
@@ -80,7 +80,10 @@ action_t action_for_key(uint8_t layer, keypos_t key) | |||
80 | action.code = keymap_function_id_to_action( (int)keycode & 0xFFF ); | 80 | action.code = keymap_function_id_to_action( (int)keycode & 0xFFF ); |
81 | break; | 81 | break; |
82 | case QK_MACRO ... QK_MACRO_MAX: | 82 | case QK_MACRO ... QK_MACRO_MAX: |
83 | action.code = ACTION_MACRO(keycode & 0xFF); | 83 | if (keycode & 0x800) // tap macros have upper bit set |
84 | action.code = ACTION_MACRO_TAP(keycode & 0xFF); | ||
85 | else | ||
86 | action.code = ACTION_MACRO(keycode & 0xFF); | ||
84 | break; | 87 | break; |
85 | case QK_LAYER_TAP ... QK_LAYER_TAP_MAX: | 88 | case QK_LAYER_TAP ... QK_LAYER_TAP_MAX: |
86 | action.code = ACTION_LAYER_TAP_KEY((keycode >> 0x8) & 0xF, keycode & 0xFF); | 89 | action.code = ACTION_LAYER_TAP_KEY((keycode >> 0x8) & 0xF, keycode & 0xFF); |
diff --git a/quantum/quantum_keycodes.h b/quantum/quantum_keycodes.h index 4853655f9..4566395fd 100644 --- a/quantum/quantum_keycodes.h +++ b/quantum/quantum_keycodes.h | |||
@@ -246,6 +246,7 @@ enum quantum_keycodes { | |||
246 | 246 | ||
247 | #define M(kc) (kc | QK_MACRO) | 247 | #define M(kc) (kc | QK_MACRO) |
248 | 248 | ||
249 | #define MACROTAP(kc) (kc | QK_MACRO | FUNC_TAP<<8) | ||
249 | #define MACRODOWN(...) (record->event.pressed ? MACRO(__VA_ARGS__) : MACRO_NONE) | 250 | #define MACRODOWN(...) (record->event.pressed ? MACRO(__VA_ARGS__) : MACRO_NONE) |
250 | 251 | ||
251 | // L-ayer, T-ap - 256 keycode max, 16 layer max | 252 | // L-ayer, T-ap - 256 keycode max, 16 layer max |