From 5003a2d50b5196bf28b5ffae361b8f302fc76243 Mon Sep 17 00:00:00 2001 From: misson20000 Date: Fri, 29 Dec 2017 21:02:02 -0800 Subject: [PATCH] (NSW) fix switch audio driver to not start the audio output twice and not start it by default --- audio/drivers/switch_audio.c | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/audio/drivers/switch_audio.c b/audio/drivers/switch_audio.c index dc1dd28549..063c5a70c8 100644 --- a/audio/drivers/switch_audio.c +++ b/audio/drivers/switch_audio.c @@ -130,16 +130,23 @@ static bool switch_audio_stop(void *data) if (!swa) return false; + if(!swa->is_paused) { + if(audio_ipc_output_stop(&swa->output) != RESULT_OK) + return false; + } + swa->is_paused = true; - return audio_ipc_output_stop(&swa->output) == RESULT_OK; + return true; } static bool switch_audio_start(void *data, bool is_shutdown) { switch_audio_t *swa = (switch_audio_t*) data; - if (audio_ipc_output_start(&swa->output) != RESULT_OK) - return false; + if(swa->is_paused) { + if (audio_ipc_output_start(&swa->output) != RESULT_OK) + return false; + } swa->is_paused = false; return true; @@ -260,9 +267,8 @@ static void *switch_audio_init(const char *device, swa->latency = latency; swa->last_append = svcGetSystemTick(); - if (audio_ipc_output_start(&swa->output) != RESULT_OK) - goto fail_audio_output; - + swa->is_paused = true; + return swa; fail_audio_output: