UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
Audio::FMixerPlatformSDL Class Reference

#include <AudioMixerPlatformSDL.h>

+ Inheritance diagram for Audio::FMixerPlatformSDL:

Public Member Functions

 FMixerPlatformSDL ()
 
virtual ~FMixerPlatformSDL ()
 
FString GetPlatformApi () const override
 
bool InitializeHardware () override
 
bool TeardownHardware () override
 
bool IsInitialized () const override
 
bool GetNumOutputDevices (uint32 &OutNumOutputDevices) override
 
bool GetOutputDeviceInfo (const uint32 InDeviceIndex, FAudioPlatformDeviceInfo &OutInfo) override
 
bool GetDefaultOutputDeviceIndex (uint32 &OutDefaultDeviceIndex) const override
 
virtual bool OpenAudioStream (const FAudioMixerOpenStreamParams &Params) override
 
bool CloseAudioStream () override
 
bool StartAudioStream () override
 
bool StopAudioStream () override
 
FAudioPlatformDeviceInfo GetPlatformDeviceInfo () const override
 
void SubmitBuffer (const uint8 *Buffer) override
 
FString GetDefaultDeviceName () override
 
FAudioPlatformSettings GetPlatformSettings () const override
 
void ResumeContext () override
 
void SuspendContext () override
 
void HandleOnBufferEnd (uint8 *InOutputBuffer, int32 InOutputBufferLength)
 
SDL_AudioFormat GetPlatformAudioFormat ()
 
Uint8 GetPlatformChannels ()
 
EAudioMixerStreamDataFormat::Type GetAudioStreamFormat ()
 
int32 GetAudioStreamChannelSize ()
 
int32 GetOutputBufferByteLength ()
 
- Public Member Functions inherited from Audio::IAudioMixerPlatformInterface
virtual AUDIOMIXERCORE_API ~IAudioMixerPlatformInterface ()
 
virtual bool CheckAudioDeviceChange ()
 
virtual void ResumePlaybackOnNewDevice ()
 
virtual FString GetCurrentDeviceName () const
 
virtual AUDIOMIXERCORE_API int32 GetIndexForDevice (const FString &InDeviceName)
 
virtual bool MoveAudioStreamToNewAudioDevice (const FString &InNewDeviceId)
 
virtual bool MoveAudioStreamToNewAudioDevice ()
 
virtual bool RequestDeviceSwap (const FString &DeviceID, bool bInForce, const TCHAR *InReason=nullptr)
 
virtual void SubmitDirectOutBuffer (const int32 InDirectOutIndex, const Audio::FAlignedFloatBuffer &InBuffer)
 
virtual int32 GetNumFrames (const int32 InNumReqestedFrames)
 
virtual bool DisablePCMAudioCaching () const
 
virtual bool SupportsHardwareDecompression () const
 
virtual bool IsNonRealtime () const
 
virtual void OnHardwareUpdate ()
 
virtual IAudioPlatformDeviceInfoCacheGetDeviceInfoCache () const
 
virtual bool IsDeviceInfoValid (const FAudioPlatformDeviceInfo &InDeviceInfo) const
 
virtual bool ShouldUseDeviceInfoCache () const
 
AUDIOMIXERCORE_API uint32 Run () override
 
virtual class FSingleThreadRunnableGetSingleThreadInterface () override
 
virtual AUDIOMIXERCORE_API void Tick () override
 
AUDIOMIXERCORE_API IAudioMixerPlatformInterface ()
 
AUDIOMIXERCORE_API void ReadNextBuffer ()
 
virtual AUDIOMIXERCORE_API void FadeIn ()
 
virtual AUDIOMIXERCORE_API void FadeOut ()
 
FString GetLastError () const
 
AUDIOMIXERCORE_API void PostInitializeHardware ()
 
bool GetIsListeningForDeviceEvents () const
 
void SetIsListeningForDeviceEvents (bool bInListeningForDeviceEvents)
 
- Public Member Functions inherited from FRunnable
virtual bool Init ()
 
virtual void Stop ()
 
virtual void Exit ()
 
virtual ~FRunnable ()
 
- Public Member Functions inherited from FSingleThreadRunnable
virtual ~FSingleThreadRunnable ()
 
- Public Member Functions inherited from Audio::IAudioMixerDeviceChangedListener
virtual ~IAudioMixerDeviceChangedListener ()=default
 
virtual void RegisterDeviceChangedListener ()
 
virtual void UnregisterDeviceChangedListener ()
 
virtual void OnDefaultCaptureDeviceChanged (const EAudioDeviceRole InAudioDeviceRole, const FString &DeviceId)
 
virtual void OnDefaultRenderDeviceChanged (const EAudioDeviceRole InAudioDeviceRole, const FString &DeviceId)
 
virtual void OnDeviceAdded (const FString &DeviceId, bool bIsRenderDevice)
 
virtual void OnDeviceRemoved (const FString &DeviceId, bool bIsRenderDevice)
 
virtual void OnDeviceStateChanged (const FString &DeviceId, const EAudioDeviceState InState, bool bIsRenderDevice)
 
virtual void OnFormatChanged (const FString &InDeviceId, const FFormatChangedData &InFormat)
 
virtual void OnSessionDisconnect (EDisconnectReason InReason)
 
virtual FString GetDeviceId () const
 

Protected Attributes

FCriticalSection OutputBufferMutex
 
- Protected Attributes inherited from Audio::IAudioMixerPlatformInterface
FAudioOutputStreamInfo AudioStreamInfo
 
FAudioMixerOpenStreamParams OpenStreamParams
 
Audio::FOutputBuffer OutputBuffer
 
bool bWarnedBufferUnderrun
 
TUniquePtr< FRunnableThreadAudioRenderThread
 
FEventAudioRenderEvent
 
FCriticalSection DeviceSwapCriticalSection
 
FThreadSafeBool bIsInDeviceSwap
 
FEventAudioFadeEvent
 
int32 NumOutputBuffers
 
float FadeVolume
 
FParam FadeParam
 
FString CurrentDeviceName
 
FString LastError
 
int32 CallCounterApplyAttenuationInternal { 0 }
 
int32 CallCounterReadNextBuffer { 0 }
 
FThreadSafeBool bPerformingFade
 
FThreadSafeBool bFadedOut
 
FThreadSafeBool bIsDeviceInitialized
 
FThreadSafeBool bMoveAudioStreamToNewAudioDevice
 
FThreadSafeBool bIsUsingNullDevice
 
FThreadSafeBool bIsGeneratingAudio
 
const int32 InstanceID { -1 }
 

Additional Inherited Members

- Public Types inherited from Audio::IAudioMixerDeviceChangedListener
enum class  EDisconnectReason {
  DeviceRemoval , ServerShutdown , FormatChanged , SessionLogoff ,
  SessionDisconnected , ExclusiveModeOverride
}
 
- Static Public Member Functions inherited from Audio::IAudioMixerPlatformInterface
static AUDIOMIXERCORE_API bool GetChannelTypeAtIndex (const int32 Index, EAudioMixerChannel::Type &OutType)
 
- Protected Member Functions inherited from Audio::IAudioMixerPlatformInterface
AUDIOMIXERCORE_API uint32 MainAudioDeviceRun ()
 
virtual AUDIOMIXERCORE_API uint32 RunInternal ()
 
void AudioMixerPlatformLogOnce (const FString &LogDetails, const FString &FileName, int32 LineNumber, ELogVerbosity::Type InVerbosity=ELogVerbosity::Error)
 
AUDIOMIXERCORE_API void BeginGeneratingAudio ()
 
AUDIOMIXERCORE_API void StopGeneratingAudio ()
 
AUDIOMIXERCORE_API void ApplyMasterAttenuation (TArrayView< const uint8 > &InOutPoppedAudio)
 
AUDIOMIXERCORE_API void ApplyPrimaryAttenuation (TArrayView< const uint8 > &InOutPoppedAudio)
 
template<typename BufferType >
void ApplyAttenuationInternal (TArrayView< BufferType > &InOutBuffer)
 
AUDIOMIXERCORE_API void StartRunningNullDevice ()
 
AUDIOMIXERCORE_API void StopRunningNullDevice ()
 
AUDIOMIXERCORE_API void CreateNullDeviceThread (const TFunction< void()> InCallback, float InBufferDuration, bool bShouldPauseOnStart)
 
- Static Protected Attributes inherited from Audio::IAudioMixerPlatformInterface
static AUDIOMIXERCORE_API FThreadSafeCounter NextInstanceID
 

Constructor & Destructor Documentation

◆ FMixerPlatformSDL()

Audio::FMixerPlatformSDL::FMixerPlatformSDL ( )

◆ ~FMixerPlatformSDL()

Audio::FMixerPlatformSDL::~FMixerPlatformSDL ( )
virtual

Member Function Documentation

◆ CloseAudioStream()

bool Audio::FMixerPlatformSDL::CloseAudioStream ( )
overridevirtual

Closes the audio stream (if it's open).

Implements Audio::IAudioMixerPlatformInterface.

◆ GetAudioStreamChannelSize()

int32 Audio::FMixerPlatformSDL::GetAudioStreamChannelSize ( )
inline

◆ GetAudioStreamFormat()

EAudioMixerStreamDataFormat::Type Audio::FMixerPlatformSDL::GetAudioStreamFormat ( )
inline

◆ GetDefaultDeviceName()

FString Audio::FMixerPlatformSDL::GetDefaultDeviceName ( )
overridevirtual

Return any optional device name defined in platform configuratio.

Implements Audio::IAudioMixerPlatformInterface.

◆ GetDefaultOutputDeviceIndex()

bool Audio::FMixerPlatformSDL::GetDefaultOutputDeviceIndex ( uint32 OutDefaultDeviceIndex) const
overridevirtual

Returns the default device index.

Reimplemented from Audio::IAudioMixerPlatformInterface.

◆ GetNumOutputDevices()

bool Audio::FMixerPlatformSDL::GetNumOutputDevices ( uint32 OutNumOutputDevices)
overridevirtual

Returns the number of output devices.

Reimplemented from Audio::IAudioMixerPlatformInterface.

◆ GetOutputBufferByteLength()

int32 Audio::FMixerPlatformSDL::GetOutputBufferByteLength ( )
inline

◆ GetOutputDeviceInfo()

bool Audio::FMixerPlatformSDL::GetOutputDeviceInfo ( const uint32  InDeviceIndex,
FAudioPlatformDeviceInfo OutInfo 
)
overridevirtual

Gets the device information of the given device index.

Implements Audio::IAudioMixerPlatformInterface.

◆ GetPlatformApi()

FString Audio::FMixerPlatformSDL::GetPlatformApi ( ) const
inlineoverridevirtual

Returns the platform API name.

Implements Audio::IAudioMixerPlatformInterface.

◆ GetPlatformAudioFormat()

SDL_AudioFormat Audio::FMixerPlatformSDL::GetPlatformAudioFormat ( )
inline

◆ GetPlatformChannels()

Uint8 Audio::FMixerPlatformSDL::GetPlatformChannels ( )
inline

◆ GetPlatformDeviceInfo()

FAudioPlatformDeviceInfo Audio::FMixerPlatformSDL::GetPlatformDeviceInfo ( ) const
overridevirtual

Returns the platform device info of the currently open audio stream.

Implements Audio::IAudioMixerPlatformInterface.

◆ GetPlatformSettings()

FAudioPlatformSettings Audio::FMixerPlatformSDL::GetPlatformSettings ( ) const
overridevirtual

Gets the platform specific audio settings.

Implements Audio::IAudioMixerPlatformInterface.

◆ HandleOnBufferEnd()

void Audio::FMixerPlatformSDL::HandleOnBufferEnd ( uint8 InOutputBuffer,
int32  InOutputBufferLength 
)

◆ InitializeHardware()

bool Audio::FMixerPlatformSDL::InitializeHardware ( )
overridevirtual

Initialize the hardware.

Implements Audio::IAudioMixerPlatformInterface.

◆ IsInitialized()

bool Audio::FMixerPlatformSDL::IsInitialized ( ) const
overridevirtual

Is the hardware initialized.

Implements Audio::IAudioMixerPlatformInterface.

◆ OpenAudioStream()

bool Audio::FMixerPlatformSDL::OpenAudioStream ( const FAudioMixerOpenStreamParams Params)
overridevirtual

Opens up a new audio stream with the given parameters.

Implements Audio::IAudioMixerPlatformInterface.

◆ ResumeContext()

void Audio::FMixerPlatformSDL::ResumeContext ( )
overridevirtual

◆ StartAudioStream()

bool Audio::FMixerPlatformSDL::StartAudioStream ( )
overridevirtual

Starts the audio stream processing and generating audio.

Implements Audio::IAudioMixerPlatformInterface.

◆ StopAudioStream()

bool Audio::FMixerPlatformSDL::StopAudioStream ( )
overridevirtual

Stops the audio stream (but keeps the audio stream open).

Implements Audio::IAudioMixerPlatformInterface.

◆ SubmitBuffer()

void Audio::FMixerPlatformSDL::SubmitBuffer ( const uint8 Buffer)
overridevirtual

Submit the given buffer to the platform's output audio device.

Reimplemented from Audio::IAudioMixerPlatformInterface.

◆ SuspendContext()

void Audio::FMixerPlatformSDL::SuspendContext ( )
overridevirtual

◆ TeardownHardware()

bool Audio::FMixerPlatformSDL::TeardownHardware ( )
overridevirtual

Teardown the hardware.

Implements Audio::IAudioMixerPlatformInterface.

Member Data Documentation

◆ OutputBufferMutex

FCriticalSection Audio::FMixerPlatformSDL::OutputBufferMutex
protected

The documentation for this class was generated from the following files: