Add dynamic macro keyboard callbacks (#24142)
This commit is contained in:
		
							parent
							
								
									faf51c7449
								
							
						
					
					
						commit
						ab4c13e835
					
				
					 7 changed files with 88 additions and 296 deletions
				
			
		| 
						 | 
				
			
			@ -382,15 +382,23 @@ static bool is_on = false;
 | 
			
		|||
static bool is_dynamic_recording = false;
 | 
			
		||||
static uint16_t dynamic_loop_timer;
 | 
			
		||||
 | 
			
		||||
void dynamic_macro_record_start_user(int8_t direction) {
 | 
			
		||||
bool dynamic_macro_record_start_kb(int8_t direction) {
 | 
			
		||||
    if (!dynamic_macro_record_start_user(direction)) {
 | 
			
		||||
        return false;
 | 
			
		||||
    }
 | 
			
		||||
    is_dynamic_recording = true;
 | 
			
		||||
    dynamic_loop_timer = timer_read();
 | 
			
		||||
    ergodox_right_led_1_on();
 | 
			
		||||
    return true;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void dynamic_macro_record_end_user(int8_t direction) {
 | 
			
		||||
bool dynamic_macro_record_end_kb(int8_t direction) {
 | 
			
		||||
    if (!dynamic_macro_record_end_user(direction)) {
 | 
			
		||||
        return false;
 | 
			
		||||
    }
 | 
			
		||||
    is_dynamic_recording = false;
 | 
			
		||||
    layer_state_set_user(layer_state);
 | 
			
		||||
    return true;
 | 
			
		||||
}
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -206,11 +206,19 @@ void update_layer_leds(void) {
 | 
			
		|||
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
void dynamic_macro_record_start_user(int8_t direction) {
 | 
			
		||||
bool dynamic_macro_record_start_kb(int8_t direction) {
 | 
			
		||||
    if (!dynamic_macro_record_start_user(direction)) {
 | 
			
		||||
        return false;
 | 
			
		||||
    }
 | 
			
		||||
    isRecording++;
 | 
			
		||||
    blink_cycle_timer = timer_read();
 | 
			
		||||
    return true;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void dynamic_macro_record_end_user(int8_t direction) {
 | 
			
		||||
bool dynamic_macro_record_end_kb(int8_t direction) {
 | 
			
		||||
    if (!dynamic_macro_record_end_user(direction)) {
 | 
			
		||||
        return false;
 | 
			
		||||
    }
 | 
			
		||||
    if (isRecording) isRecording--;
 | 
			
		||||
    return true;
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -26,11 +26,21 @@ bool is_launching     = false;
 | 
			
		|||
#ifdef DYNAMIC_MACRO_ENABLE
 | 
			
		||||
static bool is_dynamic_recording = false;
 | 
			
		||||
 | 
			
		||||
void dynamic_macro_record_start_user(int8_t direction) { is_dynamic_recording = true; }
 | 
			
		||||
bool dynamic_macro_record_start_kb(int8_t direction) {
 | 
			
		||||
    if (!dynamic_macro_record_start_user(direction)) {
 | 
			
		||||
        return false;
 | 
			
		||||
    }
 | 
			
		||||
    is_dynamic_recording = true;
 | 
			
		||||
    return true;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void dynamic_macro_record_end_user(int8_t direction) {
 | 
			
		||||
bool dynamic_macro_record_end_kb(int8_t direction) {
 | 
			
		||||
    if (!dynamic_macro_record_end_user(direction)) {
 | 
			
		||||
        return false;
 | 
			
		||||
    }
 | 
			
		||||
    is_dynamic_recording = false;
 | 
			
		||||
    ML_LED_3(false);
 | 
			
		||||
    return false;
 | 
			
		||||
}
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -21,18 +21,26 @@ static uint32_t dynamic_macro_led(uint32_t trigger_time, void *cb_arg) {
 | 
			
		|||
    return 100;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void dynamic_macro_record_start_user(int8_t direction) {
 | 
			
		||||
bool dynamic_macro_record_start_kb(int8_t direction) {
 | 
			
		||||
    if (!dynamic_macro_record_start_user(direction)) {
 | 
			
		||||
        return false;
 | 
			
		||||
    }
 | 
			
		||||
    if (dynamic_macro_token == INVALID_DEFERRED_TOKEN) {
 | 
			
		||||
        STATUS_LED_3(true);
 | 
			
		||||
        dynamic_macro_token = defer_exec(100, dynamic_macro_led, NULL);
 | 
			
		||||
    }
 | 
			
		||||
    return true;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void dynamic_macro_record_end_user(int8_t direction) {
 | 
			
		||||
bool dynamic_macro_record_end_kb(int8_t direction) {
 | 
			
		||||
    if (!dynamic_macro_record_end_user(direction)) {
 | 
			
		||||
        return false;
 | 
			
		||||
    }
 | 
			
		||||
    if (cancel_deferred_exec(dynamic_macro_token)) {
 | 
			
		||||
        dynamic_macro_token = INVALID_DEFERRED_TOKEN;
 | 
			
		||||
        STATUS_LED_3(false);
 | 
			
		||||
    }
 | 
			
		||||
    return true;
 | 
			
		||||
}
 | 
			
		||||
#    endif
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue