3 #include "SDL_xaudio2_winrthelpers.h"
5 using Windows::Devices::Enumeration::DeviceClass;
6 using Windows::Devices::Enumeration::DeviceInformation;
7 using Windows::Devices::Enumeration::DeviceInformationCollection;
9 HRESULT IXAudio2_GetDeviceCount(IXAudio2 * ixa2, UINT32 * devcount)
11 auto operation = DeviceInformation::FindAllAsync(DeviceClass::AudioRender);
12 while (operation->Status != Windows::Foundation::AsyncStatus::Completed)
16 DeviceInformationCollection^ devices = operation->GetResults();
17 *devcount = devices->Size;
21 HRESULT IXAudio2_GetDeviceDetails(IXAudio2 * unused, UINT32 index, XAUDIO2_DEVICE_DETAILS * details)
23 auto operation = DeviceInformation::FindAllAsync(DeviceClass::AudioRender);
24 while (operation->Status != Windows::Foundation::AsyncStatus::Completed)
28 DeviceInformationCollection^ devices = operation->GetResults();
29 if (index >= devices->Size)
31 return XAUDIO2_E_INVALID_CALL;
34 DeviceInformation^ d = devices->GetAt(index);
37 wcsncpy_s(details->DeviceID, ARRAYSIZE(details->DeviceID), d->Id->Data(), _TRUNCATE);
38 wcsncpy_s(details->DisplayName, ARRAYSIZE(details->DisplayName), d->Name->Data(), _TRUNCATE);