// Copyright Epic Games, Inc. All Rights Reserved. #include "MetasoundParameterPack.h" #include "MetasoundFrontendDocumentAccessPtr.h" #include "MetasoundDataTypeRegistrationMacro.h" #include DEFINE_LOG_CATEGORY_STATIC(LogMetasoundParamPack, Log, All); REGISTER_METASOUND_DATATYPE(FMetasoundParameterStorageWrapper, "MetasoundParameterPack", Metasound::ELiteralType::UObjectProxy, UMetasoundParameterPack); namespace MetasoundParameterPack { FName RoutingName("ParamPack"); } TSharedPtr UMetasoundParameterPack::CreateProxyData(const Audio::FProxyDataInitParams& InitParams) { return MakeShared(ParameterStorage); } Metasound::FSendAddress UMetasoundParameterPack::CreateSendAddressFromEnvironment(const Metasound::FMetasoundEnvironment& InEnvironment) { PRAGMA_DISABLE_DEPRECATION_WARNINGS return Metasound::FMetaSoundParameterTransmitter::CreateSendAddressFromEnvironment(InEnvironment, MetasoundParameterPack::RoutingName, Metasound::GetMetasoundDataTypeName()); PRAGMA_ENABLE_DEPRECATION_WARNINGS } FMetasoundFrontendClassInput UMetasoundParameterPack::GetClassInput() { FMetasoundFrontendClassInput ClassInput; ClassInput.Name = MetasoundParameterPack::RoutingName; ClassInput.DefaultLiteral = FMetasoundFrontendLiteral({ MetasoundParameterPack::RoutingName, nullptr }); ClassInput.TypeName = Metasound::GetMetasoundDataTypeName(); return ClassInput; } UMetasoundParameterPack* UMetasoundParameterPack::MakeMetasoundParameterPack() { return NewObject(); } ESetParamResult UMetasoundParameterPack::SetBool(FName Name, bool InValue, bool OnlyIfExists) { return SetParameter(Name, Metasound::GetMetasoundDataTypeName(), InValue, OnlyIfExists); } ESetParamResult UMetasoundParameterPack::SetInt(FName Name, int32 InValue, bool OnlyIfExists) { return SetParameter(Name, Metasound::GetMetasoundDataTypeName(), InValue, OnlyIfExists); } ESetParamResult UMetasoundParameterPack::SetFloat(FName Name, float InValue, bool OnlyIfExists) { return SetParameter(Name, Metasound::GetMetasoundDataTypeName(), InValue, OnlyIfExists); } ESetParamResult UMetasoundParameterPack::SetString(FName Name, const FString& InValue, bool OnlyIfExists) { return SetParameter(Name, Metasound::GetMetasoundDataTypeName(), InValue, OnlyIfExists); } ESetParamResult UMetasoundParameterPack::SetTrigger(FName Name, bool OnlyIfExists) { return SetParameter(Name, Metasound::GetMetasoundDataTypeName(), true, OnlyIfExists); } bool UMetasoundParameterPack::GetBool(FName Name, ESetParamResult& Result) const { return GetParameter(Name, Metasound::GetMetasoundDataTypeName(), Result); } int32 UMetasoundParameterPack::GetInt(FName Name, ESetParamResult& Result) const { return GetParameter(Name, Metasound::GetMetasoundDataTypeName(), Result); } float UMetasoundParameterPack::GetFloat(FName Name, ESetParamResult& Result) const { return GetParameter(Name, Metasound::GetMetasoundDataTypeName(), Result); } FString UMetasoundParameterPack::GetString(FName Name, ESetParamResult& Result) const { return GetParameter(Name, Metasound::GetMetasoundDataTypeName(), Result); } bool UMetasoundParameterPack::GetTrigger(FName Name, ESetParamResult& Result) const { return GetParameter(Name, Metasound::GetMetasoundDataTypeName(), Result); } bool* UMetasoundParameterPack::GetBoolParameterPtr(FName Name) const { return GetParameterPtr(Name, Metasound::GetMetasoundDataTypeName()); } int32* UMetasoundParameterPack::GetIntParameterPtr(FName Name) const { return GetParameterPtr(Name, Metasound::GetMetasoundDataTypeName()); } float* UMetasoundParameterPack::GetFloatParameterPtr(FName Name) const { return GetParameterPtr(Name, Metasound::GetMetasoundDataTypeName()); } FString* UMetasoundParameterPack::GetStringParameterPtr(FName Name) const { return GetParameterPtr(Name, Metasound::GetMetasoundDataTypeName()); } bool* UMetasoundParameterPack::GetTriggerParameterPtr(FName Name) const { return GetParameterPtr(Name, Metasound::GetMetasoundDataTypeName()); } bool UMetasoundParameterPack::HasBool(FName Name) const { return HasParameter(Name, Metasound::GetMetasoundDataTypeName()); } bool UMetasoundParameterPack::HasInt(FName Name) const { return HasParameter(Name, Metasound::GetMetasoundDataTypeName()); } bool UMetasoundParameterPack::HasFloat(FName Name) const { return HasParameter(Name, Metasound::GetMetasoundDataTypeName()); } bool UMetasoundParameterPack::HasString(FName Name) const { return HasParameter(Name, Metasound::GetMetasoundDataTypeName()); } bool UMetasoundParameterPack::HasTrigger(FName Name) const { return HasParameter(Name, Metasound::GetMetasoundDataTypeName()); } void UMetasoundParameterPack::AddBoolParameter(FName Name, bool InValue) { AddParameter(Name, Metasound::GetMetasoundDataTypeName(), InValue); } void UMetasoundParameterPack::AddIntParameter(FName Name, int32 InValue) { AddParameter(Name, Metasound::GetMetasoundDataTypeName(), InValue); } void UMetasoundParameterPack::AddFloatParameter(FName Name, float InValue) { AddParameter(Name, Metasound::GetMetasoundDataTypeName(), InValue); } void UMetasoundParameterPack::AddStringParameter(FName Name, const FString& InValue) { AddParameter(Name, Metasound::GetMetasoundDataTypeName(), InValue); } void UMetasoundParameterPack::AddTriggerParameter(FName Name, bool InValue) { AddParameter(Name, Metasound::GetMetasoundDataTypeName(), InValue); } FSharedMetasoundParameterStoragePtr UMetasoundParameterPack::GetParameterStorage() const { return ParameterStorage; } FSharedMetasoundParameterStoragePtr UMetasoundParameterPack::GetCopyOfParameterStorage() const { if (!ParameterStorage.IsValid()) { return nullptr; } return MakeShared(*ParameterStorage); }