diff --git a/retroarch.c b/retroarch.c index 2ea7e9e7b7..e4547133e6 100644 --- a/retroarch.c +++ b/retroarch.c @@ -2283,9 +2283,7 @@ bool rarch_main_command(unsigned cmd) driver.audio->stop(driver.audio_data); break; case RARCH_CMD_AUDIO_START: - if (!driver.audio_data) - return false; - if (driver.audio->alive(driver.audio_data)) + if (!driver.audio_data || driver.audio->alive(driver.audio_data)) return false; if (!g_extern.audio_data.mute diff --git a/runloop.c b/runloop.c index 0e1055cdb6..23c40c29ca 100644 --- a/runloop.c +++ b/runloop.c @@ -38,8 +38,8 @@ static void check_mute(void) msg_queue_push(g_extern.msg_queue, msg, 1, 180); if (g_extern.audio_data.mute) - driver.audio->stop(driver.audio_data); - else if (!driver.audio->start(driver.audio_data)) + rarch_main_command(RARCH_CMD_AUDIO_STOP); + else if (!rarch_main_command(RARCH_CMD_AUDIO_START)) { RARCH_ERR("Failed to unmute audio.\n"); driver.audio_active = false;