diff options
| author | Wojciech Siewierski <wojciech.siewierski@onet.pl> | 2017-05-04 22:55:35 +0200 |
|---|---|---|
| committer | Wojciech Siewierski <wojciech.siewierski@onet.pl> | 2017-05-04 23:57:22 +0200 |
| commit | 10a7cd7e5ae1affe226423dd94c6443f8cf64e22 (patch) | |
| tree | f2bdfeb97955f71768e6b19868ba0bff6aec5a2e /quantum | |
| parent | 8e94c9b4cba4cf3479154a11faacfa2bbad50098 (diff) | |
| download | qmk_firmware-10a7cd7e5ae1affe226423dd94c6443f8cf64e22.tar.gz qmk_firmware-10a7cd7e5ae1affe226423dd94c6443f8cf64e22.zip | |
dynamic_macro.h: Add debug logs
Diffstat (limited to 'quantum')
| -rw-r--r-- | quantum/dynamic_macro.h | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/quantum/dynamic_macro.h b/quantum/dynamic_macro.h index 6aae7d230..7dca30f07 100644 --- a/quantum/dynamic_macro.h +++ b/quantum/dynamic_macro.h | |||
| @@ -53,6 +53,15 @@ void dynamic_macro_led_blink(void) | |||
| 53 | backlight_toggle(); | 53 | backlight_toggle(); |
| 54 | } | 54 | } |
| 55 | 55 | ||
| 56 | /* Convenience macros used for retrieving the debug info. All of them | ||
| 57 | * need a `direction` variable accessible at the call site. | ||
| 58 | */ | ||
| 59 | #define DYNAMIC_MACRO_CURRENT_SLOT() (direction > 0 ? 1 : 2) | ||
| 60 | #define DYNAMIC_MACRO_CURRENT_LENGTH(BEGIN, POINTER) \ | ||
| 61 | ((int)(direction * ((POINTER) - (BEGIN)))) | ||
| 62 | #define DYNAMIC_MACRO_CURRENT_CAPACITY(BEGIN, END2) \ | ||
| 63 | ((int)(direction * ((END2) - (BEGIN)) + 1)) | ||
| 64 | |||
| 56 | /** | 65 | /** |
| 57 | * Start recording of the dynamic macro. | 66 | * Start recording of the dynamic macro. |
| 58 | * | 67 | * |
| @@ -62,6 +71,8 @@ void dynamic_macro_led_blink(void) | |||
| 62 | void dynamic_macro_record_start( | 71 | void dynamic_macro_record_start( |
| 63 | keyrecord_t **macro_pointer, keyrecord_t *macro_buffer) | 72 | keyrecord_t **macro_pointer, keyrecord_t *macro_buffer) |
| 64 | { | 73 | { |
| 74 | dprintln("dynamic macro recording: started"); | ||
| 75 | |||
| 65 | dynamic_macro_led_blink(); | 76 | dynamic_macro_led_blink(); |
| 66 | 77 | ||
| 67 | clear_keyboard(); | 78 | clear_keyboard(); |
| @@ -79,6 +90,8 @@ void dynamic_macro_record_start( | |||
| 79 | void dynamic_macro_play( | 90 | void dynamic_macro_play( |
| 80 | keyrecord_t *macro_buffer, keyrecord_t *macro_end, int8_t direction) | 91 | keyrecord_t *macro_buffer, keyrecord_t *macro_end, int8_t direction) |
| 81 | { | 92 | { |
| 93 | dprintf("dynamic macro: slot %d playback\n", DYNAMIC_MACRO_CURRENT_SLOT()); | ||
| 94 | |||
| 82 | uint32_t saved_layer_state = layer_state; | 95 | uint32_t saved_layer_state = layer_state; |
| 83 | 96 | ||
| 84 | clear_keyboard(); | 97 | clear_keyboard(); |
| @@ -112,6 +125,7 @@ void dynamic_macro_record_key( | |||
| 112 | { | 125 | { |
| 113 | /* If we've just started recording, ignore all the key releases. */ | 126 | /* If we've just started recording, ignore all the key releases. */ |
| 114 | if (!record->event.pressed && *macro_pointer == macro_buffer) { | 127 | if (!record->event.pressed && *macro_pointer == macro_buffer) { |
| 128 | dprintln("dynamic macro: ignoring a leading key-up event"); | ||
| 115 | return; | 129 | return; |
| 116 | } | 130 | } |
| 117 | 131 | ||
| @@ -124,6 +138,12 @@ void dynamic_macro_record_key( | |||
| 124 | } else { | 138 | } else { |
| 125 | dynamic_macro_led_blink(); | 139 | dynamic_macro_led_blink(); |
| 126 | } | 140 | } |
| 141 | |||
| 142 | dprintf( | ||
| 143 | "dynamic macro: slot %d length: %d/%d\n", | ||
| 144 | DYNAMIC_MACRO_CURRENT_SLOT(), | ||
| 145 | DYNAMIC_MACRO_CURRENT_LENGTH(macro_buffer, *macro_pointer), | ||
| 146 | DYNAMIC_MACRO_CURRENT_CAPACITY(macro_buffer, macro2_end)); | ||
| 127 | } | 147 | } |
| 128 | 148 | ||
| 129 | /** | 149 | /** |
| @@ -143,9 +163,15 @@ void dynamic_macro_record_end( | |||
| 143 | */ | 163 | */ |
| 144 | while (macro_pointer != macro_buffer && | 164 | while (macro_pointer != macro_buffer && |
| 145 | (macro_pointer - direction)->event.pressed) { | 165 | (macro_pointer - direction)->event.pressed) { |
| 166 | dprintln("dynamic macro: trimming a trailing key-down event"); | ||
| 146 | macro_pointer -= direction; | 167 | macro_pointer -= direction; |
| 147 | } | 168 | } |
| 148 | 169 | ||
| 170 | dprintf( | ||
| 171 | "dynamic macro: slot %d saved, length: %d\n", | ||
| 172 | DYNAMIC_MACRO_CURRENT_SLOT(), | ||
| 173 | DYNAMIC_MACRO_CURRENT_LENGTH(macro_buffer, macro_pointer)); | ||
| 174 | |||
| 149 | *macro_end = macro_pointer; | 175 | *macro_end = macro_pointer; |
| 150 | } | 176 | } |
| 151 | 177 | ||
| @@ -264,4 +290,8 @@ bool process_record_dynamic_macro(uint16_t keycode, keyrecord_t *record) | |||
| 264 | return true; | 290 | return true; |
| 265 | } | 291 | } |
| 266 | 292 | ||
| 293 | #undef DYNAMIC_MACRO_CURRENT_SLOT | ||
| 294 | #undef DYNAMIC_MACRO_CURRENT_LENGTH | ||
| 295 | #undef DYNAMIC_MACRO_CURRENT_CAPACITY | ||
| 296 | |||
| 267 | #endif | 297 | #endif |
