diff --git a/audio/audio_driver.c b/audio/audio_driver.c index 37fc086b5f..b6223ac6c3 100644 --- a/audio/audio_driver.c +++ b/audio/audio_driver.c @@ -729,8 +729,6 @@ void audio_driver_frame_is_reverse(void) audio_data.rewind_size - audio_data.rewind_ptr); } - - void audio_driver_set_buffer_size(size_t bufsize) { audio_data.driver_buffer_size = bufsize; @@ -745,15 +743,6 @@ void audio_driver_set_callback(const void *data) audio_data.audio_callback = *cb; } -void audio_driver_callback(void) -{ - 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_ctl(RARCH_AUDIO_CTL_HAS_CALLBACK, NULL)) @@ -803,6 +792,13 @@ bool audio_driver_ctl(enum rarch_audio_ctl_state state, void *data) return uninit_audio(); case RARCH_AUDIO_CTL_HAS_CALLBACK: return audio_data.audio_callback.callback; + case RARCH_AUDIO_CTL_CALLBACK: + if (!audio_driver_ctl(RARCH_AUDIO_CTL_HAS_CALLBACK, NULL)) + return false; + + if (audio_data.audio_callback.callback) + audio_data.audio_callback.callback(); + return true; 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 b2361c6120..9d0560ca36 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_CALLBACK, RARCH_AUDIO_CTL_HAS_CALLBACK, RARCH_AUDIO_CTL_ALIVE }; @@ -144,8 +145,6 @@ void audio_driver_set_buffer_size(size_t bufsize); void audio_driver_set_callback(const void *info); -void audio_driver_callback(void); - void audio_driver_callback_set_state(bool state); diff --git a/audio/audio_thread_wrapper.c b/audio/audio_thread_wrapper.c index 1c32f2d8f4..2c1520d5f3 100644 --- a/audio/audio_thread_wrapper.c +++ b/audio/audio_thread_wrapper.c @@ -91,7 +91,7 @@ static void audio_thread_loop(void *data) } slock_unlock(thr->lock); - audio_driver_callback(); + audio_driver_ctl(RARCH_AUDIO_CTL_CALLBACK, NULL); } RARCH_LOG("[Audio Thread]: Tearing down driver.\n");