aboutsummaryrefslogtreecommitdiffstats
path: root/quantum/dynamic_macro.h
Commit message (Collapse)AuthorAgeFilesLines
* [Core] Convert Dynamic Macro to a Core Feature (#5948)Drashna Jaelre2019-11-041-16/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Convert Dynamic Macro to a Core Feature This imports the code from Dynamic Macro into the core code, and handles it, as such. This deprecates the old method but does not remove it, for legacy support. This way, no existing user files need to be touched. Additionally, this reorganizes the documentation to better reflect the changes. Also, it adds user hooks to the feature so users can customize the existing functionality. Based heavily on and closes #2976 * Apply suggestions from code review Co-Authored-By: fauxpark <fauxpark@gmail.com> Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com> * Cleanup based on feedback * Add short-form keycodes and document them - add short-form keycodes to quantum/quantum_keycodes.h - document the new aliases in docs/feature_dynamic_macros.md * Add Dynamic Macros section and keycodes to docs/keycodes.md * Make anti-nesting optional * Add documentation for DYNAMIC_MACRO_NO_NESTING option * Fix Merge artifacts * Fix formatting typo in docs Co-Authored-By: James Young <18669334+noroadsleft@users.noreply.github.com> * Remove DYNAMIC_MACRO_RANGE as it's not needed * Fix includes and layer var type
* clang-format changesskullY2019-08-301-82/+55
|
* Fix dynamic macros on ChibiOS keyboardsFred Sundvik2017-09-301-1/+1
|
* Prevent the recording of looping dynamic macros.Daniel Shields2017-06-011-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.
* dynamic_macro.h: Do not use backlight_toggle if backlight is disabledWojciech Siewierski2017-05-051-0/+2
| | | | Fixes #1199.
* dynamic_macro.h: Add debug logsWojciech Siewierski2017-05-041-0/+30
|
* dynamic_macro.h: Make the documentation more clearWojciech Siewierski2017-05-041-2/+5
|
* dynamic_macro.h: Do not save the keys being held when stopping the recordingWojciech Siewierski2017-05-041-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.
* dynamic_macro.h: Fix an off-by-two errorWojciech Siewierski2017-05-041-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.
* dynamic_macro.h: Always toggle the backlight twice as a notificationWojciech Siewierski2017-05-041-3/+1
| | | | Apparently sometimes the backlight was toggled only once and it was left on.
* dynamic_macro.h: Ignore all the initial key releasesWojciech Siewierski2017-05-041-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.
* Add `DYN_REC_STOP` to dynamic macrosWeiyi Lou2017-04-301-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; }
* Clarify the quantum license (#1042)skullydazed2017-03-281-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
* Reduce the default dynamic macro bufferWojciech Siewierski2016-10-091-2/+7
| | | | | There have been reports of it leaving not enough free memory preventing the keyboard from working properly.
* Implement the dynamic macros that are recorded in runtimeWojciech Siewierski2016-08-181-0/+226