aboutsummaryrefslogtreecommitdiffstats
path: root/quantum/dynamic_macro.h
AgeCommit message (Collapse)Author
2017-09-30Fix dynamic macros on ChibiOS keyboardsGravatar Fred Sundvik
2017-06-01Prevent the recording of looping dynamic macros.Gravatar Daniel Shields
If a macro play key is inadvertently recorded in a dynamic macro a loop is created and the macro will not terminate when played. This should be prevented.
2017-05-05dynamic_macro.h: Do not use backlight_toggle if backlight is disabledGravatar Wojciech Siewierski
Fixes #1199.
2017-05-04dynamic_macro.h: Add debug logsGravatar Wojciech Siewierski
2017-05-04dynamic_macro.h: Make the documentation more clearGravatar Wojciech Siewierski
2017-05-04dynamic_macro.h: Do not save the keys being held when stopping the recordingGravatar Wojciech Siewierski
More specifically, we save them and then place the `macro_end` pointer before them so they are essentially ignored and the other macro may freely overwrite them.
2017-05-04dynamic_macro.h: Fix an off-by-two errorGravatar Wojciech Siewierski
We need to check whether we just passed the after-the-end point of the other macro. Instead we were checking whether we are going to reach it now.
2017-05-04dynamic_macro.h: Always toggle the backlight twice as a notificationGravatar Wojciech Siewierski
Apparently sometimes the backlight was toggled only once and it was left on.
2017-05-04dynamic_macro.h: Ignore all the initial key releasesGravatar Wojciech Siewierski
Right after the user initiates the macro recording, they usually need to release some keys used to access the DYN_REC_START layers. It makes sense to ignore them. Note: The keys used to access the DYN_REC_STOP key are *not* ignored.
2017-04-30Add `DYN_REC_STOP` to dynamic macrosGravatar Weiyi Lou
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; }
2017-03-28Clarify the quantum license (#1042)Gravatar skullydazed
* Clarify the license for files we have signoff on * Update against the currently signed off files * Remove unused and not clearly licensed headers * Replace an #endif I accidentally removed while resolving merge conflicts
2016-10-09Reduce the default dynamic macro bufferGravatar Wojciech Siewierski
There have been reports of it leaving not enough free memory preventing the keyboard from working properly.
2016-08-18Implement the dynamic macros that are recorded in runtimeGravatar Wojciech Siewierski