mirror of
https://github.com/libretro/RetroArch
synced 2025-04-16 08:43:10 +00:00
Update
This commit is contained in:
parent
f6acc190f6
commit
6b854f8766
38
retroarch.c
38
retroarch.c
@ -28070,13 +28070,12 @@ error:
|
|||||||
**/
|
**/
|
||||||
static void audio_driver_flush(
|
static void audio_driver_flush(
|
||||||
struct rarch_state *p_rarch,
|
struct rarch_state *p_rarch,
|
||||||
|
float slowmotion_ratio,
|
||||||
|
bool audio_fastforward_mute,
|
||||||
const int16_t *data, size_t samples,
|
const int16_t *data, size_t samples,
|
||||||
bool is_slowmotion, bool is_fastmotion)
|
bool is_slowmotion, bool is_fastmotion)
|
||||||
{
|
{
|
||||||
struct resampler_data src_data;
|
struct resampler_data src_data;
|
||||||
settings_t *settings = p_rarch->configuration_settings;
|
|
||||||
float slowmotion_ratio = settings->floats.slowmotion_ratio;
|
|
||||||
bool audio_fastforward_mute = settings->bools.audio_fastforward_mute;
|
|
||||||
float audio_volume_gain = (p_rarch->audio_driver_mute_enable ||
|
float audio_volume_gain = (p_rarch->audio_driver_mute_enable ||
|
||||||
(audio_fastforward_mute && is_fastmotion)) ?
|
(audio_fastforward_mute && is_fastmotion)) ?
|
||||||
0.0f : p_rarch->audio_driver_volume_gain;
|
0.0f : p_rarch->audio_driver_volume_gain;
|
||||||
@ -28198,14 +28197,14 @@ static void audio_driver_flush(
|
|||||||
unsigned output_frames = (unsigned)src_data.output_frames;
|
unsigned output_frames = (unsigned)src_data.output_frames;
|
||||||
|
|
||||||
if (p_rarch->audio_driver_use_float)
|
if (p_rarch->audio_driver_use_float)
|
||||||
output_frames *= sizeof(float);
|
output_frames *= sizeof(float);
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
convert_float_to_s16(p_rarch->audio_driver_output_samples_conv_buf,
|
convert_float_to_s16(p_rarch->audio_driver_output_samples_conv_buf,
|
||||||
(const float*)output_data, output_frames * 2);
|
(const float*)output_data, output_frames * 2);
|
||||||
|
|
||||||
output_data = p_rarch->audio_driver_output_samples_conv_buf;
|
output_data = p_rarch->audio_driver_output_samples_conv_buf;
|
||||||
output_frames *= sizeof(int16_t);
|
output_frames *= sizeof(int16_t);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (p_rarch->current_audio->write(
|
if (p_rarch->current_audio->write(
|
||||||
@ -28252,6 +28251,8 @@ static void audio_driver_sample(int16_t left, int16_t right)
|
|||||||
!p_rarch->audio_driver_output_samples_buf))
|
!p_rarch->audio_driver_output_samples_buf))
|
||||||
audio_driver_flush(
|
audio_driver_flush(
|
||||||
p_rarch,
|
p_rarch,
|
||||||
|
p_rarch->configuration_settings->floats.slowmotion_ratio,
|
||||||
|
p_rarch->configuration_settings->bools.audio_fastforward_mute,
|
||||||
p_rarch->audio_driver_output_samples_conv_buf,
|
p_rarch->audio_driver_output_samples_conv_buf,
|
||||||
p_rarch->audio_driver_data_ptr,
|
p_rarch->audio_driver_data_ptr,
|
||||||
p_rarch->runloop_slowmotion,
|
p_rarch->runloop_slowmotion,
|
||||||
@ -28292,6 +28293,8 @@ static void audio_driver_menu_sample(void)
|
|||||||
if (check_flush)
|
if (check_flush)
|
||||||
audio_driver_flush(
|
audio_driver_flush(
|
||||||
p_rarch,
|
p_rarch,
|
||||||
|
p_rarch->configuration_settings->floats.slowmotion_ratio,
|
||||||
|
p_rarch->configuration_settings->bools.audio_fastforward_mute,
|
||||||
samples_buf,
|
samples_buf,
|
||||||
1024,
|
1024,
|
||||||
p_rarch->runloop_slowmotion,
|
p_rarch->runloop_slowmotion,
|
||||||
@ -28313,6 +28316,8 @@ static void audio_driver_menu_sample(void)
|
|||||||
if (check_flush)
|
if (check_flush)
|
||||||
audio_driver_flush(
|
audio_driver_flush(
|
||||||
p_rarch,
|
p_rarch,
|
||||||
|
p_rarch->configuration_settings->floats.slowmotion_ratio,
|
||||||
|
p_rarch->configuration_settings->bools.audio_fastforward_mute,
|
||||||
samples_buf,
|
samples_buf,
|
||||||
sample_count,
|
sample_count,
|
||||||
p_rarch->runloop_slowmotion,
|
p_rarch->runloop_slowmotion,
|
||||||
@ -28359,6 +28364,8 @@ static size_t audio_driver_sample_batch(const int16_t *data, size_t frames)
|
|||||||
!p_rarch->audio_driver_output_samples_buf))
|
!p_rarch->audio_driver_output_samples_buf))
|
||||||
audio_driver_flush(
|
audio_driver_flush(
|
||||||
p_rarch,
|
p_rarch,
|
||||||
|
p_rarch->configuration_settings->floats.slowmotion_ratio,
|
||||||
|
p_rarch->configuration_settings->bools.audio_fastforward_mute,
|
||||||
data,
|
data,
|
||||||
frames << 1,
|
frames << 1,
|
||||||
p_rarch->runloop_slowmotion,
|
p_rarch->runloop_slowmotion,
|
||||||
@ -28425,14 +28432,15 @@ void audio_driver_dsp_filter_free(void)
|
|||||||
|
|
||||||
bool audio_driver_dsp_filter_init(const char *device)
|
bool audio_driver_dsp_filter_init(const char *device)
|
||||||
{
|
{
|
||||||
struct rarch_state *p_rarch = &rarch_st;
|
retro_dsp_filter_t *audio_driver_dsp = NULL;
|
||||||
struct string_list *plugs = NULL;
|
struct rarch_state *p_rarch = &rarch_st;
|
||||||
|
struct string_list *plugs = NULL;
|
||||||
#if defined(HAVE_DYLIB) && !defined(HAVE_FILTERS_BUILTIN)
|
#if defined(HAVE_DYLIB) && !defined(HAVE_FILTERS_BUILTIN)
|
||||||
char *basedir = (char*)
|
char *basedir = (char*)
|
||||||
calloc(PATH_MAX_LENGTH, sizeof(*basedir));
|
calloc(PATH_MAX_LENGTH, sizeof(*basedir));
|
||||||
char *ext_name = (char*)
|
char *ext_name = (char*)
|
||||||
calloc(PATH_MAX_LENGTH, sizeof(*ext_name));
|
calloc(PATH_MAX_LENGTH, sizeof(*ext_name));
|
||||||
size_t str_size = PATH_MAX_LENGTH * sizeof(char);
|
size_t str_size = PATH_MAX_LENGTH * sizeof(char);
|
||||||
|
|
||||||
fill_pathname_basedir(basedir, device, str_size);
|
fill_pathname_basedir(basedir, device, str_size);
|
||||||
|
|
||||||
@ -28449,11 +28457,13 @@ bool audio_driver_dsp_filter_init(const char *device)
|
|||||||
if (!plugs)
|
if (!plugs)
|
||||||
return false;
|
return false;
|
||||||
#endif
|
#endif
|
||||||
p_rarch->audio_driver_dsp = retro_dsp_filter_new(
|
audio_driver_dsp = retro_dsp_filter_new(
|
||||||
device, plugs, p_rarch->audio_driver_input);
|
device, plugs, p_rarch->audio_driver_input);
|
||||||
if (!p_rarch->audio_driver_dsp)
|
if (!audio_driver_dsp)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
p_rarch->audio_driver_dsp = audio_driver_dsp;
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -29231,6 +29241,8 @@ void audio_driver_frame_is_reverse(void)
|
|||||||
!p_rarch->audio_driver_output_samples_buf))
|
!p_rarch->audio_driver_output_samples_buf))
|
||||||
audio_driver_flush(
|
audio_driver_flush(
|
||||||
p_rarch,
|
p_rarch,
|
||||||
|
p_rarch->configuration_settings->floats.slowmotion_ratio,
|
||||||
|
p_rarch->configuration_settings->bools.audio_fastforward_mute,
|
||||||
p_rarch->audio_driver_rewind_buf +
|
p_rarch->audio_driver_rewind_buf +
|
||||||
p_rarch->audio_driver_rewind_ptr,
|
p_rarch->audio_driver_rewind_ptr,
|
||||||
p_rarch->audio_driver_rewind_size -
|
p_rarch->audio_driver_rewind_size -
|
||||||
|
Loading…
x
Reference in New Issue
Block a user