Create more audio wrapper functions

This commit is contained in:
twinaphex 2015-03-23 02:44:49 +01:00
parent 4a3507adc1
commit dc46785c14
4 changed files with 34 additions and 7 deletions

View File

@ -505,3 +505,26 @@ bool audio_driver_alive(void)
return driver->audio->alive(driver->audio_data);
return false;
}
bool audio_driver_start(void)
{
driver_t *driver = driver_get_ptr();
if (driver && driver->audio && driver->audio->start)
return driver->audio->start(driver->audio_data);
return false;
}
bool audio_driver_stop(void)
{
driver_t *driver = driver_get_ptr();
if (driver && driver->audio && driver->audio->stop)
return driver->audio->stop(driver->audio_data);
return false;
}
void audio_driver_set_nonblock_state(bool toggle)
{
driver_t *driver = driver_get_ptr();
if (driver && driver->audio && driver->audio->set_nonblock_state)
driver->audio->set_nonblock_state(driver->audio_data, toggle);
}

View File

@ -121,6 +121,12 @@ void audio_driver_readjust_input_rate(void);
bool audio_driver_alive(void);
bool audio_driver_start(void);
bool audio_driver_stop(void);
void audio_driver_set_nonblock_state(bool toggle);
/**
* config_get_audio_driver_options:
*

View File

@ -292,8 +292,7 @@ void driver_set_nonblock_state(bool enable)
}
if (driver->audio_active && driver->audio_data)
driver->audio->set_nonblock_state(driver->audio_data,
settings->audio.sync ? enable : true);
audio_driver_set_nonblock_state(settings->audio.sync ? enable : true);
global->audio_data.chunk_size = enable ?
global->audio_data.nonblock_chunk_size :

View File

@ -2471,14 +2471,14 @@ bool rarch_main_command(unsigned cmd)
if (!audio_driver_alive())
return false;
driver->audio->stop(driver->audio_data);
if (!audio_driver_stop())
return false;
break;
case RARCH_CMD_AUDIO_START:
if (!driver->audio_data || audio_driver_alive())
return false;
if (!settings->audio.mute_enable
&& !driver->audio->start(driver->audio_data))
if (!settings->audio.mute_enable && !audio_driver_start())
{
RARCH_ERR("Failed to start audio driver. Will continue without audio.\n");
driver->audio_active = false;
@ -2619,8 +2619,7 @@ bool rarch_main_command(unsigned cmd)
case RARCH_CMD_AUDIO_SET_NONBLOCKING_STATE:
boolean = true; /* fall-through */
case RARCH_CMD_AUDIO_SET_BLOCKING_STATE:
if (driver->audio && driver->audio->set_nonblock_state)
driver->audio->set_nonblock_state(driver->audio_data, boolean);
audio_driver_set_nonblock_state(boolean);
break;
case RARCH_CMD_OVERLAY_SET_SCALE_FACTOR:
#ifdef HAVE_OVERLAY