From 82e8cee97bb34dea1d7c93a702d88c65909f712f Mon Sep 17 00:00:00 2001 From: twinaphex Date: Sun, 22 Nov 2015 15:20:10 +0100 Subject: [PATCH] Create RARCH_AUDIO_CTL_HAS_CALLBACK --- audio/audio_driver.c | 27 ++++++++++++--------------- audio/audio_driver.h | 3 +-- rewind.c | 2 +- 3 files changed, 14 insertions(+), 18 deletions(-) diff --git a/audio/audio_driver.c b/audio/audio_driver.c index 19992952d6..37fc086b5f 100644 --- a/audio/audio_driver.c +++ b/audio/audio_driver.c @@ -745,27 +745,22 @@ void audio_driver_set_callback(const void *data) audio_data.audio_callback = *cb; } -bool audio_driver_has_callback(void) -{ - return audio_data.audio_callback.callback; -} - void audio_driver_callback(void) { - if (audio_driver_has_callback()) - { - if (audio_data.audio_callback.callback) - audio_data.audio_callback.callback(); - } + if (!audio_driver_ctl(RARCH_AUDIO_CTL_HAS_CALLBACK, NULL)) + return; + + if (audio_data.audio_callback.callback) + audio_data.audio_callback.callback(); } void audio_driver_callback_set_state(bool state) { - if (audio_driver_has_callback()) - { - if (audio_data.audio_callback.set_state) - audio_data.audio_callback.set_state(state); - } + if (!audio_driver_ctl(RARCH_AUDIO_CTL_HAS_CALLBACK, NULL)) + return; + + if (audio_data.audio_callback.set_state) + audio_data.audio_callback.set_state(state); } static void audio_monitor_adjust_system_rates(void) @@ -806,6 +801,8 @@ bool audio_driver_ctl(enum rarch_audio_ctl_state state, void *data) return init_audio(); case RARCH_AUDIO_CTL_DEINIT: return uninit_audio(); + case RARCH_AUDIO_CTL_HAS_CALLBACK: + return audio_data.audio_callback.callback; case RARCH_AUDIO_CTL_MONITOR_ADJUST_SYSTEM_RATES: audio_monitor_adjust_system_rates(); return true; diff --git a/audio/audio_driver.h b/audio/audio_driver.h index 3d9b9df5b1..b2361c6120 100644 --- a/audio/audio_driver.h +++ b/audio/audio_driver.h @@ -83,6 +83,7 @@ enum rarch_audio_ctl_state RARCH_AUDIO_CTL_MONITOR_SET_REFRESH_RATE, RARCH_AUDIO_CTL_MONITOR_ADJUST_SYSTEM_RATES, RARCH_AUDIO_CTL_MUTE_TOGGLE, + RARCH_AUDIO_CTL_HAS_CALLBACK, RARCH_AUDIO_CTL_ALIVE }; @@ -143,8 +144,6 @@ void audio_driver_set_buffer_size(size_t bufsize); void audio_driver_set_callback(const void *info); -bool audio_driver_has_callback(void); - void audio_driver_callback(void); void audio_driver_callback_set_state(bool state); diff --git a/rewind.c b/rewind.c index 649f50ad63..12ab70bf56 100644 --- a/rewind.c +++ b/rewind.c @@ -585,7 +585,7 @@ void init_rewind(void) if (!settings->rewind_enable || global->rewind.state) return; - if (audio_driver_has_callback()) + if (audio_driver_ctl(RARCH_AUDIO_CTL_HAS_CALLBACK, NULL)) { RARCH_ERR("%s.\n", msg_hash_to_str(MSG_REWIND_INIT_FAILED)); return;