17#include <mmdeviceapi.h>
23#define UE_API WINDOWSMMDEVICEENUMERATION_API
122 struct FCacheKeyFuncs :
BaseKeyFuncs<FWindowsMMDeviceCache::FCacheEntry, FName>
126 return Element.HardwareId;
136 return GetTypeHash(Key);
140 struct FDeviceChannelInfo
142 uint32 LogicDeviceChannelCount = 0;
143 uint32 TotalChannelCount = 0;
146 bool bIsAggregateDeviceSupportEnabled =
false;
152 static UE_API int32 ExtractAggregateChannelNumber(
const FString& InName);
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define UE_API
Definition SColorGradingComponentViewer.h:12
Definition AudioMixer.h:415
Definition NameTypes.h:617
Definition COMPointer.h:19
Definition UnrealString.h.inl:34
NO_LOGGING.
Definition AudioMixerPlatformAndroid.cpp:53
EAudioDeviceState
Definition AudioMixer.h:340
EDeviceEndpointType
Definition AudioMixer.h:228
EAudioDeviceRole
Definition AudioMixer.h:331
Definition Voronoi.cpp:10
Definition WindowsMMDeviceInfoCache.h:30
TArray< EAudioMixerChannel::Type > OutputChannels
Definition WindowsMMDeviceInfoCache.h:44
EDeviceEndpointType Type
Definition WindowsMMDeviceInfoCache.h:39
FString FriendlyName
Definition WindowsMMDeviceInfoCache.h:34
uint32 ChannelBitmask
Definition WindowsMMDeviceInfoCache.h:40
int32 NumChannels
Definition WindowsMMDeviceInfoCache.h:37
EAudioDeviceState State
Definition WindowsMMDeviceInfoCache.h:36
int32 SampleRate
Definition WindowsMMDeviceInfoCache.h:38
FName HardwareId
Definition WindowsMMDeviceInfoCache.h:41
FCacheEntry & operator=(const FCacheEntry &InOther)
Definition WindowsMMDeviceInfoCache.cpp:54
FName DeviceId
Definition WindowsMMDeviceInfoCache.h:33
FString DeviceFriendlyName
Definition WindowsMMDeviceInfoCache.h:35
FRWLock MutationLock
Definition WindowsMMDeviceInfoCache.h:45
enum UE_DEPRECATED(5.6, "EEndpointType is deprecated. Please use EDeviceEndpointType instead.") EEndpointType
Definition WindowsMMDeviceInfoCache.h:31
FString FilterId
Definition WindowsMMDeviceInfoCache.h:42
Definition WindowsMMDeviceInfoCache.h:28
UE_API EDeviceEndpointType QueryDeviceDataFlow(const TComPtr< IMMDevice > &InDevice) const
Definition WindowsMMDeviceInfoCache.cpp:231
UE_API FWindowsMMDeviceCache()
Definition WindowsMMDeviceInfoCache.cpp:95
UE_API TOptional< FAudioPlatformDeviceInfo > FindDefaultOutputDevice() const override
Definition WindowsMMDeviceInfoCache.cpp:909
UE_API void EnumerateDefaults()
Definition WindowsMMDeviceInfoCache.cpp:452
virtual UE_API TArray< FAudioPlatformDeviceInfo > GetLogicalAggregateDevices(const FName InHardwareId, const EDeviceEndpointType InEndpointType) const override
Definition WindowsMMDeviceInfoCache.cpp:761
TComPtr< IMMDeviceEnumerator > DeviceEnumerator
Definition WindowsMMDeviceInfoCache.h:58
UE_API bool EnumerateDeviceProps(const TComPtr< IMMDevice > &InDevice, FCacheEntry &OutInfo)
Definition WindowsMMDeviceInfoCache.cpp:253
UE_API void OnDeviceAdded(const FString &DeviceId, bool bIsRender) override
Definition WindowsMMDeviceInfoCache.cpp:517
UE_API void OnDeviceRemoved(const FString &DeviceId, bool) override
Definition WindowsMMDeviceInfoCache.cpp:538
UE_API bool EnumerateHardwareTopology(const TComPtr< IMMDevice > &InDevice, FCacheEntry &OutInfo)
Definition WindowsMMDeviceInfoCache.cpp:319
UE_API bool EnumerateChannelFormat(const WAVEFORMATEX *InFormat, FCacheEntry &OutInfo)
Definition WindowsMMDeviceInfoCache.cpp:206
virtual UE_API TOptional< FAudioPlatformDeviceInfo > GetAggregateHardwareDeviceInfo(const FName InHardwareId, const EDeviceEndpointType InEndpointType) const
Definition WindowsMMDeviceInfoCache.cpp:740
UE_API TOptional< FAudioPlatformDeviceInfo > FindActiveOutputDevice(FName InDeviceID) const override
Definition WindowsMMDeviceInfoCache.cpp:914
virtual UE_API bool IsAggregateHardwareDeviceId(const FName InDeviceID) const override
Definition WindowsMMDeviceInfoCache.cpp:720
UE_API bool EnumerateChannelMask(uint32 InMask, FCacheEntry &OutInfo)
Definition WindowsMMDeviceInfoCache.cpp:101
UE_API void OnDefaultRenderDeviceChanged(const EAudioDeviceRole InAudioDeviceRole, const FString &DeviceId) override
Definition WindowsMMDeviceInfoCache.cpp:510
FName DefaultCaptureId[(int32) EAudioDeviceRole::COUNT]
Definition WindowsMMDeviceInfoCache.h:62
UE_API bool IsAggregateDeviceSupportEnabled() const
Definition WindowsMMDeviceInfoCache.cpp:966
UE_API TOptional< FCacheEntry > BuildCacheEntry(const FString &DeviceId)
Definition WindowsMMDeviceInfoCache.cpp:546
UE_API void OnDeviceStateChanged(const FString &DeviceId, const EAudioDeviceState InState, bool) override
Definition WindowsMMDeviceInfoCache.cpp:572
virtual UE_API TArray< FAudioPlatformDeviceInfo > SynthesizeAggregateDeviceList(const EDeviceEndpointType InType) const
Definition WindowsMMDeviceInfoCache.cpp:842
UE_API void OnFormatChanged(const FString &InDeviceId, const FFormatChangedData &InFormat) override
Definition WindowsMMDeviceInfoCache.cpp:592
UE_API FString GetFriendlyName(FName InDeviceId) const
Definition WindowsMMDeviceInfoCache.cpp:563
UE_API FName GetDefaultOutputDevice_NoLock() const
Definition WindowsMMDeviceInfoCache.cpp:896
UE_API void MakeDeviceInfo(const FCacheEntry &InEntry, FName InDefaultDevice, FAudioPlatformDeviceInfo &OutInfo) const
Definition WindowsMMDeviceInfoCache.cpp:645
UE_API void OnDefaultCaptureDeviceChanged(const EAudioDeviceRole InAudioDeviceRole, const FString &DeviceId) override
Definition WindowsMMDeviceInfoCache.cpp:503
FRWLock CacheMutationLock
Definition WindowsMMDeviceInfoCache.h:60
virtual UE_API TArray< FAudioPlatformDeviceInfo > GetAllActiveOutputDevices() const override
Definition WindowsMMDeviceInfoCache.cpp:657
FName DefaultRenderId[(int32) EAudioDeviceRole::COUNT]
Definition WindowsMMDeviceInfoCache.h:63
TMap< FName, FCacheEntry > Cache
Definition WindowsMMDeviceInfoCache.h:61
virtual ~FWindowsMMDeviceCache()=default
static UE_API FString ExtractAggregateDeviceName(const FString &InName)
Definition WindowsMMDeviceInfoCache.cpp:867
UE_API void EnumerateEndpoints()
Definition WindowsMMDeviceInfoCache.cpp:393
Definition SetUtilities.h:23
TCallTraits< FWindowsMMDeviceCache::FCacheEntry >::ParamType ElementInitType
Definition SetUtilities.h:26
TCallTraits< FName >::ParamType KeyInitType
Definition SetUtilities.h:25
Definition Optional.h:131