summaryrefslogtreecommitdiffstats
path: root/quantum/quantum.c
diff options
context:
space:
mode:
authorJoshua Diamond <josh@windowoffire.com>2021-01-31 17:25:55 -0500
committerGitHub <noreply@github.com>2021-02-01 09:25:55 +1100
commitae4ee7553abfaa2149fcea04c3cbee20f3b8c7a5 (patch)
tree8baafbc7332a9ed95e5ff35de3f9ed5f21826f4f /quantum/quantum.c
parentdb11a2a1fd7a7ff9c458e8ec9e963a61a1192bf3 (diff)
Stop sounds when suspended (#11553)
* fix stopping audio on suspend vs. startup sound * trim firmware size * fix stuck audio on startup (ARM)
Diffstat (limited to 'quantum/quantum.c')
-rw-r--r--quantum/quantum.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/quantum/quantum.c b/quantum/quantum.c
index 22aa528387..5e0cde8a25 100644
--- a/quantum/quantum.c
+++ b/quantum/quantum.c
@@ -656,6 +656,26 @@ void matrix_init_quantum() {
}
void matrix_scan_quantum() {
+#if defined(AUDIO_ENABLE)
+ // 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;
+ }
+ }
+#endif
+
#if defined(AUDIO_ENABLE) && !defined(NO_MUSIC_MODE)
matrix_scan_music();
#endif