(audio_driver.c) Cleanups

This commit is contained in:
twinaphex 2015-04-11 06:48:30 +02:00
parent 3d1679f027
commit 9d607cbc56
1 changed files with 29 additions and 19 deletions

View File

@ -86,6 +86,13 @@ static const audio_driver_t *audio_drivers[] = {
NULL, NULL,
}; };
static const audio_driver_t * audio_get_ptr(const driver_t *driver)
{
if (driver->audio)
return driver->audio;
return NULL;
}
/** /**
* compute_audio_buffer_statistics: * compute_audio_buffer_statistics:
* *
@ -464,8 +471,10 @@ bool audio_driver_mute_toggle(void)
static int audio_driver_write_avail(void) static int audio_driver_write_avail(void)
{ {
driver_t *driver = driver_get_ptr(); driver_t *driver = driver_get_ptr();
if (driver && driver->audio) const audio_driver_t *audio = audio_get_ptr(driver);
return driver->audio->write_avail(driver->audio_data);
if (audio->write_avail)
return audio->write_avail(driver->audio_data);
return 0; return 0;
} }
@ -504,28 +513,29 @@ void audio_driver_readjust_input_rate(void)
bool audio_driver_alive(void) bool audio_driver_alive(void)
{ {
driver_t *driver = driver_get_ptr(); driver_t *driver = driver_get_ptr();
if (driver && driver->audio) const audio_driver_t *audio = audio_get_ptr(driver);
return driver->audio->alive(driver->audio_data);
return false; return audio->alive(driver->audio_data);
} }
bool audio_driver_start(void) bool audio_driver_start(void)
{ {
driver_t *driver = driver_get_ptr(); driver_t *driver = driver_get_ptr();
if (driver const audio_driver_t *audio = audio_get_ptr(driver);
&& driver->audio
&& driver->audio->start) if (audio->start)
return driver->audio->start(driver->audio_data); return audio->start(driver->audio_data);
return false; return false;
} }
bool audio_driver_stop(void) bool audio_driver_stop(void)
{ {
driver_t *driver = driver_get_ptr(); driver_t *driver = driver_get_ptr();
if (driver const audio_driver_t *audio = audio_get_ptr(driver);
&& driver->audio
&& driver->audio->stop) if (audio->stop)
return driver->audio->stop(driver->audio_data); return audio->stop(driver->audio_data);
return false; return false;
} }
@ -538,8 +548,8 @@ void audio_driver_set_nonblock_state(bool toggle)
ssize_t audio_driver_write(const void *buf, size_t size) ssize_t audio_driver_write(const void *buf, size_t size)
{ {
driver_t *driver = driver_get_ptr(); driver_t *driver = driver_get_ptr();
if (driver && driver->audio) const audio_driver_t *audio = audio_get_ptr(driver);
return driver->audio->write(driver->audio_data, buf, size);
return 0; return audio->write(driver->audio_data, buf, size);
} }