UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
IAudioEndpoint.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
6#include "Containers/Array.h"
8#include "CoreMinimal.h"
9#include "CoreTypes.h"
13#include "HAL/CriticalSection.h"
14#include "ISoundfieldFormat.h"
15#include "Logging/LogMacros.h"
17#include "Templates/UniquePtr.h"
18#include "UObject/NameTypes.h"
19#include "UObject/Object.h"
22
23#include "IAudioEndpoint.generated.h"
24
25class UClass;
27template <typename FuncType> class TFunctionRef;
28
30
47
52UCLASS(config = Engine, abstract, editinlinenew, BlueprintType, MinimalAPI)
60
61//A blank class for when unimplemented endpoint types are returned
65
66UCLASS()
68{
70
71 public:
72 virtual TUniquePtr<IAudioEndpointSettingsProxy> GetProxy() const override;
73};
74
81{
82public:
83 virtual ~IAudioEndpoint() {};
84
98
105
110
114 AUDIOEXTENSIONS_API virtual bool IsImplemented();
115
116protected:
117
121 AUDIOEXTENSIONS_API virtual float GetSampleRate() const;
122
125
132 virtual bool EndpointRequiresCallback() const { return false; }
133 virtual int32 GetDesiredNumFrames() const { return 0; }
134
140 virtual bool OnAudioCallback(const TArrayView<const float>& InAudio, const int32& NumChannels, const IAudioEndpointSettingsProxy* InSettings) { return false; };
141
152 AUDIOEXTENSIONS_API int32 PopAudio(float* OutAudio, int32 NumSamples);
153
161
167
173
178
179
180private:
181 // Owns a scoped thread and runs OnAudioCallback when StartRunningCallback() is called.
183
184 // If we have a render callback, we pop audio from the PatchMixer to this buffer before calling OnAudioCallback.
185 Audio::FAlignedFloatBuffer BufferForRenderCallback;
186
187 // Owns the current settings for this endpoint.
189 FCriticalSection CurrentSettingsCriticalSection;
190
191 // Object used to mix all inputs together. Polled when OnAudioCallback is executed or when PollAudio is called.
192 Audio::FPatchMixer PatchMixer;
193};
194
195
#define PURE_VIRTUAL(func,...)
Definition CoreMiscDefines.h:103
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
DIRECTLINK_API Display
Definition DirectLinkLog.h:8
#define DECLARE_LOG_CATEGORY_EXTERN(CategoryName, DefaultVerbosity, CompileTimeVerbosity)
Definition LogMacros.h:361
#define GENERATED_BODY(...)
Definition ObjectMacros.h:765
#define UCLASS(...)
Definition ObjectMacros.h:776
Definition MultithreadedPatching.h:96
Definition MultithreadedPatching.h:149
Definition Engine.Build.cs:7
Definition IAudioEndpoint.h:63
Definition NameTypes.h:617
Definition IAudioEndpoint.h:202
virtual ~IAudioEndpointFactory()
Definition IAudioEndpoint.h:205
static AUDIOEXTENSIONS_API IAudioEndpointFactory * GetDummyFactory()
Definition IAudioEndpoint.cpp:219
bool bIsImplemented
Definition IAudioEndpoint.h:253
static AUDIOEXTENSIONS_API void RegisterEndpointType(IAudioEndpointFactory *InFactory)
Definition IAudioEndpoint.cpp:149
virtual AUDIOEXTENSIONS_API UClass * GetCustomSettingsClass() const
Definition IAudioEndpoint.cpp:209
static AUDIOEXTENSIONS_API FName GetTypeNameForDefaultEndpoint()
Definition IAudioEndpoint.cpp:137
virtual AUDIOEXTENSIONS_API FName GetEndpointTypeName()
Definition IAudioEndpoint.cpp:132
static AUDIOEXTENSIONS_API IAudioEndpointFactory * Get(const FName &InName)
Definition IAudioEndpoint.cpp:159
static AUDIOEXTENSIONS_API TArray< FName > GetAvailableEndpointTypes()
Definition IAudioEndpoint.cpp:183
virtual AUDIOEXTENSIONS_API TUniquePtr< IAudioEndpoint > CreateNewEndpointInstance(const FAudioPluginInitializationParams &InitInfo, const IAudioEndpointSettingsProxy &InitialSettings)
Definition IAudioEndpoint.cpp:204
static AUDIOEXTENSIONS_API FName GetModularFeatureName()
Definition IAudioEndpoint.cpp:143
static AUDIOEXTENSIONS_API void UnregisterEndpointType(IAudioEndpointFactory *InFactory)
Definition IAudioEndpoint.cpp:154
virtual AUDIOEXTENSIONS_API const UAudioEndpointSettingsBase * GetDefaultSettings() const
Definition IAudioEndpoint.cpp:214
Definition IAudioEndpoint.h:43
virtual ~IAudioEndpointSettingsProxy()
Definition IAudioEndpoint.h:45
Definition IAudioEndpoint.h:81
AUDIOEXTENSIONS_API void StopRunningAsyncCallback()
Definition IAudioEndpoint.cpp:101
AUDIOEXTENSIONS_API void RunCallbackSynchronously()
Definition IAudioEndpoint.cpp:106
virtual AUDIOEXTENSIONS_API int32 GetNumChannels() const
Definition IAudioEndpoint.cpp:64
AUDIOEXTENSIONS_API void ProcessAudioIfNeccessary()
Definition IAudioEndpoint.cpp:45
virtual AUDIOEXTENSIONS_API bool IsImplemented()
Definition IAudioEndpoint.cpp:54
virtual ~IAudioEndpoint()
Definition IAudioEndpoint.h:83
virtual int32 GetDesiredNumFrames() const
Definition IAudioEndpoint.h:133
AUDIOEXTENSIONS_API void PollSettings(TFunctionRef< void(const IAudioEndpointSettingsProxy *)> NewSettingsRetrieved)
Definition IAudioEndpoint.cpp:75
AUDIOEXTENSIONS_API void DisconnectAllInputs()
Definition IAudioEndpoint.cpp:81
AUDIOEXTENSIONS_API void SetNewSettings(TUniquePtr< IAudioEndpointSettingsProxy > &&InNewSettings)
Definition IAudioEndpoint.cpp:38
AUDIOEXTENSIONS_API int32 PopAudio(float *OutAudio, int32 NumSamples)
Definition IAudioEndpoint.cpp:69
virtual bool OnAudioCallback(const TArrayView< const float > &InAudio, const int32 &NumChannels, const IAudioEndpointSettingsProxy *InSettings)
Definition IAudioEndpoint.h:140
AUDIOEXTENSIONS_API void StartRunningAsyncCallback()
Definition IAudioEndpoint.cpp:86
AUDIOEXTENSIONS_API Audio::FPatchInput PatchNewInput(float ExpectedDurationPerRender, float &OutSampleRate, int32 &OutNumChannels)
Definition IAudioEndpoint.cpp:18
virtual bool EndpointRequiresCallback() const
Definition IAudioEndpoint.h:132
virtual AUDIOEXTENSIONS_API float GetSampleRate() const
Definition IAudioEndpoint.cpp:59
Definition IModularFeature.h:12
Definition ArrayView.h:139
Definition AssetRegistryState.h:50
Definition UniquePtr.h:107
Definition IAudioEndpoint.h:54
virtual TUniquePtr< IAudioEndpointSettingsProxy > GetProxy() const PURE_VIRTUAL(UAudioEndpointSettingsBase
Definition IAudioEndpoint.h:58
Definition Class.h:3793
Definition IAudioEndpoint.h:68
Definition Object.h:95
Definition IAudioExtensionPlugin.h:127