diff options
author | Joshua Diamond <josh@windowoffire.com> | 2021-01-31 17:25:55 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-02-01 09:25:55 +1100 |
commit | ae4ee7553abfaa2149fcea04c3cbee20f3b8c7a5 (patch) | |
tree | 8baafbc7332a9ed95e5ff35de3f9ed5f21826f4f /quantum/audio/audio_chibios.c | |
parent | db11a2a1fd7a7ff9c458e8ec9e963a61a1192bf3 (diff) | |
download | qmk_firmware-ae4ee7553abfaa2149fcea04c3cbee20f3b8c7a5.tar.gz qmk_firmware-ae4ee7553abfaa2149fcea04c3cbee20f3b8c7a5.zip |
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/audio/audio_chibios.c')
-rw-r--r-- | quantum/audio/audio_chibios.c | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/quantum/audio/audio_chibios.c b/quantum/audio/audio_chibios.c index 1863ae140..dddb8f135 100644 --- a/quantum/audio/audio_chibios.c +++ b/quantum/audio/audio_chibios.c | |||
@@ -282,6 +282,12 @@ void audio_init() { | |||
282 | dacStart(&DACD2, &dac1cfg2); | 282 | dacStart(&DACD2, &dac1cfg2); |
283 | 283 | ||
284 | /* | 284 | /* |
285 | * Start the note timer | ||
286 | */ | ||
287 | gptStart(&GPTD8, &gpt8cfg1); | ||
288 | gptStartContinuous(&GPTD8, 2U); | ||
289 | |||
290 | /* | ||
285 | * Starting GPT6/7 driver, it is used for triggering the DAC. | 291 | * Starting GPT6/7 driver, it is used for triggering the DAC. |
286 | */ | 292 | */ |
287 | START_CHANNEL_1(); | 293 | START_CHANNEL_1(); |
@@ -295,10 +301,12 @@ void audio_init() { | |||
295 | 301 | ||
296 | audio_initialized = true; | 302 | audio_initialized = true; |
297 | 303 | ||
304 | stop_all_notes(); | ||
305 | } | ||
306 | |||
307 | void audio_startup() { | ||
298 | if (audio_config.enable) { | 308 | if (audio_config.enable) { |
299 | PLAY_SONG(startup_song); | 309 | PLAY_SONG(startup_song); |
300 | } else { | ||
301 | stop_all_notes(); | ||
302 | } | 310 | } |
303 | } | 311 | } |
304 | 312 | ||
@@ -638,6 +646,9 @@ bool is_playing_notes(void) { return playing_notes; } | |||
638 | bool is_audio_on(void) { return (audio_config.enable != 0); } | 646 | bool is_audio_on(void) { return (audio_config.enable != 0); } |
639 | 647 | ||
640 | void audio_toggle(void) { | 648 | void audio_toggle(void) { |
649 | if (audio_config.enable) { | ||
650 | stop_all_notes(); | ||
651 | } | ||
641 | audio_config.enable ^= 1; | 652 | audio_config.enable ^= 1; |
642 | eeconfig_update_audio(audio_config.raw); | 653 | eeconfig_update_audio(audio_config.raw); |
643 | if (audio_config.enable) { | 654 | if (audio_config.enable) { |