summaryrefslogtreecommitdiffstats
path: root/quantum/dynamic_macro.h
AgeCommit message (Collapse)AuthorFilesLines
2017-09-30Fix dynamic macros on ChibiOS keyboardsFred Sundvik1-1/+1
2017-06-01Prevent the recording of looping dynamic macros.Daniel Shields1-0/+4
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 disabledWojciech Siewierski1-0/+2
Fixes #1199.
2017-05-04dynamic_macro.h: Add debug logsWojciech Siewierski1-0/+30
2017-05-04dynamic_macro.h: Make the documentation more clearWojciech Siewierski1-2/+5
2017-05-04dynamic_macro.h: Do not save the keys being held when stopping the recordingWojciech Siewierski1-3/+15
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 errorWojciech Siewierski1-3/+3
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 notificationWojciech Siewierski1-3/+1
Apparently sometimes the backlight was toggled only once and it was left on.
2017-05-04dynamic_macro.h: Ignore all the initial key releasesWojciech Siewierski1-2/+9
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 macrosWeiyi Lou1-3/+3
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-29Clarify the quantum license (#1042)skullydazed1-0/+16
* 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 bufferWojciech Siewierski1-2/+7
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 runtimeWojciech Siewierski1-0/+226