diff --git a/audio/audio_driver.c b/audio/audio_driver.c index 4d5044d6a4..824fc36e75 100644 --- a/audio/audio_driver.c +++ b/audio/audio_driver.c @@ -491,18 +491,9 @@ static bool audio_driver_flush(const int16_t *data, size_t samples) const void *output_data = NULL; unsigned output_frames = 0; size_t output_size = sizeof(float); - driver_t *driver = driver_get_ptr(); settings_t *settings = config_get_ptr(); - if (driver->recording_data) - { - struct ffemu_audio_data ffemu_data = {0}; - ffemu_data.data = data; - ffemu_data.frames = samples / 2; - - if (driver->recording && driver->recording->push_audio) - driver->recording->push_audio(driver->recording_data, &ffemu_data); - } + recording_push_audio(data, samples); rarch_main_ctl(RARCH_MAIN_CTL_IS_PAUSED, &is_paused); diff --git a/record/record_driver.c b/record/record_driver.c index 05d35c23e2..396f63fe97 100644 --- a/record/record_driver.c +++ b/record/record_driver.c @@ -256,6 +256,21 @@ void recording_set_state(bool state) recording_enable = state; } +void recording_push_audio(const int16_t *data, size_t samples) +{ + struct ffemu_audio_data ffemu_data; + driver_t *driver = driver_get_ptr(); + + if (!driver->recording_data) + return; + + ffemu_data.data = data; + ffemu_data.frames = samples / 2; + + if (driver->recording && driver->recording->push_audio) + driver->recording->push_audio(driver->recording_data, &ffemu_data); +} + /** * recording_init: * diff --git a/record/record_driver.h b/record/record_driver.h index 2895bb1cd1..504df02f9a 100644 --- a/record/record_driver.h +++ b/record/record_driver.h @@ -164,6 +164,8 @@ bool *recording_is_enabled(void); void recording_set_state(bool state); +void recording_push_audio(const int16_t *data, size_t samples); + #ifdef __cplusplus } #endif