mirror of
https://github.com/libretro/RetroArch
synced 2025-03-28 08:37:41 +00:00
(audio driver) Refactors
This commit is contained in:
parent
9dc3326d0e
commit
13998f583a
@ -342,7 +342,7 @@ static bool audio_driver_init_internal(bool audio_cb_inited)
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
audio_driver_ctl(RARCH_AUDIO_CTL_FIND_DRIVER, NULL);
|
audio_driver_find_driver();
|
||||||
#ifdef HAVE_THREADS
|
#ifdef HAVE_THREADS
|
||||||
if (audio_cb_inited)
|
if (audio_cb_inited)
|
||||||
{
|
{
|
||||||
@ -748,7 +748,7 @@ void audio_driver_setup_rewind(void)
|
|||||||
audio_driver_data.data_ptr = 0;
|
audio_driver_data.data_ptr = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool find_audio_driver(void)
|
bool audio_driver_find_driver(void)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
driver_ctx_info_t drv;
|
driver_ctx_info_t drv;
|
||||||
@ -776,7 +776,7 @@ static bool find_audio_driver(void)
|
|||||||
current_audio = (const audio_driver_t*)audio_driver_find_handle(0);
|
current_audio = (const audio_driver_t*)audio_driver_find_handle(0);
|
||||||
|
|
||||||
if (!current_audio)
|
if (!current_audio)
|
||||||
retro_fail(1, "find_audio_driver()");
|
retro_fail(1, "audio_driver_find()");
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
@ -872,6 +872,25 @@ bool audio_driver_set_callback(const void *data)
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool audio_driver_enable_callback(void)
|
||||||
|
{
|
||||||
|
if (!audio_driver_ctl(RARCH_AUDIO_CTL_HAS_CALLBACK, NULL))
|
||||||
|
return false;
|
||||||
|
if (audio_callback.set_state)
|
||||||
|
audio_callback.set_state(true);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool audio_driver_disable_callback(void)
|
||||||
|
{
|
||||||
|
if (!audio_driver_ctl(RARCH_AUDIO_CTL_HAS_CALLBACK, NULL))
|
||||||
|
return false;
|
||||||
|
|
||||||
|
if (audio_callback.set_state)
|
||||||
|
audio_callback.set_state(false);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
bool audio_driver_ctl(enum rarch_audio_ctl_state state, void *data)
|
bool audio_driver_ctl(enum rarch_audio_ctl_state state, void *data)
|
||||||
{
|
{
|
||||||
settings_t *settings = config_get_ptr();
|
settings_t *settings = config_get_ptr();
|
||||||
@ -886,19 +905,6 @@ bool audio_driver_ctl(enum rarch_audio_ctl_state state, void *data)
|
|||||||
case RARCH_AUDIO_CTL_DESTROY_DATA:
|
case RARCH_AUDIO_CTL_DESTROY_DATA:
|
||||||
audio_driver_context_audio_data = NULL;
|
audio_driver_context_audio_data = NULL;
|
||||||
break;
|
break;
|
||||||
case RARCH_AUDIO_CTL_SET_CALLBACK_ENABLE:
|
|
||||||
if (!audio_driver_ctl(RARCH_AUDIO_CTL_HAS_CALLBACK, NULL))
|
|
||||||
return false;
|
|
||||||
if (audio_callback.set_state)
|
|
||||||
audio_callback.set_state(true);
|
|
||||||
break;
|
|
||||||
case RARCH_AUDIO_CTL_SET_CALLBACK_DISABLE:
|
|
||||||
if (!audio_driver_ctl(RARCH_AUDIO_CTL_HAS_CALLBACK, NULL))
|
|
||||||
return false;
|
|
||||||
|
|
||||||
if (audio_callback.set_state)
|
|
||||||
audio_callback.set_state(false);
|
|
||||||
break;
|
|
||||||
case RARCH_AUDIO_CTL_HAS_CALLBACK:
|
case RARCH_AUDIO_CTL_HAS_CALLBACK:
|
||||||
return audio_callback.callback;
|
return audio_callback.callback;
|
||||||
case RARCH_AUDIO_CTL_CALLBACK:
|
case RARCH_AUDIO_CTL_CALLBACK:
|
||||||
@ -955,8 +961,6 @@ bool audio_driver_ctl(enum rarch_audio_ctl_state state, void *data)
|
|||||||
|| !audio_driver_context_audio_data)
|
|| !audio_driver_context_audio_data)
|
||||||
return false;
|
return false;
|
||||||
return current_audio->stop(audio_driver_context_audio_data);
|
return current_audio->stop(audio_driver_context_audio_data);
|
||||||
case RARCH_AUDIO_CTL_FIND_DRIVER:
|
|
||||||
return find_audio_driver();
|
|
||||||
case RARCH_AUDIO_CTL_SET_OWN_DRIVER:
|
case RARCH_AUDIO_CTL_SET_OWN_DRIVER:
|
||||||
audio_driver_data_own = true;
|
audio_driver_data_own = true;
|
||||||
break;
|
break;
|
||||||
|
@ -45,13 +45,10 @@ enum rarch_audio_ctl_state
|
|||||||
RARCH_AUDIO_CTL_DESTROY_DATA,
|
RARCH_AUDIO_CTL_DESTROY_DATA,
|
||||||
RARCH_AUDIO_CTL_START,
|
RARCH_AUDIO_CTL_START,
|
||||||
RARCH_AUDIO_CTL_STOP,
|
RARCH_AUDIO_CTL_STOP,
|
||||||
RARCH_AUDIO_CTL_FIND_DRIVER,
|
|
||||||
/* Sets audio monitor refresh rate to new value. */
|
/* Sets audio monitor refresh rate to new value. */
|
||||||
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_SET_CALLBACK_ENABLE,
|
|
||||||
RARCH_AUDIO_CTL_SET_CALLBACK_DISABLE,
|
|
||||||
RARCH_AUDIO_CTL_UNSET_CALLBACK,
|
RARCH_AUDIO_CTL_UNSET_CALLBACK,
|
||||||
RARCH_AUDIO_CTL_CALLBACK,
|
RARCH_AUDIO_CTL_CALLBACK,
|
||||||
RARCH_AUDIO_CTL_HAS_CALLBACK,
|
RARCH_AUDIO_CTL_HAS_CALLBACK,
|
||||||
@ -129,6 +126,10 @@ bool audio_driver_free_devices_list(void);
|
|||||||
|
|
||||||
bool audio_driver_new_devices_list(void);
|
bool audio_driver_new_devices_list(void);
|
||||||
|
|
||||||
|
bool audio_driver_enable_callback(void);
|
||||||
|
|
||||||
|
bool audio_driver_disable_callback(void);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* audio_driver_find_handle:
|
* audio_driver_find_handle:
|
||||||
* @index : index of driver to get handle to.
|
* @index : index of driver to get handle to.
|
||||||
@ -180,6 +181,8 @@ void audio_driver_setup_rewind(void);
|
|||||||
|
|
||||||
bool audio_driver_set_callback(const void *data);
|
bool audio_driver_set_callback(const void *data);
|
||||||
|
|
||||||
|
bool audio_driver_find_driver(void);
|
||||||
|
|
||||||
bool audio_driver_deinit(void);
|
bool audio_driver_deinit(void);
|
||||||
|
|
||||||
bool audio_driver_init(void);
|
bool audio_driver_init(void);
|
||||||
|
@ -190,7 +190,7 @@ static bool audio_thread_stop(void *data)
|
|||||||
audio_thread_block(thr);
|
audio_thread_block(thr);
|
||||||
thr->is_paused = true;
|
thr->is_paused = true;
|
||||||
|
|
||||||
audio_driver_ctl(RARCH_AUDIO_CTL_SET_CALLBACK_DISABLE, NULL);
|
audio_driver_disable_callback();
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -202,7 +202,7 @@ static bool audio_thread_start(void *data)
|
|||||||
if (!thr)
|
if (!thr)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
audio_driver_ctl(RARCH_AUDIO_CTL_SET_CALLBACK_ENABLE, NULL);
|
audio_driver_enable_callback();
|
||||||
|
|
||||||
thr->is_paused = false;
|
thr->is_paused = false;
|
||||||
audio_thread_unblock(thr);
|
audio_thread_unblock(thr);
|
||||||
|
2
driver.c
2
driver.c
@ -464,7 +464,7 @@ bool driver_ctl(enum driver_ctl_state state, void *data)
|
|||||||
return driver_ctl(RARCH_DRIVER_CTL_INIT, &flags);
|
return driver_ctl(RARCH_DRIVER_CTL_INIT, &flags);
|
||||||
}
|
}
|
||||||
case RARCH_DRIVER_CTL_INIT_PRE:
|
case RARCH_DRIVER_CTL_INIT_PRE:
|
||||||
audio_driver_ctl(RARCH_AUDIO_CTL_FIND_DRIVER, NULL);
|
audio_driver_find_driver();
|
||||||
video_driver_find_driver();
|
video_driver_find_driver();
|
||||||
input_driver_ctl(RARCH_INPUT_CTL_FIND_DRIVER, NULL);
|
input_driver_ctl(RARCH_INPUT_CTL_FIND_DRIVER, NULL);
|
||||||
camera_driver_ctl(RARCH_CAMERA_CTL_FIND_DRIVER, NULL);
|
camera_driver_ctl(RARCH_CAMERA_CTL_FIND_DRIVER, NULL);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user