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
	 bunnei
						bunnei