21#define IMPL_AUDIOPROXY_CLASS(FClassName) \
22 static FName GetAudioProxyTypeName() \
24 static FName MyClassName = #FClassName; \
27 static constexpr bool bWasAudioProxyClassImplemented = true; \
28 friend class ::Audio::IProxyData; \
29 friend class ::Audio::TProxyData<FClassName>;
48 template<
typename ProxyType>
60 template<
typename ProxyType>
63 static_assert(std::is_base_of_v<IProxyData, ProxyType>,
"Tried to downcast IProxyInitData to an unrelated type!");
66 return static_cast<ProxyType&
>(*this);
72 return *((ProxyType*)0x1);
76 template<
typename ProxyType>
79 static_assert(std::is_base_of_v<IProxyData, ProxyType>,
"Tried to downcast IProxyInitData to an unrelated type!");
82 return static_cast<const ProxyType&
>(*this);
88 return *((ProxyType*)0x1);
96 UE_DEPRECATED(5.2,
"Proxy data is stored in a TSharedPtr<> and no longer requires cloning")
104 template <
typename Type>
114 static_assert(Type::bWasAudioProxyClassImplemented,
"Make sure to include IMPL_AUDIOPROXY_CLASS(ClassName) in your implementation of TProxyData.");
130 UE_DEPRECATED(5.2,
"Call TSharedPtr<Audio::IProxyData> CreateProxyData(...) instead of a TUniquePtr<Audio::IProxyData> CreateNewProxyData(...).")
138 template <
typename UClassToUse>
141 if constexpr (std::is_base_of_v<IAudioProxyDataFactory, UClassToUse>)
#define ensureAlways( InExpression)
Definition AssertionMacros.h:466
#define ensureAlwaysMsgf(InExpression, InFormat,...)
Definition AssertionMacros.h:467
#define checkNoEntry()
Definition AssertionMacros.h:316
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
Definition IAudioProxyInitializer.h:42
virtual ~IProxyData()=default
ProxyType & GetAs()
Definition IAudioProxyInitializer.h:61
bool CheckTypeCast() const
Definition IAudioProxyInitializer.h:49
FName GetProxyTypeName() const
Definition IAudioProxyInitializer.h:55
const ProxyType & GetAs() const
Definition IAudioProxyInitializer.h:77
virtual TUniquePtr< IProxyData > Clone() const
Definition IAudioProxyInitializer.h:97
IProxyData(FName InProxyTypeName)
Definition IAudioProxyInitializer.h:92
Definition IAudioProxyInitializer.h:106
TProxyData()
Definition IAudioProxyInitializer.h:111
static constexpr bool bWasAudioProxyClassImplemented
Definition IAudioProxyInitializer.h:108
Definition NameTypes.h:617
CORE_API FString ToString() const
Definition UnrealNames.cpp:3537
Definition IAudioProxyInitializer.h:128
UE_DEPRECATED(5.2, "Call TSharedPtr<Audio::IProxyData> CreateProxyData(...) instead of a TUniquePtr<Audio::IProxyData> CreateNewProxyData(...).") AUDIOEXTENSIONS_API virtual TUniquePtr< Audio virtual AUDIOEXTENSIONS_API TSharedPtr< Audio::IProxyData > CreateProxyData(const Audio::FProxyDataInitParams &InitParams)
Definition IAudioProxyInitializer.cpp:17
Definition SharedPointer.h:692
Definition UniquePtr.h:107
NO_LOGGING.
Definition AudioMixerPlatformAndroid.cpp:53
IAudioProxyDataFactory * CastToProxyDataFactory(UObject *InObject)
Definition IAudioProxyInitializer.h:139
Definition IAudioProxyInitializer.h:119
FName NameOfFeatureRequestingProxy
Definition IAudioProxyInitializer.h:120