Threaded audio - prevent callbacks when paused

This commit is contained in:
IAmBoring 2021-01-05 16:07:35 +00:00 committed by GitHub
parent 2c3f6f0882
commit 5d2c4e6868
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -28712,10 +28712,13 @@ static void audio_driver_monitor_set_rate(struct rarch_state *p_rarch)
bool audio_driver_callback(void)
{
struct rarch_state *p_rarch = &rarch_st;
settings_t *settings = p_rarch->configuration_settings;
bool core_paused = p_rarch->runloop_paused || (settings->bools.menu_pause_libretro && p_rarch->menu_driver_alive);
if (!p_rarch->audio_callback.callback)
return false;
if (p_rarch->audio_callback.callback)
if (!core_paused && p_rarch->audio_callback.callback)
p_rarch->audio_callback.callback();
return true;
@ -37379,6 +37382,7 @@ int runloop_iterate(void)
bool vrr_runloop_enable = settings->bools.vrr_runloop_enable;
unsigned max_users = p_rarch->input_driver_max_users;
retro_time_t current_time = cpu_features_get_time_usec();
bool core_paused = p_rarch->runloop_paused || (settings->bools.menu_pause_libretro && p_rarch->menu_driver_alive);
#ifdef HAVE_DISCORD
discord_state_t *discord_st = &p_rarch->discord_st;
@ -37416,7 +37420,8 @@ int runloop_iterate(void)
delta /= slowmotion_ratio;
}
p_rarch->runloop_frame_time.callback(delta);
if (!core_paused)
p_rarch->runloop_frame_time.callback(delta);
}
/* Update audio buffer occupancy if buffer status
@ -37454,8 +37459,9 @@ int runloop_iterate(void)
audio_buf_active = true;
}
p_rarch->runloop_audio_buffer_status.callback(
audio_buf_active, audio_buf_occupancy, audio_buf_underrun);
if (!core_paused)
p_rarch->runloop_audio_buffer_status.callback(
audio_buf_active, audio_buf_occupancy, audio_buf_underrun);
}
switch ((enum runloop_state)runloop_check_state(p_rarch,