17#include <mmdeviceapi.h>
18#include <audiopolicy.h>
26 class FWasapiDefaultRenderStream;
123 bool bIsInitialized =
false;
134 FString ExtractAggregateDeviceName(
const FString&
InDeviceID)
const;
OODEFFUNC typedef void(OODLE_CALLBACK t_fp_OodleCore_Plugin_Free)(void *ptr)
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
Definition AudioMixerWasapi.h:57
virtual void SynchronousDeviceSwap() override
Definition AudioMixerWasapi.cpp:568
bool InitDeviceSwapContextInternal(const FString &InRequestedDeviceID, const TCHAR *InReason, const TOptional< FAudioPlatformDeviceInfo > &InDeviceInfo)
Definition AudioMixerWasapi.cpp:497
virtual int32 GetNumFrames(const int32 InNumRequestedFrames) override
Definition AudioMixerWasapi.cpp:77
virtual FString GetDefaultDeviceName() override
Definition AudioMixerWasapi.cpp:403
virtual void SubmitDirectOutBuffer(const int32 InDirectOutIndex, const FAlignedFloatBuffer &InBuffer) override
Definition AudioMixerWasapi.cpp:393
virtual bool PostDeviceSwap() override
Definition AudioMixerWasapi.cpp:689
virtual bool StopAudioStream() override
Definition AudioMixerWasapi.cpp:339
virtual void RegisterDeviceChangedListener() override
Definition AudioMixerWasapiDeviceListener.cpp:46
virtual bool CloseAudioStream() override
Definition AudioMixerWasapi.cpp:281
virtual void SubmitBuffer(const uint8 *Buffer) override
Definition AudioMixerWasapi.cpp:383
virtual bool IsDeviceInfoValid(const FAudioPlatformDeviceInfo &InDeviceInfo) const override
Definition AudioMixerWasapi.cpp:427
FAudioMixerWasapi()
Definition AudioMixerWasapi.cpp:12
virtual FString GetPlatformApi() const override
Definition AudioMixerWasapi.h:64
virtual void OnSessionDisconnect(Audio::IAudioMixerDeviceChangedListener::EDisconnectReason InReason) override
Definition AudioMixerWasapi.cpp:439
virtual bool IsInitialized() const override
Definition AudioMixerWasapi.cpp:72
virtual FAudioPlatformSettings GetPlatformSettings() const override
Definition AudioMixerWasapi.cpp:408
virtual void OnDeviceAdded(const FString &DeviceId, bool bIsRenderDevice) override
Definition AudioMixerWasapiDeviceListener.cpp:120
virtual void OnDefaultRenderDeviceChanged(const EAudioDeviceRole InAudioDeviceRole, const FString &DeviceId) override
Definition AudioMixerWasapiDeviceListener.cpp:93
virtual bool PreDeviceSwap() override
Definition AudioMixerWasapi.cpp:660
virtual bool CheckThreadedDeviceSwap() override
Definition AudioMixerWasapi.cpp:459
virtual bool GetOutputDeviceInfo(const uint32 InDeviceIndex, FAudioPlatformDeviceInfo &OutInfo) override
Definition AudioMixerWasapi.cpp:105
virtual bool GetNumOutputDevices(uint32 &OutNumOutputDevices) override
Definition AudioMixerWasapi.cpp:87
virtual FString GetDeviceId() const override
Definition AudioMixerWasapiDeviceListener.cpp:257
virtual void OnDeviceRemoved(const FString &DeviceId, bool bIsRenderDevice) override
Definition AudioMixerWasapiDeviceListener.cpp:150
virtual IAudioPlatformDeviceInfoCache * GetDeviceInfoCache() const override
Definition AudioMixerWasapi.cpp:417
virtual bool OpenAudioStream(const FAudioMixerOpenStreamParams &Params) override
Definition AudioMixerWasapi.cpp:195
virtual bool GetDefaultOutputDeviceIndex(uint32 &OutDefaultDeviceIndex) const override
Definition AudioMixerWasapi.cpp:133
virtual bool StartAudioStream() override
Definition AudioMixerWasapi.cpp:305
virtual ~FAudioMixerWasapi() override
Definition AudioMixerWasapi.cpp:16
virtual void UnregisterDeviceChangedListener() override
Definition AudioMixerWasapiDeviceListener.cpp:69
virtual FAudioPlatformDeviceInfo GetPlatformDeviceInfo() const override
Definition AudioMixerWasapi.cpp:378
virtual void OnDefaultCaptureDeviceChanged(const EAudioDeviceRole InAudioDeviceRole, const FString &DeviceId) override
Definition AudioMixerWasapiDeviceListener.cpp:85
virtual void OnDeviceStateChanged(const FString &DeviceId, const EAudioDeviceState InState, bool bIsRenderDevice) override
Definition AudioMixerWasapiDeviceListener.cpp:178
virtual bool TeardownHardware() override
Definition AudioMixerWasapi.cpp:50
virtual bool InitializeHardware() override
Definition AudioMixerWasapi.cpp:34
virtual bool InitializeDeviceSwapContext(const FString &InRequestedDeviceID, const TCHAR *InReason) override
Definition AudioMixerWasapi.cpp:468
virtual void EnqueueAsyncDeviceSwap() override
Definition AudioMixerWasapi.cpp:545
virtual void OnFormatChanged(const FString &InDeviceId, const FFormatChangedData &InFormat) override
Definition AudioMixerWasapiDeviceListener.cpp:218
virtual bool ShouldUseDeviceInfoCache() const override
Definition AudioMixerWasapi.h:83
EDisconnectReason
Definition AudioMixer.h:427
Definition COMPointer.h:19
Definition AndroidPlatformMisc.h:14
Definition UniquePtr.h:107
NO_LOGGING.
Definition AudioMixerPlatformAndroid.cpp:53
EAudioDeviceState
Definition AudioMixer.h:340
EAudioDeviceRole
Definition AudioMixer.h:331
Definition Voronoi.cpp:10
Definition AudioMixer.h:250
Definition AudioMixer.h:451
Definition AudioMixer.h:465
Definition AudioMixerWasapi.h:29
TArray< FWasapiRenderStreamParams > StreamParams
Definition AudioMixerWasapi.h:36
FWasapiDeviceSwapContext()=delete
FWasapiDeviceSwapContext(const FString &InRequestedDeviceID, const FString &InReason)
Definition AudioMixerWasapi.h:31
TFunction< void()> ReadNextBufferCallback
Definition AudioMixerWasapi.h:37
TUniquePtr< IAudioMixerWasapiDeviceManager > OldDeviceManager
Definition AudioMixerWasapi.h:38
bool bIsAggregateDevice
Definition AudioMixerWasapi.h:39
FAudioPlatformSettings PlatformSettings
Definition AudioMixerWasapi.h:35
Definition AudioMixerWasapi.h:43
TUniquePtr< IAudioMixerWasapiDeviceManager > NewDeviceManager
Definition AudioMixerWasapi.h:49
virtual bool IsNewDeviceReady() const override
Definition AudioMixerWasapi.h:44
bool bIsAggregateDevice
Definition AudioMixerWasapi.h:50
Definition Optional.h:131