diff options
| author | Joel Challis | 2025-07-14 14:53:57 +0200 |
|---|---|---|
| committer | GitHub | 2025-07-14 14:53:57 +0200 |
| commit | 20555f9a3366abf9d4246e00ad032590ff16236a (patch) | |
| tree | c78a2a08206023b1eed13883a97681da3b2c3a41 /quantum | |
| parent | 56ad3a5f435b57605388ad986e85ca6e4d607eb2 (diff) | |
Relocate `AUDIO_INIT_DELAY` implementation (#25491)
Diffstat (limited to 'quantum')
| -rw-r--r-- | quantum/audio/audio.c | 19 | ||||
| -rw-r--r-- | quantum/audio/audio.h | 6 | ||||
| -rw-r--r-- | quantum/keyboard.c | 20 |
3 files changed, 26 insertions, 19 deletions
diff --git a/quantum/audio/audio.c b/quantum/audio/audio.c index 247b737331..461ec89544 100644 --- a/quantum/audio/audio.c +++ b/quantum/audio/audio.c @@ -183,6 +183,25 @@ void audio_init(void) { #endif } +void audio_task(void) { +#ifdef AUDIO_INIT_DELAY + // startup song potentially needs to be run a little bit + // after keyboard startup, or else they will not work correctly + // because of interaction with the USB device state, which + // may still be in flux... + static bool delayed_tasks_run = false; + static uint16_t delayed_task_timer = 0; + if (!delayed_tasks_run) { + if (!delayed_task_timer) { + delayed_task_timer = timer_read(); + } else if (timer_elapsed(delayed_task_timer) > 300) { + audio_startup(); + delayed_tasks_run = true; + } + } +#endif +} + void audio_startup(void) { if (audio_config.enable) { PLAY_SONG(startup_song); diff --git a/quantum/audio/audio.h b/quantum/audio/audio.h index 647744a686..a41814d0f8 100644 --- a/quantum/audio/audio.h +++ b/quantum/audio/audio.h @@ -69,7 +69,11 @@ void eeconfig_update_audio_current(void); * @post audio system (and hardware) initialized and ready to play tones */ void audio_init(void); -void audio_startup(void); + +/** + * \brief Handle various subsystem background tasks. + */ +void audio_task(void); /** * @brief en-/disable audio output, save this choice to the eeprom diff --git a/quantum/keyboard.c b/quantum/keyboard.c index c1a6d444a5..bf4890a51d 100644 --- a/quantum/keyboard.c +++ b/quantum/keyboard.c @@ -648,24 +648,8 @@ void quantum_task(void) { if (!is_keyboard_master()) return; #endif -#if defined(AUDIO_ENABLE) && defined(AUDIO_INIT_DELAY) - // There are some tasks that need to be run a little bit - // after keyboard startup, or else they will not work correctly - // because of interaction with the USB device state, which - // may still be in flux... - // - // At the moment the only feature that needs this is the - // startup song. - static bool delayed_tasks_run = false; - static uint16_t delayed_task_timer = 0; - if (!delayed_tasks_run) { - if (!delayed_task_timer) { - delayed_task_timer = timer_read(); - } else if (timer_elapsed(delayed_task_timer) > 300) { - audio_startup(); - delayed_tasks_run = true; - } - } +#ifdef AUDIO_ENABLE + audio_task(); #endif #if defined(AUDIO_ENABLE) && !defined(NO_MUSIC_MODE) |