mirror of
https://github.com/RPCS3/rpcs3.git
synced 2025-02-11 06:40:39 +00:00
Fix audio renderer not resetting after cellAudioOutConfigure() was called
This commit is contained in:
parent
ebabdd37b4
commit
6bdf415adb
@ -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)
|
||||||
{
|
{
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
|
@ -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();
|
||||||
|
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user