// SPDX-FileCopyrightText: Copyright 2018 yuzu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later #pragma once #include "audio_core/audio_out_manager.h" #include "audio_core/out/audio_out.h" #include "core/hle/service/cmif_types.h" #include "core/hle/service/service.h" namespace Service::Audio { using AudioDeviceName = AudioCore::Renderer::AudioDevice::AudioDeviceName; class IAudioOut; class IAudioOutManager final : public ServiceFramework { public: explicit IAudioOutManager(Core::System& system_); ~IAudioOutManager() override; private: Result ListAudioOuts(OutArray out_audio_outs, Out out_count); Result OpenAudioOut(Out out_parameter_internal, Out> out_audio_out, OutArray out_name, InArray name, AudioCore::AudioOut::AudioOutParameter parameter, InCopyHandle process_handle, ClientAppletResourceUserId aruid); Result ListAudioOutsAuto(OutArray out_audio_outs, Out out_count); Result OpenAudioOutAuto( Out out_parameter_internal, Out> out_audio_out, OutArray out_name, InArray name, AudioCore::AudioOut::AudioOutParameter parameter, InCopyHandle process_handle, ClientAppletResourceUserId aruid); std::unique_ptr impl; }; } // namespace Service::Audio