1
0
Fork 0

[Audio] Add support for audio shutdown pin (#22731)

Co-authored-by: Ryan <fauxpark@gmail.com>
This commit is contained in:
Drashna Jael're 2024-03-06 03:02:37 -08:00 committed by GitHub
parent 045e5c9729
commit 83e6ddbbb4
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
15 changed files with 95 additions and 88 deletions

View file

@ -213,7 +213,7 @@ void channel_2_stop(void) {
}
#endif
void audio_driver_initialize(void) {
void audio_driver_initialize_impl(void) {
#ifdef AUDIO1_PIN_SET
channel_1_stop();
gpio_set_pin_output(AUDIO1_PIN);
@ -254,7 +254,7 @@ void audio_driver_initialize(void) {
#endif
}
void audio_driver_stop(void) {
void audio_driver_stop_impl(void) {
#ifdef AUDIO1_PIN_SET
channel_1_stop();
#endif
@ -264,7 +264,7 @@ void audio_driver_stop(void) {
#endif
}
void audio_driver_start(void) {
void audio_driver_start_impl(void) {
#ifdef AUDIO1_PIN_SET
channel_1_start();
if (playing_note) {

View file

@ -303,7 +303,7 @@ static const DACConfig dac_conf = {.init = AUDIO_DAC_OFF_VALUE, .datamode = DAC_
*/
static const DACConversionGroup dac_conv_cfg = {.num_channels = 1U, .end_cb = dac_end, .error_cb = dac_error, .trigger = DAC_TRG(0b000)};
void audio_driver_initialize(void) {
void audio_driver_initialize_impl(void) {
if ((AUDIO_PIN == A4) || (AUDIO_PIN_ALT == A4)) {
palSetLineMode(A4, PAL_MODE_INPUT_ANALOG);
dacStart(&DACD1, &dac_conf);
@ -350,11 +350,11 @@ void audio_driver_initialize(void) {
gptStart(&GPTD6, &gpt6cfg1);
}
void audio_driver_stop(void) {
void audio_driver_stop_impl(void) {
state = OUTPUT_SHOULD_STOP;
}
void audio_driver_start(void) {
void audio_driver_start_impl(void) {
gptStartContinuous(&GPTD6, 2U);
for (uint8_t i = 0; i < AUDIO_MAX_SIMULTANEOUS_TONES; i++) {

View file

@ -190,7 +190,7 @@ static void gpt_audio_state_cb(GPTDriver *gptp) {
}
}
void audio_driver_initialize(void) {
void audio_driver_initialize_impl(void) {
if ((AUDIO_PIN == A4) || (AUDIO_PIN_ALT == A4)) {
palSetPadMode(GPIOA, 4, PAL_MODE_INPUT_ANALOG);
dacStart(&DACD1, &dac_conf_ch1);
@ -223,7 +223,7 @@ void audio_driver_initialize(void) {
gptStart(&AUDIO_STATE_TIMER, &gptStateUpdateCfg);
}
void audio_driver_stop(void) {
void audio_driver_stop_impl(void) {
if ((AUDIO_PIN == A4) || (AUDIO_PIN_ALT == A4)) {
gptStopTimer(&GPTD6);
@ -241,7 +241,7 @@ void audio_driver_stop(void) {
gptStopTimer(&AUDIO_STATE_TIMER);
}
void audio_driver_start(void) {
void audio_driver_start_impl(void) {
if ((AUDIO_PIN == A4) || (AUDIO_PIN_ALT == A4)) {
dacStartConversion(&DACD1, &dac_conv_grp_ch1, (dacsample_t *)dac_buffer_1, AUDIO_DAC_BUFFER_SIZE);
}

View file

@ -87,7 +87,7 @@ static void audio_callback(virtual_timer_t *vtp, void *p) {
chSysUnlockFromISR();
}
void audio_driver_initialize(void) {
void audio_driver_initialize_impl(void) {
pwmStart(&AUDIO_PWM_DRIVER, &pwmCFG);
// connect the AUDIO_PIN to the PWM hardware
@ -100,7 +100,7 @@ void audio_driver_initialize(void) {
chVTObjectInit(&audio_vt);
}
void audio_driver_start(void) {
void audio_driver_start_impl(void) {
channel_1_stop();
channel_1_start();
@ -115,7 +115,7 @@ void audio_driver_start(void) {
}
}
void audio_driver_stop(void) {
void audio_driver_stop_impl(void) {
channel_1_stop();
chVTReset(&audio_vt);
}

View file

@ -121,7 +121,7 @@ GPTConfig gptCFG = {
.callback = gpt_callback,
};
void audio_driver_initialize(void) {
void audio_driver_initialize_impl(void) {
pwmStart(&AUDIO_PWM_DRIVER, &pwmCFG);
palSetLineMode(AUDIO_PIN, PAL_MODE_OUTPUT_PUSHPULL);
@ -138,7 +138,7 @@ void audio_driver_initialize(void) {
gptStart(&AUDIO_STATE_TIMER, &gptCFG);
}
void audio_driver_start(void) {
void audio_driver_start_impl(void) {
channel_1_stop();
channel_1_start();
@ -147,7 +147,7 @@ void audio_driver_start(void) {
}
}
void audio_driver_stop(void) {
void audio_driver_stop_impl(void) {
channel_1_stop();
gptStopTimer(&AUDIO_STATE_TIMER);
}

View file

@ -15,6 +15,6 @@
#include "audio.h"
void audio_driver_initialize(void) {}
void audio_driver_start() {}
void audio_driver_stop() {}
void audio_driver_initialize_impl(void) {}
void audio_driver_start_impl() {}
void audio_driver_stop_impl() {}