Stop sounds when suspended (#11553)
* fix stopping audio on suspend vs. startup sound * trim firmware size * fix stuck audio on startup (ARM)
This commit is contained in:
@@ -83,6 +83,7 @@ void increase_tempo(uint8_t tempo_change);
|
||||
void decrease_tempo(uint8_t tempo_change);
|
||||
|
||||
void audio_init(void);
|
||||
void audio_startup(void);
|
||||
|
||||
#ifdef PWM_AUDIO
|
||||
void play_sample(uint8_t* s, uint16_t l, bool r);
|
||||
|
@@ -227,7 +227,9 @@ void audio_init() {
|
||||
|
||||
audio_initialized = true;
|
||||
}
|
||||
}
|
||||
|
||||
void audio_startup() {
|
||||
if (audio_config.enable) {
|
||||
PLAY_SONG(startup_song);
|
||||
}
|
||||
|
@@ -281,6 +281,12 @@ void audio_init() {
|
||||
dacStart(&DACD1, &dac1cfg1);
|
||||
dacStart(&DACD2, &dac1cfg2);
|
||||
|
||||
/*
|
||||
* Start the note timer
|
||||
*/
|
||||
gptStart(&GPTD8, &gpt8cfg1);
|
||||
gptStartContinuous(&GPTD8, 2U);
|
||||
|
||||
/*
|
||||
* Starting GPT6/7 driver, it is used for triggering the DAC.
|
||||
*/
|
||||
@@ -295,10 +301,12 @@ void audio_init() {
|
||||
|
||||
audio_initialized = true;
|
||||
|
||||
stop_all_notes();
|
||||
}
|
||||
|
||||
void audio_startup() {
|
||||
if (audio_config.enable) {
|
||||
PLAY_SONG(startup_song);
|
||||
} else {
|
||||
stop_all_notes();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -638,6 +646,9 @@ bool is_playing_notes(void) { return playing_notes; }
|
||||
bool is_audio_on(void) { return (audio_config.enable != 0); }
|
||||
|
||||
void audio_toggle(void) {
|
||||
if (audio_config.enable) {
|
||||
stop_all_notes();
|
||||
}
|
||||
audio_config.enable ^= 1;
|
||||
eeconfig_update_audio(audio_config.raw);
|
||||
if (audio_config.enable) {
|
||||
|
@@ -29,6 +29,11 @@
|
||||
|
||||
#define CPU_PRESCALER 8
|
||||
|
||||
#ifndef STARTUP_SONG
|
||||
# define STARTUP_SONG SONG(STARTUP_SOUND)
|
||||
#endif
|
||||
float startup_song[][2] = STARTUP_SONG;
|
||||
|
||||
// Timer Abstractions
|
||||
|
||||
// TIMSK3 - Timer/Counter #3 Interrupt Mask Register
|
||||
@@ -155,6 +160,12 @@ void audio_init() {
|
||||
audio_initialized = true;
|
||||
}
|
||||
|
||||
void audio_startup() {
|
||||
if (audio_config.enable) {
|
||||
PLAY_SONG(startup_song);
|
||||
}
|
||||
}
|
||||
|
||||
void stop_all_notes() {
|
||||
if (!audio_initialized) {
|
||||
audio_init();
|
||||
|
Reference in New Issue
Block a user