aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Weiyi Lou <cinaeco@gmail.com>2017-04-29 22:02:01 +1000
committerGravatar Weiyi Lou <cinaeco@gmail.com>2017-04-30 19:21:44 +1000
commit4ff40a551a310e9b29a5838f87a9db58c0e5767e (patch)
tree25e11e3847b8c2df884fbaba68fdcd7ce1ea48b0
parent26bbfd78125224abdbd2e4ccf3aa3df1b5fc4968 (diff)
downloadqmk_firmware-4ff40a551a310e9b29a5838f87a9db58c0e5767e.tar.gz
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.h6
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 @@
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. */