Add dynamic macro keyboard callbacks (#24142)

This commit is contained in:
Drashna Jaelre 2024-08-17 17:35:10 -07:00 committed by GitHub
parent faf51c7449
commit ab4c13e835
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
7 changed files with 88 additions and 296 deletions

View file

@ -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

View file

@ -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;
}

View file

@ -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

View file

@ -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