UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
AudioMixerPlatformSDL.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "AudioMixer.h"
6
8#include <SDL3/SDL.h>
9#include <SDL3/SDL_audio.h>
11
12namespace Audio
13{
14
16 {
17
18 public:
19
21 virtual ~FMixerPlatformSDL();
22
23 //~ Begin IAudioMixerPlatformInterface Interface
24 FString GetPlatformApi() const override { return TEXT("SDL3"); }
25 bool InitializeHardware() override;
26 bool TeardownHardware() override;
27 bool IsInitialized() const override;
31 virtual bool OpenAudioStream(const FAudioMixerOpenStreamParams& Params) override;
32 bool CloseAudioStream() override;
33 bool StartAudioStream() override;
34 bool StopAudioStream() override;
36 void SubmitBuffer(const uint8* Buffer) override;
37 FString GetDefaultDeviceName() override;
39 void ResumeContext() override;
40 void SuspendContext() override;
41 //~ End IAudioMixerPlatformInterface Interface
42
44
46 Uint8 GetPlatformChannels() { return 6; }
49 int32 GetOutputBufferByteLength() { return OutputBufferByteLength; }
50
51 protected:
53
54 private:
55
56 SDL_AudioDeviceID AudioDeviceID;
57 SDL_AudioSpec AudioSpec;
58 SDL_AudioStream *AudioStream;
59
60 uint8* OutputBuffer;
61 int32 OutputBufferByteLength;
62
63 bool bSuspended;
64 bool bInitialized;
65 };
66
67}
68
#define TEXT(x)
Definition Platform.h:1272
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
UE::FPlatformRecursiveMutex FCriticalSection
Definition CriticalSection.h:53
#define THIRD_PARTY_INCLUDES_START
Definition GenericPlatformCompilerPreSetup.h:63
USkinnedMeshComponent float
Definition SkinnedMeshComponent.h:60
uint8_t uint8
Definition binka_ue_file_header.h:8
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition AudioMixerPlatformSDL.h:16
SDL_AudioFormat GetPlatformAudioFormat()
Definition AudioMixerPlatformSDL.h:45
FString GetDefaultDeviceName() override
Definition AudioMixerPlatformSDL.cpp:389
void ResumeContext() override
Definition AudioMixerPlatformSDL.cpp:395
bool StartAudioStream() override
Definition AudioMixerPlatformSDL.cpp:303
int32 GetOutputBufferByteLength()
Definition AudioMixerPlatformSDL.h:49
FString GetPlatformApi() const override
Definition AudioMixerPlatformSDL.h:24
FAudioPlatformSettings GetPlatformSettings() const override
Definition AudioMixerPlatformSDL.cpp:422
bool CloseAudioStream() override
Definition AudioMixerPlatformSDL.cpp:277
bool GetNumOutputDevices(uint32 &OutNumOutputDevices) override
Definition AudioMixerPlatformSDL.cpp:117
bool InitializeHardware() override
Definition AudioMixerPlatformSDL.cpp:58
void HandleOnBufferEnd(uint8 *InOutputBuffer, int32 InOutputBufferLength)
Definition AudioMixerPlatformSDL.cpp:376
bool IsInitialized() const override
Definition AudioMixerPlatformSDL.cpp:112
virtual bool OpenAudioStream(const FAudioMixerOpenStreamParams &Params) override
Definition AudioMixerPlatformSDL.cpp:190
bool StopAudioStream() override
Definition AudioMixerPlatformSDL.cpp:329
FMixerPlatformSDL()
Definition AudioMixerPlatformSDL.cpp:40
void SubmitBuffer(const uint8 *Buffer) override
Definition AudioMixerPlatformSDL.cpp:365
int32 GetAudioStreamChannelSize()
Definition AudioMixerPlatformSDL.h:48
FCriticalSection OutputBufferMutex
Definition AudioMixerPlatformSDL.h:52
bool GetDefaultOutputDeviceIndex(uint32 &OutDefaultDeviceIndex) const override
Definition AudioMixerPlatformSDL.cpp:183
Uint8 GetPlatformChannels()
Definition AudioMixerPlatformSDL.h:46
FAudioPlatformDeviceInfo GetPlatformDeviceInfo() const override
Definition AudioMixerPlatformSDL.cpp:360
void SuspendContext() override
Definition AudioMixerPlatformSDL.cpp:409
bool GetOutputDeviceInfo(const uint32 InDeviceIndex, FAudioPlatformDeviceInfo &OutInfo) override
Definition AudioMixerPlatformSDL.cpp:132
virtual ~FMixerPlatformSDL()
Definition AudioMixerPlatformSDL.cpp:50
EAudioMixerStreamDataFormat::Type GetAudioStreamFormat()
Definition AudioMixerPlatformSDL.h:47
bool TeardownHardware() override
Definition AudioMixerPlatformSDL.cpp:95
Definition AudioMixer.h:479
Type
Definition AudioMixerTypes.h:11
@ Float
Definition AudioMixerTypes.h:13
NO_LOGGING.
Definition AudioMixerPlatformAndroid.cpp:53
Definition Voronoi.cpp:10
Definition AudioMixer.h:250
Definition AudioMixer.h:152
Definition AudioMixerTypes.h:63