6#include "Containers/Array.h"
21#include "ISoundfieldFormat.generated.h"
57 class FMixerSourceManager;
84template<
typename ToType,
typename FromType>
94 return *
static_cast<ToType*
>(&
InRef);
#define check(expr)
Definition AssertionMacros.h:314
#define PURE_VIRTUAL(func,...)
Definition CoreMiscDefines.h:103
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define GENERATED_BODY(...)
Definition ObjectMacros.h:765
#define UCLASS(...)
Definition ObjectMacros.h:776
constexpr uint32 HashCombine(uint32 A, uint32 C)
Definition TypeHash.h:36
Definition AudioMixerSourceManager.h:192
Definition AudioMixerSubmix.h:110
Definition Engine.Build.cs:7
Definition Archive.h:1208
Definition NameTypes.h:617
Definition IModularFeature.h:12
Definition ISoundfieldFormat.h:137
virtual TUniquePtr< ISoundfieldAudioPacket > Duplicate() const =0
virtual ~ISoundfieldAudioPacket()
Definition ISoundfieldFormat.h:139
virtual void Serialize(FArchive &Ar)=0
Definition ISoundfieldFormat.h:218
virtual ~ISoundfieldDecoderStream()
Definition ISoundfieldFormat.h:220
virtual void Decode(const FSoundfieldDecoderInputData &InputData, FSoundfieldDecoderOutputData &OutputData)=0
virtual void DecodeAndMixIn(const FSoundfieldDecoderInputData &InputData, FSoundfieldDecoderOutputData &OutputData)=0
Definition ISoundfieldFormat.h:371
virtual ~ISoundfieldEffectInstance()
Definition ISoundfieldFormat.h:373
virtual void ProcessAudio(ISoundfieldAudioPacket &InOutPacket, const ISoundfieldEncodingSettingsProxy &EncodingSettings, const ISoundfieldEffectSettingsProxy &ProcessorSettings)=0
Definition ISoundfieldFormat.h:345
virtual ~ISoundfieldEffectSettingsProxy()
Definition ISoundfieldFormat.h:347
Definition ISoundfieldFormat.h:193
virtual void EncodeAndMixIn(const FSoundfieldEncoderInputData &InputData, ISoundfieldAudioPacket &OutputData)=0
virtual ~ISoundfieldEncoderStream()
Definition ISoundfieldFormat.h:195
virtual void Encode(const FSoundfieldEncoderInputData &InputData, ISoundfieldAudioPacket &OutputData)=0
Definition ISoundfieldFormat.h:104
virtual ~ISoundfieldEncodingSettingsProxy()
Definition ISoundfieldFormat.h:106
virtual uint32 GetUniqueId() const =0
virtual TUniquePtr< ISoundfieldEncodingSettingsProxy > Duplicate() const =0
Definition ISoundfieldFormat.h:254
virtual bool IsTranscodeRequiredBetweenSettings(const ISoundfieldEncodingSettingsProxy &SourceSettings, const ISoundfieldEncodingSettingsProxy &DestinationSettings)
Definition ISoundfieldFormat.h:307
static AUDIOEXTENSIONS_API void RegisterSoundfieldFormat(ISoundfieldFactory *InFactory)
Definition ISoundfieldFormat.cpp:28
virtual TUniquePtr< ISoundfieldDecoderStream > CreateDecoderStream(const FAudioPluginInitializationParams &InitInfo, const ISoundfieldEncodingSettingsProxy &InitialSettings)=0
static AUDIOEXTENSIONS_API FName GetFormatNameForInheritedEncoding()
Definition ISoundfieldFormat.cpp:16
virtual TUniquePtr< ISoundfieldAudioPacket > CreateEmptyPacket()=0
static AUDIOEXTENSIONS_API FName GetModularFeatureName()
Definition ISoundfieldFormat.cpp:22
virtual ~ISoundfieldFactory()
Definition ISoundfieldFormat.h:257
virtual TUniquePtr< ISoundfieldMixerStream > CreateMixerStream(const ISoundfieldEncodingSettingsProxy &InitialSettings)=0
virtual FName GetSoundfieldFormatName()=0
static AUDIOEXTENSIONS_API ISoundfieldFactory * Get(const FName &InName)
Definition ISoundfieldFormat.cpp:40
virtual bool IsEndpointFormat()
Definition ISoundfieldFormat.h:341
virtual bool CanTranscodeFromSoundfieldFormat(FName SourceFormat, const ISoundfieldEncodingSettingsProxy &SourceEncodingSettings)=0
static AUDIOEXTENSIONS_API TArray< FName > GetAvailableSoundfieldFormats()
Definition ISoundfieldFormat.cpp:68
static AUDIOEXTENSIONS_API FName GetFormatNameForNoEncoding()
Definition ISoundfieldFormat.cpp:10
virtual UClass * GetCustomEncodingSettingsClass() const
Definition ISoundfieldFormat.h:330
virtual TUniquePtr< ISoundfieldTranscodeStream > CreateTranscoderStream(const FName SourceFormat, const ISoundfieldEncodingSettingsProxy &InitialSourceSettings, const FName DestinationFormat, const ISoundfieldEncodingSettingsProxy &InitialDestinationSettings, const FAudioPluginInitializationParams &InitInfo)=0
virtual bool CanTranscodeToSoundfieldFormat(FName DestinationFormat, const ISoundfieldEncodingSettingsProxy &DestinationEncodingSettings)=0
virtual const USoundfieldEncodingSettingsBase * GetDefaultEncodingSettings()=0
static AUDIOEXTENSIONS_API void UnregisterSoundfieldFormat(ISoundfieldFactory *InFactory)
Definition ISoundfieldFormat.cpp:34
virtual TUniquePtr< ISoundfieldEncoderStream > CreateEncoderStream(const FAudioPluginInitializationParams &InitInfo, const ISoundfieldEncodingSettingsProxy &InitialSettings)=0
virtual bool ShouldEncodeAllStreamsIndependently(const ISoundfieldEncodingSettingsProxy &EncodingSettings)
Definition ISoundfieldFormat.h:322
Definition ISoundfieldFormat.h:246
virtual ~ISoundfieldMixerStream()
Definition ISoundfieldFormat.h:248
virtual void MixTogether(const FSoundfieldMixerInputData &InputData, ISoundfieldAudioPacket &PacketToMixInto)=0
Definition ISoundfieldFormat.h:227
virtual void Transcode(const ISoundfieldAudioPacket &InputData, const ISoundfieldEncodingSettingsProxy &InputSettings, ISoundfieldAudioPacket &OutputData, const ISoundfieldEncodingSettingsProxy &OutputSettings)=0
virtual void TranscodeAndMixIn(const ISoundfieldAudioPacket &InputData, const ISoundfieldEncodingSettingsProxy &InputSettings, ISoundfieldAudioPacket &PacketToMixTo, const ISoundfieldEncodingSettingsProxy &OutputSettings)=0
virtual ~ISoundfieldTranscodeStream()
Definition ISoundfieldFormat.h:229
Definition UniquePtr.h:107
Definition ISoundfieldFormat.h:384
Definition ISoundfieldFormat.h:352
virtual TUniquePtr< ISoundfieldEffectSettingsProxy > GetNewProxy() const PURE_VIRTUAL(USoundfieldEffectSettingsBase
Definition ISoundfieldFormat.h:356
Definition ISoundfieldFormat.h:124
virtual TUniquePtr< ISoundfieldEncodingSettingsProxy > GetProxy() const PURE_VIRTUAL(USoundfieldEncodingSettingsBase
Definition ISoundfieldFormat.h:128
NO_LOGGING.
Definition AudioMixerPlatformAndroid.cpp:53
Type
Definition AudioMixer.h:83
@ DefaultChannel
Definition AudioMixer.h:104
@ false
Definition radaudio_common.h:23
Definition ISoundfieldFormat.h:61
float Elevation
Definition ISoundfieldFormat.h:71
float Radius
Definition ISoundfieldFormat.h:75
float Azimuth
Definition ISoundfieldFormat.h:67
EAudioMixerChannel::Type Channel
Definition ISoundfieldFormat.h:62
Definition IAudioExtensionPlugin.h:127
Definition ISoundfieldFormat.h:213
Audio::FAlignedFloatBuffer & AudioBuffer
Definition ISoundfieldFormat.h:214
Definition ISoundfieldFormat.h:429
bool operator==(const FSoundfieldEncodingKey &Other) const
Definition ISoundfieldFormat.h:445
friend uint32 GetTypeHash(const FSoundfieldEncodingKey &Value)
Definition ISoundfieldFormat.h:450
FSoundfieldEncodingKey(ISoundfieldFactory *Factory, ISoundfieldEncodingSettingsProxy &InSettings)
Definition ISoundfieldFormat.h:439
FSoundfieldEncodingKey()
Definition ISoundfieldFormat.h:433
FName SoundfieldFormat
Definition ISoundfieldFormat.h:430
int32 EncodingSettingsID
Definition ISoundfieldFormat.h:431
Definition ISoundfieldFormat.h:161
const TArray< Audio::FChannelPositionInfo > * ChannelPositions
Definition ISoundfieldFormat.h:164
int32 NumChannels
Definition ISoundfieldFormat.h:162
FQuat Rotation
Definition ISoundfieldFormat.h:168
Definition ObjectPtr.h:488
static CORE_API const TQuat< double > Identity
Definition Quat.h:63