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 | |
parent | 26bbfd78125224abdbd2e4ccf3aa3df1b5fc4968 (diff) |
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;
}
-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 64093f293e..939816a597 100644 --- a/quantum/dynamic_macro.h +++ b/quantum/dynamic_macro.h @@ -40,6 +40,7 @@ enum dynamic_macro_keycodes { DYN_REC_START1 = DYNAMIC_MACRO_RANGE, DYN_REC_START2, + DYN_REC_STOP, DYN_MACRO_PLAY1, DYN_MACRO_PLAY2, }; @@ -209,9 +210,8 @@ bool process_record_dynamic_macro(uint16_t keycode, keyrecord_t *record) } else { /* A macro is being recorded right now. */ switch (keycode) { - case MO(_DYN): - /* Use the layer key used to access the macro recording as - * a stop button. */ + case DYN_REC_STOP: + /* Stop the macro recording. */ if (record->event.pressed) { /* Ignore the initial release * just after the recoding * starts. */ |