From 9f48a2bca29b89ea01bfc787ef4d655e9429c76d Mon Sep 17 00:00:00 2001 From: twinaphex Date: Sat, 2 Aug 2014 02:18:54 +0200 Subject: [PATCH] Refactor audio_flush --- retroarch.c | 26 +++++++++++--------------- 1 file changed, 11 insertions(+), 15 deletions(-) diff --git a/retroarch.c b/retroarch.c index 9d74be5a2a..d0d4c8eb42 100644 --- a/retroarch.c +++ b/retroarch.c @@ -380,8 +380,9 @@ static bool audio_flush(const int16_t *data, size_t samples) if (!g_extern.audio_active) return false; - const float *output_data = NULL; + const void *output_data = NULL; unsigned output_frames = 0; + size_t output_size = sizeof(float); struct resampler_data src_data = {0}; RARCH_PERFORMANCE_INIT(audio_convert_s16); @@ -423,15 +424,7 @@ static bool audio_flush(const int16_t *data, size_t samples) output_data = g_extern.audio_data.outsamples; output_frames = src_data.output_frames; - if (g_extern.audio_data.use_float) - { - if (audio_write_func(output_data, output_frames * sizeof(float) * 2) < 0) - { - RARCH_ERR("Audio backend failed to write. Will continue without sound.\n"); - return false; - } - } - else + if (!g_extern.audio_data.use_float) { RARCH_PERFORMANCE_INIT(audio_convert_float); RARCH_PERFORMANCE_START(audio_convert_float); @@ -439,11 +432,14 @@ static bool audio_flush(const int16_t *data, size_t samples) output_data, output_frames * 2); RARCH_PERFORMANCE_STOP(audio_convert_float); - if (audio_write_func(g_extern.audio_data.conv_outsamples, output_frames * sizeof(int16_t) * 2) < 0) - { - RARCH_ERR("Audio backend failed to write. Will continue without sound.\n"); - return false; - } + output_data = g_extern.audio_data.conv_outsamples; + output_size = sizeof(int16_t); + } + + if (audio_write_func(output_data, output_frames * output_size * 2) < 0) + { + RARCH_ERR("Audio backend failed to write. Will continue without sound.\n"); + return false; } return true;