Create RARCH_AUDIO_CTL_HAS_CALLBACK

This commit is contained in:
twinaphex 2015-11-22 15:20:10 +01:00
parent 08c6382c51
commit 82e8cee97b
3 changed files with 14 additions and 18 deletions

View File

@ -745,27 +745,22 @@ void audio_driver_set_callback(const void *data)
audio_data.audio_callback = *cb; audio_data.audio_callback = *cb;
} }
bool audio_driver_has_callback(void)
{
return audio_data.audio_callback.callback;
}
void audio_driver_callback(void) void audio_driver_callback(void)
{ {
if (audio_driver_has_callback()) if (!audio_driver_ctl(RARCH_AUDIO_CTL_HAS_CALLBACK, NULL))
{ return;
if (audio_data.audio_callback.callback) if (audio_data.audio_callback.callback)
audio_data.audio_callback.callback(); audio_data.audio_callback.callback();
}
} }
void audio_driver_callback_set_state(bool state) void audio_driver_callback_set_state(bool state)
{ {
if (audio_driver_has_callback()) if (!audio_driver_ctl(RARCH_AUDIO_CTL_HAS_CALLBACK, NULL))
{ return;
if (audio_data.audio_callback.set_state) if (audio_data.audio_callback.set_state)
audio_data.audio_callback.set_state(state); audio_data.audio_callback.set_state(state);
}
} }
static void audio_monitor_adjust_system_rates(void) 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(); return init_audio();
case RARCH_AUDIO_CTL_DEINIT: case RARCH_AUDIO_CTL_DEINIT:
return uninit_audio(); return uninit_audio();
case RARCH_AUDIO_CTL_HAS_CALLBACK:
return audio_data.audio_callback.callback;
case RARCH_AUDIO_CTL_MONITOR_ADJUST_SYSTEM_RATES: case RARCH_AUDIO_CTL_MONITOR_ADJUST_SYSTEM_RATES:
audio_monitor_adjust_system_rates(); audio_monitor_adjust_system_rates();
return true; return true;

View File

@ -83,6 +83,7 @@ enum rarch_audio_ctl_state
RARCH_AUDIO_CTL_MONITOR_SET_REFRESH_RATE, RARCH_AUDIO_CTL_MONITOR_SET_REFRESH_RATE,
RARCH_AUDIO_CTL_MONITOR_ADJUST_SYSTEM_RATES, RARCH_AUDIO_CTL_MONITOR_ADJUST_SYSTEM_RATES,
RARCH_AUDIO_CTL_MUTE_TOGGLE, RARCH_AUDIO_CTL_MUTE_TOGGLE,
RARCH_AUDIO_CTL_HAS_CALLBACK,
RARCH_AUDIO_CTL_ALIVE 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); void audio_driver_set_callback(const void *info);
bool audio_driver_has_callback(void);
void audio_driver_callback(void); void audio_driver_callback(void);
void audio_driver_callback_set_state(bool state); void audio_driver_callback_set_state(bool state);

View File

@ -585,7 +585,7 @@ void init_rewind(void)
if (!settings->rewind_enable || global->rewind.state) if (!settings->rewind_enable || global->rewind.state)
return; 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)); RARCH_ERR("%s.\n", msg_hash_to_str(MSG_REWIND_INIT_FAILED));
return; return;