forked from mirrors/qmk_userspace
		
	dynamic_macro.h: Add debug logs
This commit is contained in:
		
					parent
					
						
							
								8e94c9b4cb
							
						
					
				
			
			
				commit
				
					
						10a7cd7e5a
					
				
			
		
					 1 changed files with 30 additions and 0 deletions
				
			
		| 
						 | 
					@ -53,6 +53,15 @@ void dynamic_macro_led_blink(void)
 | 
				
			||||||
    backlight_toggle();
 | 
					    backlight_toggle();
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Convenience macros used for retrieving the debug info. All of them
 | 
				
			||||||
 | 
					 * need a `direction` variable accessible at the call site.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#define DYNAMIC_MACRO_CURRENT_SLOT() (direction > 0 ? 1 : 2)
 | 
				
			||||||
 | 
					#define DYNAMIC_MACRO_CURRENT_LENGTH(BEGIN, POINTER) \
 | 
				
			||||||
 | 
					    ((int)(direction * ((POINTER) - (BEGIN))))
 | 
				
			||||||
 | 
					#define DYNAMIC_MACRO_CURRENT_CAPACITY(BEGIN, END2) \
 | 
				
			||||||
 | 
					    ((int)(direction * ((END2) - (BEGIN)) + 1))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * Start recording of the dynamic macro.
 | 
					 * Start recording of the dynamic macro.
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
| 
						 | 
					@ -62,6 +71,8 @@ void dynamic_macro_led_blink(void)
 | 
				
			||||||
void dynamic_macro_record_start(
 | 
					void dynamic_macro_record_start(
 | 
				
			||||||
    keyrecord_t **macro_pointer, keyrecord_t *macro_buffer)
 | 
					    keyrecord_t **macro_pointer, keyrecord_t *macro_buffer)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
 | 
					    dprintln("dynamic macro recording: started");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    dynamic_macro_led_blink();
 | 
					    dynamic_macro_led_blink();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    clear_keyboard();
 | 
					    clear_keyboard();
 | 
				
			||||||
| 
						 | 
					@ -79,6 +90,8 @@ void dynamic_macro_record_start(
 | 
				
			||||||
void dynamic_macro_play(
 | 
					void dynamic_macro_play(
 | 
				
			||||||
    keyrecord_t *macro_buffer, keyrecord_t *macro_end, int8_t direction)
 | 
					    keyrecord_t *macro_buffer, keyrecord_t *macro_end, int8_t direction)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
 | 
					    dprintf("dynamic macro: slot %d playback\n", DYNAMIC_MACRO_CURRENT_SLOT());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    uint32_t saved_layer_state = layer_state;
 | 
					    uint32_t saved_layer_state = layer_state;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    clear_keyboard();
 | 
					    clear_keyboard();
 | 
				
			||||||
| 
						 | 
					@ -112,6 +125,7 @@ void dynamic_macro_record_key(
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    /* If we've just started recording, ignore all the key releases. */
 | 
					    /* If we've just started recording, ignore all the key releases. */
 | 
				
			||||||
    if (!record->event.pressed && *macro_pointer == macro_buffer) {
 | 
					    if (!record->event.pressed && *macro_pointer == macro_buffer) {
 | 
				
			||||||
 | 
					        dprintln("dynamic macro: ignoring a leading key-up event");
 | 
				
			||||||
        return;
 | 
					        return;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -124,6 +138,12 @@ void dynamic_macro_record_key(
 | 
				
			||||||
    } else {
 | 
					    } else {
 | 
				
			||||||
        dynamic_macro_led_blink();
 | 
					        dynamic_macro_led_blink();
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    dprintf(
 | 
				
			||||||
 | 
					        "dynamic macro: slot %d length: %d/%d\n",
 | 
				
			||||||
 | 
					        DYNAMIC_MACRO_CURRENT_SLOT(),
 | 
				
			||||||
 | 
					        DYNAMIC_MACRO_CURRENT_LENGTH(macro_buffer, *macro_pointer),
 | 
				
			||||||
 | 
					        DYNAMIC_MACRO_CURRENT_CAPACITY(macro_buffer, macro2_end));
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
| 
						 | 
					@ -143,9 +163,15 @@ void dynamic_macro_record_end(
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    while (macro_pointer != macro_buffer &&
 | 
					    while (macro_pointer != macro_buffer &&
 | 
				
			||||||
           (macro_pointer - direction)->event.pressed) {
 | 
					           (macro_pointer - direction)->event.pressed) {
 | 
				
			||||||
 | 
					        dprintln("dynamic macro: trimming a trailing key-down event");
 | 
				
			||||||
        macro_pointer -= direction;
 | 
					        macro_pointer -= direction;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    dprintf(
 | 
				
			||||||
 | 
					        "dynamic macro: slot %d saved, length: %d\n",
 | 
				
			||||||
 | 
					        DYNAMIC_MACRO_CURRENT_SLOT(),
 | 
				
			||||||
 | 
					        DYNAMIC_MACRO_CURRENT_LENGTH(macro_buffer, macro_pointer));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    *macro_end = macro_pointer;
 | 
					    *macro_end = macro_pointer;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -264,4 +290,8 @@ bool process_record_dynamic_macro(uint16_t keycode, keyrecord_t *record)
 | 
				
			||||||
    return true;
 | 
					    return true;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#undef DYNAMIC_MACRO_CURRENT_SLOT
 | 
				
			||||||
 | 
					#undef DYNAMIC_MACRO_CURRENT_LENGTH
 | 
				
			||||||
 | 
					#undef DYNAMIC_MACRO_CURRENT_CAPACITY
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue