Fix audio renderer not resetting after cellAudioOutConfigure() was called

This commit is contained in:
capriots 2022-06-18 17:39:33 +02:00 committed by Megamouse
parent ebabdd37b4
commit 6bdf415adb
3 changed files with 4 additions and 6 deletions

View File

@ -527,13 +527,12 @@ namespace audio
.time_stretching_threshold = g_cfg.audio.time_stretching_threshold, .time_stretching_threshold = g_cfg.audio.time_stretching_threshold,
.convert_to_s16 = static_cast<bool>(g_cfg.audio.convert_to_s16), .convert_to_s16 = static_cast<bool>(g_cfg.audio.convert_to_s16),
.dump_to_file = static_cast<bool>(g_cfg.audio.dump_to_file), .dump_to_file = static_cast<bool>(g_cfg.audio.dump_to_file),
.format = g_cfg.audio.format,
.renderer = g_cfg.audio.renderer, .renderer = g_cfg.audio.renderer,
.provider = g_cfg.audio.provider .provider = g_cfg.audio.provider
}; };
} }
void configure_audio() void configure_audio(bool force_reset)
{ {
if (g_cfg.audio.provider != audio_provider::cell_audio) if (g_cfg.audio.provider != audio_provider::cell_audio)
{ {
@ -546,12 +545,12 @@ namespace audio
const auto new_raw = get_raw_config(); const auto new_raw = get_raw_config();
if (const auto raw = g_audio.cfg.raw; if (const auto raw = g_audio.cfg.raw;
force_reset ||
raw.desired_buffer_duration != new_raw.desired_buffer_duration || raw.desired_buffer_duration != new_raw.desired_buffer_duration ||
raw.buffering_enabled != new_raw.buffering_enabled || raw.buffering_enabled != new_raw.buffering_enabled ||
raw.time_stretching_threshold != new_raw.time_stretching_threshold || raw.time_stretching_threshold != new_raw.time_stretching_threshold ||
raw.enable_time_stretching != new_raw.enable_time_stretching || raw.enable_time_stretching != new_raw.enable_time_stretching ||
raw.convert_to_s16 != new_raw.convert_to_s16 || raw.convert_to_s16 != new_raw.convert_to_s16 ||
raw.format != new_raw.format ||
raw.renderer != new_raw.renderer || raw.renderer != new_raw.renderer ||
raw.dump_to_file != new_raw.dump_to_file) raw.dump_to_file != new_raw.dump_to_file)
{ {

View File

@ -201,7 +201,6 @@ struct cell_audio_config
s64 time_stretching_threshold = 0; s64 time_stretching_threshold = 0;
bool convert_to_s16 = false; bool convert_to_s16 = false;
bool dump_to_file = false; bool dump_to_file = false;
audio_format format = audio_format::stereo;
audio_renderer renderer = audio_renderer::null; audio_renderer renderer = audio_renderer::null;
audio_provider provider = audio_provider::none; audio_provider provider = audio_provider::none;
}; };
@ -405,5 +404,5 @@ using cell_audio = named_thread<cell_audio_thread>;
namespace audio namespace audio
{ {
cell_audio_config::raw_config get_raw_config(); cell_audio_config::raw_config get_raw_config();
void configure_audio(); void configure_audio(bool force_reset = false);
} }

View File

@ -415,7 +415,7 @@ error_code cellAudioOutConfigure(u32 audioOut, vm::ptr<CellAudioOutConfiguration
cfg.out.at(audioOut).state = CELL_AUDIO_OUT_OUTPUT_STATE_DISABLED; cfg.out.at(audioOut).state = CELL_AUDIO_OUT_OUTPUT_STATE_DISABLED;
} }
audio::configure_audio(); audio::configure_audio(true);
audio::configure_rsxaudio(); audio::configure_rsxaudio();
{ {