1 // Copyright 2018 yuzu emulator team 2 // Licensed under GPLv2 or any later version 3 // Refer to the license.txt file included. 4 5 #pragma once 6 7 #include "core/hle/service/service.h" 8 9 namespace Core { 10 class System; 11 } 12 13 namespace Kernel { 14 class HLERequestContext; 15 } 16 17 namespace Service::Audio { 18 19 class AudRenU final : public ServiceFramework<AudRenU> { 20 public: 21 explicit AudRenU(Core::System& system_); 22 ~AudRenU() override; 23 24 private: 25 void OpenAudioRenderer(Kernel::HLERequestContext& ctx); 26 void GetAudioRendererWorkBufferSize(Kernel::HLERequestContext& ctx); 27 void GetAudioDeviceService(Kernel::HLERequestContext& ctx); 28 void OpenAudioRendererAuto(Kernel::HLERequestContext& ctx); 29 void GetAudioDeviceServiceWithRevisionInfo(Kernel::HLERequestContext& ctx); 30 31 void OpenAudioRendererImpl(Kernel::HLERequestContext& ctx); 32 33 std::size_t audren_instance_count = 0; 34 }; 35 36 // Describes a particular audio feature that may be supported in a particular revision. 37 enum class AudioFeatures : u32 { 38 AudioUSBDeviceOutput, 39 Splitter, 40 PerformanceMetricsVersion2, 41 VariadicCommandBuffer, 42 }; 43 44 // Tests if a particular audio feature is supported with a given audio revision. 45 bool IsFeatureSupported(AudioFeatures feature, u32_le revision); 46 47 } // namespace Service::Audio 48