diff options
| author | Jack Humbert <jack.humb@gmail.com> | 2017-02-07 13:18:47 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2017-02-07 13:18:47 -0500 |
| commit | 3c7fa0acc10305a573bc3bb29243a7a3d601579b (patch) | |
| tree | 49aa463e861b30c3fa0bd454679e1aefebcb7c9c /quantum | |
| parent | 0c2b6951a6ad80649798c0eca36a9999ebae0b13 (diff) | |
| parent | 77e54e34e129a03e58c128171a7188978ec908b4 (diff) | |
| download | qmk_firmware-3c7fa0acc10305a573bc3bb29243a7a3d601579b.tar.gz qmk_firmware-3c7fa0acc10305a573bc3bb29243a7a3d601579b.zip | |
Merge pull request #1046 from LukeSilva/master
Add Tapping Macros to QMK
Diffstat (limited to 'quantum')
| -rw-r--r-- | quantum/keymap_common.c | 5 | ||||
| -rw-r--r-- | quantum/quantum_keycodes.h | 2 |
2 files changed, 6 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 a786bd322..8a78a58c9 100644 --- a/quantum/quantum_keycodes.h +++ b/quantum/quantum_keycodes.h | |||
| @@ -256,8 +256,10 @@ enum quantum_keycodes { | |||
| 256 | 256 | ||
| 257 | #define M(kc) (kc | QK_MACRO) | 257 | #define M(kc) (kc | QK_MACRO) |
| 258 | 258 | ||
| 259 | #define MACROTAP(kc) (kc | QK_MACRO | FUNC_TAP<<8) | ||
| 259 | #define MACRODOWN(...) (record->event.pressed ? MACRO(__VA_ARGS__) : MACRO_NONE) | 260 | #define MACRODOWN(...) (record->event.pressed ? MACRO(__VA_ARGS__) : MACRO_NONE) |
| 260 | 261 | ||
| 262 | |||
| 261 | // L-ayer, T-ap - 256 keycode max, 16 layer max | 263 | // L-ayer, T-ap - 256 keycode max, 16 layer max |
| 262 | #define LT(layer, kc) (kc | QK_LAYER_TAP | ((layer & 0xF) << 8)) | 264 | #define LT(layer, kc) (kc | QK_LAYER_TAP | ((layer & 0xF) << 8)) |
| 263 | 265 | ||
