mirror of
				https://git.zaroz.cloud/nintendo-back-up/yuzu/yuzu-mainline.git
				synced 2025-03-21 01:53:15 +00:00 
			
		
		
		
	Merge pull request #2181 from lioncash/audren2
service/audio/audren_u: Implement OpenAudioRendererAuto
This commit is contained in:
		
						commit
						115fc6120c
					
				@ -235,7 +235,7 @@ AudRenU::AudRenU() : ServiceFramework("audren:u") {
 | 
			
		||||
        {0, &AudRenU::OpenAudioRenderer, "OpenAudioRenderer"},
 | 
			
		||||
        {1, &AudRenU::GetAudioRendererWorkBufferSize, "GetAudioRendererWorkBufferSize"},
 | 
			
		||||
        {2, &AudRenU::GetAudioDeviceService, "GetAudioDeviceService"},
 | 
			
		||||
        {3, nullptr, "OpenAudioRendererAuto"},
 | 
			
		||||
        {3, &AudRenU::OpenAudioRendererAuto, "OpenAudioRendererAuto"},
 | 
			
		||||
        {4, &AudRenU::GetAudioDeviceServiceWithRevisionInfo, "GetAudioDeviceServiceWithRevisionInfo"},
 | 
			
		||||
    };
 | 
			
		||||
    // clang-format on
 | 
			
		||||
@ -248,12 +248,7 @@ AudRenU::~AudRenU() = default;
 | 
			
		||||
void AudRenU::OpenAudioRenderer(Kernel::HLERequestContext& ctx) {
 | 
			
		||||
    LOG_DEBUG(Service_Audio, "called");
 | 
			
		||||
 | 
			
		||||
    IPC::RequestParser rp{ctx};
 | 
			
		||||
    auto params = rp.PopRaw<AudioCore::AudioRendererParameter>();
 | 
			
		||||
    IPC::ResponseBuilder rb{ctx, 2, 0, 1};
 | 
			
		||||
 | 
			
		||||
    rb.Push(RESULT_SUCCESS);
 | 
			
		||||
    rb.PushIpcInterface<Audio::IAudioRenderer>(std::move(params));
 | 
			
		||||
    OpenAudioRendererImpl(ctx);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void AudRenU::GetAudioRendererWorkBufferSize(Kernel::HLERequestContext& ctx) {
 | 
			
		||||
@ -325,6 +320,12 @@ void AudRenU::GetAudioDeviceService(Kernel::HLERequestContext& ctx) {
 | 
			
		||||
    rb.PushIpcInterface<Audio::IAudioDevice>();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void AudRenU::OpenAudioRendererAuto(Kernel::HLERequestContext& ctx) {
 | 
			
		||||
    LOG_DEBUG(Service_Audio, "called");
 | 
			
		||||
 | 
			
		||||
    OpenAudioRendererImpl(ctx);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void AudRenU::GetAudioDeviceServiceWithRevisionInfo(Kernel::HLERequestContext& ctx) {
 | 
			
		||||
    LOG_WARNING(Service_Audio, "(STUBBED) called");
 | 
			
		||||
 | 
			
		||||
@ -335,6 +336,15 @@ void AudRenU::GetAudioDeviceServiceWithRevisionInfo(Kernel::HLERequestContext& c
 | 
			
		||||
                                                // based on the current revision
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void AudRenU::OpenAudioRendererImpl(Kernel::HLERequestContext& ctx) {
 | 
			
		||||
    IPC::RequestParser rp{ctx};
 | 
			
		||||
    const auto params = rp.PopRaw<AudioCore::AudioRendererParameter>();
 | 
			
		||||
    IPC::ResponseBuilder rb{ctx, 2, 0, 1};
 | 
			
		||||
 | 
			
		||||
    rb.Push(RESULT_SUCCESS);
 | 
			
		||||
    rb.PushIpcInterface<IAudioRenderer>(params);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool AudRenU::IsFeatureSupported(AudioFeatures feature, u32_le revision) const {
 | 
			
		||||
    u32_be version_num = (revision - Common::MakeMagic('R', 'E', 'V', '0')); // Byte swap
 | 
			
		||||
    switch (feature) {
 | 
			
		||||
 | 
			
		||||
@ -21,8 +21,11 @@ private:
 | 
			
		||||
    void OpenAudioRenderer(Kernel::HLERequestContext& ctx);
 | 
			
		||||
    void GetAudioRendererWorkBufferSize(Kernel::HLERequestContext& ctx);
 | 
			
		||||
    void GetAudioDeviceService(Kernel::HLERequestContext& ctx);
 | 
			
		||||
    void OpenAudioRendererAuto(Kernel::HLERequestContext& ctx);
 | 
			
		||||
    void GetAudioDeviceServiceWithRevisionInfo(Kernel::HLERequestContext& ctx);
 | 
			
		||||
 | 
			
		||||
    void OpenAudioRendererImpl(Kernel::HLERequestContext& ctx);
 | 
			
		||||
 | 
			
		||||
    enum class AudioFeatures : u32 {
 | 
			
		||||
        Splitter,
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user