summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/core/hle/service/audio/audren_u.cpp24
-rw-r--r--src/core/hle/service/audio/audren_u.h3
2 files changed, 20 insertions, 7 deletions
diff --git a/src/core/hle/service/audio/audren_u.cpp b/src/core/hle/service/audio/audren_u.cpp
index 7154bb917..ea8f9d0bb 100644
--- a/src/core/hle/service/audio/audren_u.cpp
+++ b/src/core/hle/service/audio/audren_u.cpp
@@ -246,7 +246,7 @@ AudRenU::AudRenU() : ServiceFramework("audren:u") {
246 {0, &AudRenU::OpenAudioRenderer, "OpenAudioRenderer"}, 246 {0, &AudRenU::OpenAudioRenderer, "OpenAudioRenderer"},
247 {1, &AudRenU::GetAudioRendererWorkBufferSize, "GetAudioRendererWorkBufferSize"}, 247 {1, &AudRenU::GetAudioRendererWorkBufferSize, "GetAudioRendererWorkBufferSize"},
248 {2, &AudRenU::GetAudioDeviceService, "GetAudioDeviceService"}, 248 {2, &AudRenU::GetAudioDeviceService, "GetAudioDeviceService"},
249 {3, nullptr, "OpenAudioRendererAuto"}, 249 {3, &AudRenU::OpenAudioRendererAuto, "OpenAudioRendererAuto"},
250 {4, &AudRenU::GetAudioDeviceServiceWithRevisionInfo, "GetAudioDeviceServiceWithRevisionInfo"}, 250 {4, &AudRenU::GetAudioDeviceServiceWithRevisionInfo, "GetAudioDeviceServiceWithRevisionInfo"},
251 }; 251 };
252 // clang-format on 252 // clang-format on
@@ -259,12 +259,7 @@ AudRenU::~AudRenU() = default;
259void AudRenU::OpenAudioRenderer(Kernel::HLERequestContext& ctx) { 259void AudRenU::OpenAudioRenderer(Kernel::HLERequestContext& ctx) {
260 LOG_DEBUG(Service_Audio, "called"); 260 LOG_DEBUG(Service_Audio, "called");
261 261
262 IPC::RequestParser rp{ctx}; 262 OpenAudioRendererImpl(ctx);
263 auto params = rp.PopRaw<AudioCore::AudioRendererParameter>();
264 IPC::ResponseBuilder rb{ctx, 2, 0, 1};
265
266 rb.Push(RESULT_SUCCESS);
267 rb.PushIpcInterface<Audio::IAudioRenderer>(std::move(params));
268} 263}
269 264
270void AudRenU::GetAudioRendererWorkBufferSize(Kernel::HLERequestContext& ctx) { 265void AudRenU::GetAudioRendererWorkBufferSize(Kernel::HLERequestContext& ctx) {
@@ -336,6 +331,12 @@ void AudRenU::GetAudioDeviceService(Kernel::HLERequestContext& ctx) {
336 rb.PushIpcInterface<Audio::IAudioDevice>(); 331 rb.PushIpcInterface<Audio::IAudioDevice>();
337} 332}
338 333
334void AudRenU::OpenAudioRendererAuto(Kernel::HLERequestContext& ctx) {
335 LOG_DEBUG(Service_Audio, "called");
336
337 OpenAudioRendererImpl(ctx);
338}
339
339void AudRenU::GetAudioDeviceServiceWithRevisionInfo(Kernel::HLERequestContext& ctx) { 340void AudRenU::GetAudioDeviceServiceWithRevisionInfo(Kernel::HLERequestContext& ctx) {
340 LOG_WARNING(Service_Audio, "(STUBBED) called"); 341 LOG_WARNING(Service_Audio, "(STUBBED) called");
341 342
@@ -346,6 +347,15 @@ void AudRenU::GetAudioDeviceServiceWithRevisionInfo(Kernel::HLERequestContext& c
346 // based on the current revision 347 // based on the current revision
347} 348}
348 349
350void AudRenU::OpenAudioRendererImpl(Kernel::HLERequestContext& ctx) {
351 IPC::RequestParser rp{ctx};
352 const auto params = rp.PopRaw<AudioCore::AudioRendererParameter>();
353 IPC::ResponseBuilder rb{ctx, 2, 0, 1};
354
355 rb.Push(RESULT_SUCCESS);
356 rb.PushIpcInterface<IAudioRenderer>(params);
357}
358
349bool AudRenU::IsFeatureSupported(AudioFeatures feature, u32_le revision) const { 359bool AudRenU::IsFeatureSupported(AudioFeatures feature, u32_le revision) const {
350 u32_be version_num = (revision - Common::MakeMagic('R', 'E', 'V', '0')); // Byte swap 360 u32_be version_num = (revision - Common::MakeMagic('R', 'E', 'V', '0')); // Byte swap
351 switch (feature) { 361 switch (feature) {
diff --git a/src/core/hle/service/audio/audren_u.h b/src/core/hle/service/audio/audren_u.h
index 3d63388fb..e55d25973 100644
--- a/src/core/hle/service/audio/audren_u.h
+++ b/src/core/hle/service/audio/audren_u.h
@@ -21,8 +21,11 @@ private:
21 void OpenAudioRenderer(Kernel::HLERequestContext& ctx); 21 void OpenAudioRenderer(Kernel::HLERequestContext& ctx);
22 void GetAudioRendererWorkBufferSize(Kernel::HLERequestContext& ctx); 22 void GetAudioRendererWorkBufferSize(Kernel::HLERequestContext& ctx);
23 void GetAudioDeviceService(Kernel::HLERequestContext& ctx); 23 void GetAudioDeviceService(Kernel::HLERequestContext& ctx);
24 void OpenAudioRendererAuto(Kernel::HLERequestContext& ctx);
24 void GetAudioDeviceServiceWithRevisionInfo(Kernel::HLERequestContext& ctx); 25 void GetAudioDeviceServiceWithRevisionInfo(Kernel::HLERequestContext& ctx);
25 26
27 void OpenAudioRendererImpl(Kernel::HLERequestContext& ctx);
28
26 enum class AudioFeatures : u32 { 29 enum class AudioFeatures : u32 {
27 Splitter, 30 Splitter,
28 }; 31 };