From 412505092b5fc4d7912c38d71074925ec29455f2 Mon Sep 17 00:00:00 2001 From: averne Date: Fri, 3 Feb 2023 23:03:29 +0100 Subject: [PATCH] auddev: add GetActiveAudioDeviceName --- nx/include/switch/services/auddev.h | 2 +- nx/source/services/auddev.c | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/nx/include/switch/services/auddev.h b/nx/include/switch/services/auddev.h index 015b1862..b8afd3ea 100644 --- a/nx/include/switch/services/auddev.h +++ b/nx/include/switch/services/auddev.h @@ -22,4 +22,4 @@ Service* auddevGetServiceSession(void); Result auddevListAudioDeviceName(AudioDeviceName *DeviceNames, s32 max_names, s32 *total_names); Result auddevSetAudioDeviceOutputVolume(const AudioDeviceName *DeviceName, float volume); Result auddevGetAudioDeviceOutputVolume(const AudioDeviceName *DeviceName, float *volume); - +Result auddevGetActiveAudioDeviceName(AudioDeviceName *DeviceName); diff --git a/nx/source/services/auddev.c b/nx/source/services/auddev.c index a900b6a1..689c4870 100644 --- a/nx/source/services/auddev.c +++ b/nx/source/services/auddev.c @@ -62,3 +62,11 @@ Result auddevGetAudioDeviceOutputVolume(const AudioDeviceName *DeviceName, float .buffers = { { DeviceName, sizeof(AudioDeviceName) } }, ); } + +Result auddevGetActiveAudioDeviceName(AudioDeviceName *DeviceName) { + bool new_cmd = hosversionAtLeast(3,0,0); + return serviceDispatch(&g_auddevIAudioDevice, new_cmd==0 ? 3 : 10, + .buffer_attrs = { (new_cmd==0 ? SfBufferAttr_HipcMapAlias : SfBufferAttr_HipcAutoSelect) | SfBufferAttr_Out }, + .buffers = { { DeviceName, sizeof(AudioDeviceName) } }, + ); +}