From 838c1eb93a69e10dc3e187615435d2e5cf6abb8a Mon Sep 17 00:00:00 2001 From: twinaphex Date: Thu, 18 May 2017 09:17:30 +0200 Subject: [PATCH] Prevent leaks --- audio/audio_driver.c | 26 ++++++++++++-------------- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/audio/audio_driver.c b/audio/audio_driver.c index 30cbdb32c6..4ce0667faa 100644 --- a/audio/audio_driver.c +++ b/audio/audio_driver.c @@ -901,6 +901,9 @@ bool audio_driver_mixer_add_stream(audio_mixer_stream_params_t *params) if (audio_mixer_current_max_idx >= MAX_STREAMS) return false; + if (params->state == AUDIO_STREAM_STATE_NONE) + return false; + switch (params->type) { case AUDIO_MIXER_TYPE_WAV: @@ -916,21 +919,16 @@ bool audio_driver_mixer_add_stream(audio_mixer_stream_params_t *params) if (!handle) return false; - switch (params->state) + if (params->state == AUDIO_STREAM_STATE_PLAYING) { - case AUDIO_STREAM_STATE_NONE: - return false; - case AUDIO_STREAM_STATE_STOPPED: - break; - case AUDIO_STREAM_STATE_PLAYING: - voice = audio_mixer_play(handle, looped, params->volume, stop_cb); - audio_set_bool(AUDIO_ACTION_MIXER, true); - break; - case AUDIO_STREAM_STATE_PLAYING_LOOPED: - looped = true; - voice = audio_mixer_play(handle, looped, params->volume, stop_cb); - audio_set_bool(AUDIO_ACTION_MIXER, true); - break; + voice = audio_mixer_play(handle, looped, params->volume, stop_cb); + audio_set_bool(AUDIO_ACTION_MIXER, true); + } + else if (params->state == AUDIO_STREAM_STATE_PLAYING_LOOPED) + { + looped = true; + voice = audio_mixer_play(handle, looped, params->volume, stop_cb); + audio_set_bool(AUDIO_ACTION_MIXER, true); } audio_mixer_streams[audio_mixer_current_max_idx].handle = handle;