mirror of
https://github.com/libretro/RetroArch
synced 2025-04-09 21:45:45 +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
|
#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)
|
bool audio_driver_start(void)
|
||||||
@ -857,3 +849,20 @@ void audio_driver_callback_set_state(bool state)
|
|||||||
audio_data.audio_callback.set_state(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);
|
size_t (*buffer_size)(void *data);
|
||||||
} audio_driver_t;
|
} 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:
|
* audio_driver_find_handle:
|
||||||
* @index : index of driver to get handle to.
|
* @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);
|
void audio_driver_readjust_input_rate(void);
|
||||||
|
|
||||||
bool audio_driver_alive(void);
|
|
||||||
|
|
||||||
bool audio_driver_start(void);
|
bool audio_driver_start(void);
|
||||||
|
|
||||||
bool audio_driver_stop(void);
|
bool audio_driver_stop(void);
|
||||||
|
@ -1303,14 +1303,14 @@ bool event_command(enum event_command cmd)
|
|||||||
case EVENT_CMD_AUDIO_STOP:
|
case EVENT_CMD_AUDIO_STOP:
|
||||||
if (!driver->audio_data)
|
if (!driver->audio_data)
|
||||||
return false;
|
return false;
|
||||||
if (!audio_driver_alive())
|
if (!audio_driver_ctl(RARCH_AUDIO_CTL_ALIVE, NULL))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
if (!audio_driver_stop())
|
if (!audio_driver_stop())
|
||||||
return false;
|
return false;
|
||||||
break;
|
break;
|
||||||
case EVENT_CMD_AUDIO_START:
|
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;
|
return false;
|
||||||
|
|
||||||
if (!settings->audio.mute_enable && !audio_driver_start())
|
if (!settings->audio.mute_enable && !audio_driver_start())
|
||||||
|
Loading…
x
Reference in New Issue
Block a user