mirror of
https://github.com/libretro/RetroArch
synced 2025-03-24 04:44:02 +00:00
Create audio_driver_ctl
This commit is contained in:
parent
2f8f030f85
commit
66d853358a
@ -503,14 +503,6 @@ void audio_driver_readjust_input_rate(void)
|
||||
#endif
|
||||
}
|
||||
|
||||
bool audio_driver_alive(void)
|
||||
{
|
||||
driver_t *driver = driver_get_ptr();
|
||||
const audio_driver_t *audio = driver ?
|
||||
(const audio_driver_t*)driver->audio : NULL;
|
||||
|
||||
return audio->alive(driver->audio_data);
|
||||
}
|
||||
|
||||
|
||||
bool audio_driver_start(void)
|
||||
@ -857,3 +849,20 @@ void audio_driver_callback_set_state(bool state)
|
||||
audio_data.audio_callback.set_state(state);
|
||||
}
|
||||
}
|
||||
|
||||
bool audio_driver_ctl(enum rarch_audio_ctl_state state, void *data)
|
||||
{
|
||||
driver_t *driver = driver_get_ptr();
|
||||
const audio_driver_t *audio = driver ?
|
||||
(const audio_driver_t*)driver->audio : NULL;
|
||||
|
||||
switch (state)
|
||||
{
|
||||
case RARCH_AUDIO_CTL_NONE:
|
||||
break;
|
||||
case RARCH_AUDIO_CTL_ALIVE:
|
||||
return audio->alive(driver->audio_data);
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
@ -72,6 +72,14 @@ typedef struct audio_driver
|
||||
size_t (*buffer_size)(void *data);
|
||||
} audio_driver_t;
|
||||
|
||||
enum rarch_audio_ctl_state
|
||||
{
|
||||
RARCH_AUDIO_CTL_NONE = 0,
|
||||
RARCH_AUDIO_CTL_ALIVE
|
||||
};
|
||||
|
||||
bool audio_driver_ctl(enum rarch_audio_ctl_state state, void *data);
|
||||
|
||||
/**
|
||||
* audio_driver_find_handle:
|
||||
* @index : index of driver to get handle to.
|
||||
@ -99,8 +107,6 @@ bool audio_driver_mute_toggle(void);
|
||||
*/
|
||||
void audio_driver_readjust_input_rate(void);
|
||||
|
||||
bool audio_driver_alive(void);
|
||||
|
||||
bool audio_driver_start(void);
|
||||
|
||||
bool audio_driver_stop(void);
|
||||
|
@ -1303,14 +1303,14 @@ bool event_command(enum event_command cmd)
|
||||
case EVENT_CMD_AUDIO_STOP:
|
||||
if (!driver->audio_data)
|
||||
return false;
|
||||
if (!audio_driver_alive())
|
||||
if (!audio_driver_ctl(RARCH_AUDIO_CTL_ALIVE, NULL))
|
||||
return false;
|
||||
|
||||
if (!audio_driver_stop())
|
||||
return false;
|
||||
break;
|
||||
case EVENT_CMD_AUDIO_START:
|
||||
if (!driver->audio_data || audio_driver_alive())
|
||||
if (!driver->audio_data || audio_driver_ctl(RARCH_AUDIO_CTL_ALIVE, NULL))
|
||||
return false;
|
||||
|
||||
if (!settings->audio.mute_enable && !audio_driver_start())
|
||||
|
Loading…
x
Reference in New Issue
Block a user