Fixes some crucial bugs

This commit is contained in:
twinaphex 2015-12-25 19:30:31 +01:00
parent dde68de466
commit 5cdbe7e3cc
3 changed files with 10 additions and 7 deletions

View File

@ -261,12 +261,6 @@ static bool uninit_audio(void)
rarch_resampler_freep(&audio_driver_resampler, rarch_resampler_freep(&audio_driver_resampler,
&audio_driver_resampler_data); &audio_driver_resampler_data);
if (audio_driver_data.audio_callback.callback)
{
audio_driver_data.audio_callback.callback = NULL;
audio_driver_data.audio_callback.set_state = NULL;
}
if (audio_driver_data.data) if (audio_driver_data.data)
free(audio_driver_data.data); free(audio_driver_data.data);
audio_driver_data.data = NULL; audio_driver_data.data = NULL;
@ -675,6 +669,12 @@ void audio_driver_set_buffer_size(size_t bufsize)
audio_driver_data.driver_buffer_size = bufsize; audio_driver_data.driver_buffer_size = bufsize;
} }
void audio_driver_unset_callback(void)
{
audio_driver_data.audio_callback.callback = NULL;
audio_driver_data.audio_callback.set_state = NULL;
}
void audio_driver_set_callback(const void *data) void audio_driver_set_callback(const void *data)
{ {
const struct retro_audio_callback *cb = const struct retro_audio_callback *cb =

View File

@ -148,6 +148,7 @@ void audio_driver_dsp_filter_init(const char *device);
void audio_driver_set_buffer_size(size_t bufsize); void audio_driver_set_buffer_size(size_t bufsize);
void audio_driver_set_callback(const void *info); void audio_driver_set_callback(const void *info);
void audio_driver_unset_callback(void);
void audio_driver_callback_set_state(bool state); void audio_driver_callback_set_state(bool state);

View File

@ -585,7 +585,9 @@ bool runloop_ctl(enum runloop_ctl_state state, void *data)
free(runloop_system.ports); free(runloop_system.ports);
runloop_system.ports = NULL; runloop_system.ports = NULL;
runloop_key_event = NULL; runloop_key_event = NULL;
global_get_ptr()->frontend_key_event = NULL;
audio_driver_unset_callback();
memset(&runloop_system, 0, sizeof(rarch_system_info_t)); memset(&runloop_system, 0, sizeof(rarch_system_info_t));
break; break;
case RUNLOOP_CTL_IS_FRAME_COUNT_END: case RUNLOOP_CTL_IS_FRAME_COUNT_END: