From 1fe88221d174496e8181e228d1ef0e19233d256e Mon Sep 17 00:00:00 2001 From: lizzie Date: Wed, 23 Sep 2026 11:51:29 +0000 Subject: [PATCH] 2026-09-23 11:51:29 Signed-off-by: lizzie --- src/audio_core/renderer/audio_device.cpp | 31 +++++++++------------ src/audio_core/renderer/audio_device.h | 9 +++--- src/audio_core/renderer/audio_renderer.cpp | 4 +-- src/audio_core/renderer/audio_renderer.h | 4 --- src/audio_core/renderer/system.h | 3 ++ src/audio_core/renderer/system_manager.cpp | 2 +- src/audio_core/renderer/system_manager.h | 2 +- src/core/hle/service/audio/audio_device.cpp | 4 +-- 8 files changed, 26 insertions(+), 33 deletions(-) diff --git a/src/audio_core/renderer/audio_device.cpp b/src/audio_core/renderer/audio_device.cpp index b5092f023a..4e9e8e8c37 100644 --- a/src/audio_core/renderer/audio_device.cpp +++ b/src/audio_core/renderer/audio_device.cpp @@ -1,4 +1,4 @@ -// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project +// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project // SPDX-License-Identifier: GPL-3.0-or-later // SPDX-FileCopyrightText: Copyright 2022 yuzu Emulator Project @@ -34,42 +34,37 @@ constexpr std::array output_device_names{ AudioDevice::AudioDeviceName{"AudioExternalOutput"}, }; -AudioDevice::AudioDevice(Core::System& system, const u64 applet_resource_user_id_, - const u32 revision) - : output_sink{system.AudioCore().GetOutputSink()}, - applet_resource_user_id{applet_resource_user_id_}, user_revision{revision} {} +AudioDevice::AudioDevice(Core::System& system, const u64 applet_resource_user_id_, const u32 revision) + : applet_resource_user_id{applet_resource_user_id_} + , user_revision{revision} +{} u32 AudioDevice::ListAudioDeviceName(std::span out_buffer) const { std::span names{}; - if (CheckFeatureSupported(SupportTags::AudioUsbDeviceOutput, user_revision)) { names = usb_device_names; } else { names = device_names; } - - const u32 out_count{static_cast((std::min)(out_buffer.size(), names.size()))}; - for (u32 i = 0; i < out_count; i++) { + const u32 out_count = u32((std::min)(out_buffer.size(), names.size())); + for (u32 i = 0; i < out_count; i++) out_buffer[i] = names[i]; - } return out_count; } u32 AudioDevice::ListAudioOutputDeviceName(std::span out_buffer) const { - const u32 out_count{static_cast((std::min)(out_buffer.size(), output_device_names.size()))}; - - for (u32 i = 0; i < out_count; i++) { + const u32 out_count = u32((std::min)(out_buffer.size(), output_device_names.size())); + for (u32 i = 0; i < out_count; i++) out_buffer[i] = output_device_names[i]; - } return out_count; } -void AudioDevice::SetDeviceVolumes(const f32 volume) { - output_sink.SetDeviceVolume(volume); +void AudioDevice::SetDeviceVolumes(Core::System& system, const f32 volume) { + system.AudioCore().GetOutputSink().SetDeviceVolume(volume); } -f32 AudioDevice::GetDeviceVolume([[maybe_unused]] std::string_view name) const { - return output_sink.GetDeviceVolume(); +f32 AudioDevice::GetDeviceVolume(Core::System& system, [[maybe_unused]] std::string_view name) const { + return system.AudioCore().GetOutputSink().GetDeviceVolume(); } } // namespace AudioCore::Renderer diff --git a/src/audio_core/renderer/audio_device.h b/src/audio_core/renderer/audio_device.h index 4242dad305..cd09fe08a8 100644 --- a/src/audio_core/renderer/audio_device.h +++ b/src/audio_core/renderer/audio_device.h @@ -1,3 +1,6 @@ +// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project +// SPDX-License-Identifier: GPL-3.0-or-later + // SPDX-FileCopyrightText: Copyright 2022 yuzu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later @@ -54,7 +57,7 @@ public: * * @param volume - Volume to set. */ - void SetDeviceVolumes(f32 volume); + void SetDeviceVolumes(Core::System& system, f32 volume); /** * Get the volume for a given device name. @@ -63,11 +66,9 @@ public: * @param name - Name of the device to check. Unused. * @return Volume of the device. */ - f32 GetDeviceVolume(std::string_view name) const; + f32 GetDeviceVolume(Core::System& system, std::string_view name) const; private: - /// Backend output sink for the device - Sink::Sink& output_sink; /// Resource id this device is used for const u64 applet_resource_user_id; /// User audio renderer revision diff --git a/src/audio_core/renderer/audio_renderer.cpp b/src/audio_core/renderer/audio_renderer.cpp index e5c541f5de..3fed6bd7ad 100644 --- a/src/audio_core/renderer/audio_renderer.cpp +++ b/src/audio_core/renderer/audio_renderer.cpp @@ -16,7 +16,7 @@ namespace AudioCore::Renderer { Renderer::Renderer(Core::System& system_, Manager& manager_, Kernel::KEvent* rendered_event) - : system{system_}, manager{manager_} + : manager{manager_} , audio_system{system_, rendered_event} {} @@ -28,8 +28,6 @@ Result Renderer::Initialize(const AudioRendererParameterInternal& params, Kernel } system_registered = true; } - - initialized = true; audio_system.Initialize(params, transfer_memory, transfer_memory_size, process_handle, applet_resource_user_id, session_id); return ResultSuccess; } diff --git a/src/audio_core/renderer/audio_renderer.h b/src/audio_core/renderer/audio_renderer.h index abac8dfe1b..7c285c7b18 100644 --- a/src/audio_core/renderer/audio_renderer.h +++ b/src/audio_core/renderer/audio_renderer.h @@ -86,12 +86,8 @@ public: std::span output); private: - /// System core - Core::System& system; /// Manager this renderer is registered with Manager& manager; - /// Is the audio renderer initialized? - bool initialized{}; /// Is the system registered with the manager? bool system_registered{}; /// Audio render system, main driver of audio rendering diff --git a/src/audio_core/renderer/system.h b/src/audio_core/renderer/system.h index 8c78383ea4..e5327f40af 100644 --- a/src/audio_core/renderer/system.h +++ b/src/audio_core/renderer/system.h @@ -1,3 +1,6 @@ +// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project +// SPDX-License-Identifier: GPL-3.0-or-later + // SPDX-FileCopyrightText: Copyright 2022 yuzu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later diff --git a/src/audio_core/renderer/system_manager.cpp b/src/audio_core/renderer/system_manager.cpp index dce118e3a0..210c541052 100644 --- a/src/audio_core/renderer/system_manager.cpp +++ b/src/audio_core/renderer/system_manager.cpp @@ -1,4 +1,4 @@ -// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project +// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project // SPDX-License-Identifier: GPL-3.0-or-later // SPDX-FileCopyrightText: Copyright 2022 yuzu Emulator Project diff --git a/src/audio_core/renderer/system_manager.h b/src/audio_core/renderer/system_manager.h index 38cf12d899..2cb1558c27 100644 --- a/src/audio_core/renderer/system_manager.h +++ b/src/audio_core/renderer/system_manager.h @@ -1,4 +1,4 @@ -// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project +// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project // SPDX-License-Identifier: GPL-3.0-or-later // SPDX-FileCopyrightText: Copyright 2022 yuzu Emulator Project diff --git a/src/core/hle/service/audio/audio_device.cpp b/src/core/hle/service/audio/audio_device.cpp index e9f7e074a1..487bd49636 100644 --- a/src/core/hle/service/audio/audio_device.cpp +++ b/src/core/hle/service/audio/audio_device.cpp @@ -97,7 +97,7 @@ Result IAudioDevice::SetAudioDeviceOutputVolumeAuto( LOG_DEBUG(Service_Audio, "called. name={}, volume={}", device_name, volume); if (device_name == "AudioTvOutput") { - impl->SetDeviceVolumes(volume); + impl->SetDeviceVolumes(system, volume); } R_SUCCEED(); @@ -112,7 +112,7 @@ Result IAudioDevice::GetAudioDeviceOutputVolumeAuto( *out_volume = 1.0f; if (device_name == "AudioTvOutput") { - *out_volume = impl->GetDeviceVolume(device_name); + *out_volume = impl->GetDeviceVolume(system, device_name); } R_SUCCEED();