diff --git a/audio/audio_driver.c b/audio/audio_driver.c index c2d0750ec8..cbcb0b9538 100644 --- a/audio/audio_driver.c +++ b/audio/audio_driver.c @@ -528,3 +528,11 @@ void audio_driver_set_nonblock_state(bool toggle) if (driver && driver->audio && driver->audio->set_nonblock_state) driver->audio->set_nonblock_state(driver->audio_data, toggle); } + +ssize_t audio_driver_write(const void *buf, size_t size) +{ + driver_t *driver = driver_get_ptr(); + if (driver && driver->audio && driver->audio->write) + return driver->audio->write(driver->audio_data, buf, size); + return 0; +} diff --git a/audio/audio_driver.h b/audio/audio_driver.h index 1fcdc45a8d..14ac349feb 100644 --- a/audio/audio_driver.h +++ b/audio/audio_driver.h @@ -142,6 +142,8 @@ void uninit_audio(void); void init_audio(void); +ssize_t audio_driver_write(const void *buf, size_t size); + #ifdef __cplusplus } #endif diff --git a/libretro_version_1.c b/libretro_version_1.c index 942b7aa3be..f7d65913ac 100644 --- a/libretro_version_1.c +++ b/libretro_version_1.c @@ -263,8 +263,7 @@ bool retro_flush_audio(const int16_t *data, size_t samples) output_size = sizeof(int16_t); } - if (driver->audio->write(driver->audio_data, output_data, - output_frames * output_size * 2) < 0) + if (audio_driver_write(output_data, output_frames * output_size * 2) < 0) { RARCH_ERR(RETRO_LOG_AUDIO_WRITE_FAILED);