diff --git a/rpcs3/Emu/Audio/AudioBackend.h b/rpcs3/Emu/Audio/AudioBackend.h index 0cffbf4f24..f71dc871a2 100644 --- a/rpcs3/Emu/Audio/AudioBackend.h +++ b/rpcs3/Emu/Audio/AudioBackend.h @@ -51,7 +51,7 @@ public: /* * Pure virtual methods */ - virtual const char* GetName() const = 0; + virtual std::string_view GetName() const = 0; virtual u32 GetCapabilities() const = 0; virtual void Open(AudioFreq freq, AudioSampleSize sample_size, AudioChannelCnt ch_cnt) = 0; diff --git a/rpcs3/Emu/Audio/Cubeb/CubebBackend.h b/rpcs3/Emu/Audio/Cubeb/CubebBackend.h index c98e36ba19..5b657d987d 100644 --- a/rpcs3/Emu/Audio/Cubeb/CubebBackend.h +++ b/rpcs3/Emu/Audio/Cubeb/CubebBackend.h @@ -16,7 +16,7 @@ public: CubebBackend(const CubebBackend&) = delete; CubebBackend& operator=(const CubebBackend&) = delete; - const char* GetName() const override { return "Cubeb"; } + std::string_view GetName() const override { return "Cubeb"sv; } static const u32 capabilities = 0; u32 GetCapabilities() const override { return capabilities; } diff --git a/rpcs3/Emu/Audio/FAudio/FAudioBackend.h b/rpcs3/Emu/Audio/FAudio/FAudioBackend.h index 0c586cde2c..7490b22f19 100644 --- a/rpcs3/Emu/Audio/FAudio/FAudioBackend.h +++ b/rpcs3/Emu/Audio/FAudio/FAudioBackend.h @@ -19,7 +19,7 @@ public: FAudioBackend(const FAudioBackend&) = delete; FAudioBackend& operator=(const FAudioBackend&) = delete; - const char* GetName() const override { return "FAudio"; } + std::string_view GetName() const override { return "FAudio"sv; } static const u32 capabilities = SET_FREQUENCY_RATIO; u32 GetCapabilities() const override { return capabilities; } diff --git a/rpcs3/Emu/Audio/Null/NullAudioBackend.h b/rpcs3/Emu/Audio/Null/NullAudioBackend.h index d894fb1b42..97d3f4e963 100644 --- a/rpcs3/Emu/Audio/Null/NullAudioBackend.h +++ b/rpcs3/Emu/Audio/Null/NullAudioBackend.h @@ -8,7 +8,7 @@ public: NullAudioBackend() {} ~NullAudioBackend() {} - const char* GetName() const override { return "Null"; } + std::string_view GetName() const override { return "Null"sv; } static const u32 capabilities = 0; u32 GetCapabilities() const override { return capabilities; } diff --git a/rpcs3/Emu/Audio/XAudio2/XAudio2Backend.h b/rpcs3/Emu/Audio/XAudio2/XAudio2Backend.h index 6245a8e928..f3c4d91171 100644 --- a/rpcs3/Emu/Audio/XAudio2/XAudio2Backend.h +++ b/rpcs3/Emu/Audio/XAudio2/XAudio2Backend.h @@ -21,7 +21,7 @@ public: XAudio2Backend(const XAudio2Backend&) = delete; XAudio2Backend& operator=(const XAudio2Backend&) = delete; - const char* GetName() const override { return "XAudio2"; } + std::string_view GetName() const override { return "XAudio2"sv; } static const u32 capabilities = SET_FREQUENCY_RATIO; u32 GetCapabilities() const override { return capabilities; } diff --git a/rpcs3/Emu/Cell/Modules/cellAudio.cpp b/rpcs3/Emu/Cell/Modules/cellAudio.cpp index 8e1576a6e1..338d83bd32 100644 --- a/rpcs3/Emu/Cell/Modules/cellAudio.cpp +++ b/rpcs3/Emu/Cell/Modules/cellAudio.cpp @@ -92,7 +92,7 @@ void cell_audio_config::reset(bool backend_changed) audio_buffer_size = audio_buffer_length * audio_sample_size; desired_buffer_duration = raw.desired_buffer_duration * 1000llu; - buffering_enabled = raw.buffering_enabled; + buffering_enabled = raw.buffering_enabled && raw.renderer != audio_renderer::null; minimum_block_period = audio_block_period / 2; maximum_block_period = (6 * audio_block_period) / 5; @@ -598,15 +598,13 @@ void cell_audio_thread::reset_counters() m_backend_failed = false; } -void cell_audio_thread::operator()() +cell_audio_thread::cell_audio_thread() { if (cfg.raw.provider != audio_provider::cell_audio) { return; } - thread_ctrl::scoped_priority high_prio(+1); - // Init audio config cfg.reset(); @@ -615,6 +613,16 @@ void cell_audio_thread::operator()() // Initialize loop variables reset_counters(); +} + +void cell_audio_thread::operator()() +{ + if (cfg.raw.provider != audio_provider::cell_audio) + { + return; + } + + thread_ctrl::scoped_priority high_prio(+1); u32 untouched_expected = 0; diff --git a/rpcs3/Emu/Cell/Modules/cellAudio.h b/rpcs3/Emu/Cell/Modules/cellAudio.h index e41d430a99..8c62867783 100644 --- a/rpcs3/Emu/Cell/Modules/cellAudio.h +++ b/rpcs3/Emu/Cell/Modules/cellAudio.h @@ -360,7 +360,7 @@ public: return backend->Operational(); } - const char* get_backend_name() const + std::string_view get_backend_name() const { return backend->GetName(); } @@ -415,11 +415,9 @@ public: f32 m_average_playtime = 0.0f; bool m_backend_failed = false; - void operator()(); + cell_audio_thread(); - cell_audio_thread() - { - } + void operator()(); audio_port* open_port() {