diff options
author | Weiyi Lou <cinaeco@gmail.com> | 2017-04-29 22:02:01 +1000 |
---|---|---|
committer | Weiyi Lou <cinaeco@gmail.com> | 2017-04-30 19:21:44 +1000 |
commit | 4ff40a551a310e9b29a5838f87a9db58c0e5767e (patch) | |
tree | 25e11e3847b8c2df884fbaba68fdcd7ce1ea48b0 /quantum/dynamic_macro.h | |
parent | 26bbfd78125224abdbd2e4ccf3aa3df1b5fc4968 (diff) | |
download | qmk_firmware-4ff40a551a310e9b29a5838f87a9db58c0e5767e.tar.gz qmk_firmware-4ff40a551a310e9b29a5838f87a9db58c0e5767e.zip |
Add `DYN_REC_STOP` to dynamic macros
Dynamic macro functionality is modified to check for `DYN_REC_STOP`, so
that macro recording can be stopped with a designated key combination
(e.g. `qs` or anything) instead of mandating the use of a `_DYN` layer.
`_DYN` layer stopping can still be done by passing `DYN_REC_STOP` within
`process_record_user()`:
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
uint16_t macro_kc = (keycode == MO(_DYN) ? DYN_REC_STOP : keycode);
if (!process_record_dynamic_macro(macro_kc, record)) {
return false;
}
return true;
}
Diffstat (limited to 'quantum/dynamic_macro.h')
-rw-r--r-- | quantum/dynamic_macro.h | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/quantum/dynamic_macro.h b/quantum/dynamic_macro.h index 64093f293..939816a59 100644 --- a/quantum/dynamic_macro.h +++ b/quantum/dynamic_macro.h | |||
@@ -40,6 +40,7 @@ | |||
40 | enum dynamic_macro_keycodes { | 40 | enum dynamic_macro_keycodes { |
41 | DYN_REC_START1 = DYNAMIC_MACRO_RANGE, | 41 | DYN_REC_START1 = DYNAMIC_MACRO_RANGE, |
42 | DYN_REC_START2, | 42 | DYN_REC_START2, |
43 | DYN_REC_STOP, | ||
43 | DYN_MACRO_PLAY1, | 44 | DYN_MACRO_PLAY1, |
44 | DYN_MACRO_PLAY2, | 45 | DYN_MACRO_PLAY2, |
45 | }; | 46 | }; |
@@ -209,9 +210,8 @@ bool process_record_dynamic_macro(uint16_t keycode, keyrecord_t *record) | |||
209 | } else { | 210 | } else { |
210 | /* A macro is being recorded right now. */ | 211 | /* A macro is being recorded right now. */ |
211 | switch (keycode) { | 212 | switch (keycode) { |
212 | case MO(_DYN): | 213 | case DYN_REC_STOP: |
213 | /* Use the layer key used to access the macro recording as | 214 | /* Stop the macro recording. */ |
214 | * a stop button. */ | ||
215 | if (record->event.pressed) { /* Ignore the initial release | 215 | if (record->event.pressed) { /* Ignore the initial release |
216 | * just after the recoding | 216 | * just after the recoding |
217 | * starts. */ | 217 | * starts. */ |