Files
UnrealEngineUWP/Engine/Plugins/Runtime/Metasound/Source/MetasoundFrontend/Private/MetasoundInstanceTransmitter.cpp
phil popp c2c509e3fd Metasound BP interface
- Adding IAudioInstanceTransmitter interface to Audio extensions
- Adding IAudioInstanceTransmitter to FActiveSound
- Renaming functions with "Archetype" to "MetasoundArchetype" to avoid conflict with UOBject archetype.
- Adding transmittable info to data type registration
- Adding default input pin to receive node.
- Adding FMetasoundInstanceTransmitter for communicating to single metasound source instance.
#rb Aaron.McLeran, Rob.Gay
#jira UEAU-618

[CL 15162371 by phil popp in ue5-main branch]
2021-01-22 03:05:22 -04:00

54 lines
1.6 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#include "MetasoundInstanceTransmitter.h"
namespace Metasound
{
FMetasoundInstanceTransmitter::FMetasoundInstanceTransmitter(const FMetasoundInstanceTransmitter::FInitParams& InInitParams)
: SendInfos(InInitParams.Infos)
, OperatorSettings(InInitParams.OperatorSettings)
, InstanceID(InInitParams.InstanceID)
{
}
uint64 FMetasoundInstanceTransmitter::GetInstanceID() const
{
return InstanceID;
}
bool FMetasoundInstanceTransmitter::SetFloatParameter(const FName& InParameterName, float InValue)
{
return SendValue<float>(InParameterName, InValue);
}
bool FMetasoundInstanceTransmitter::SetIntParameter(const FName& InParameterName, int32 InValue)
{
return SendValue<int32>(InParameterName, InValue);
}
bool FMetasoundInstanceTransmitter::SetBoolParameter(const FName& InParameterName, bool InValue)
{
return SendValue<bool>(InParameterName, InValue);
}
TUniquePtr<IAudioInstanceTransmitter> FMetasoundInstanceTransmitter::Clone() const
{
return MakeUnique<FMetasoundInstanceTransmitter>(FMetasoundInstanceTransmitter::FInitParams(OperatorSettings, InstanceID, SendInfos));
}
const FMetasoundInstanceTransmitter::FSendInfo* FMetasoundInstanceTransmitter::FindSendInfo(const FName& InParameterName) const
{
return SendInfos.FindByPredicate([&](const FSendInfo& Info) { return Info.ParameterName == InParameterName; });
}
ISender* FMetasoundInstanceTransmitter::FindSender(const FName& InParameterName)
{
TUniquePtr<ISender>* SenderPtrPtr = InputSends.Find(InParameterName);
if (SenderPtrPtr)
{
return SenderPtrPtr->Get();
}
return nullptr;
}
}