Files
UnrealEngine/Engine/Plugins/Runtime/Metasound/Source/MetasoundEngineTest/Private/Interfaces/MetasoundTestInterfaces.cpp
2025-05-18 13:04:45 +08:00

146 lines
4.1 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#include "MetasoundTestInterfaces.h"
#include "MetasoundFrontendDocument.h"
#include "MetasoundPrimitives.h"
#include "MetasoundTrigger.h"
#define LOCTEXT_NAMESPACE "MetasoundTestInterfaces"
namespace Metasound::Test
{
#define AUDIO_PARAMETER_INTERFACE_NAMESPACE "UE.Test.Update"
namespace UpdateTestInterface_0_1
{
const FMetasoundFrontendVersion& GetVersion()
{
static const FMetasoundFrontendVersion Version = { AUDIO_PARAMETER_INTERFACE_NAMESPACE, { 0, 1 } };
return Version;
}
namespace Inputs
{
const FName InputTrigger = AUDIO_PARAMETER_INTERFACE_MEMBER_DEFINE("InputTrigger");
}
namespace Outputs
{
const FName OutputTrigger = AUDIO_PARAMETER_INTERFACE_MEMBER_DEFINE("OutputTrigger");
}
Audio::FParameterInterfacePtr CreateInterface(const UClass& InClass)
{
struct FInterface : public Audio::FParameterInterface
{
FInterface(const FTopLevelAssetPath& InClassPath)
: FParameterInterface(UpdateTestInterface_0_1::GetVersion().Name, UpdateTestInterface_0_1::GetVersion().Number.ToInterfaceVersion())
{
constexpr bool bIsModifiable = true;
constexpr bool bIsDefault = false;
UClassOptions = TArray<FClassOptions>
{
{ InClassPath, bIsModifiable, bIsDefault }
};
Inputs =
{
{
LOCTEXT("InputTrigger", "Input Trigger"),
LOCTEXT("InputTrigger Description", "A trigger input used for testing Metasound Interfaces."),
GetMetasoundDataTypeName<FTrigger>(),
Inputs::InputTrigger
}
};
Outputs =
{
{
LOCTEXT("OutputTrigger", "Output Trigger"),
LOCTEXT("OutputTrigger Description", "A trigger output used for testing Metasound Interfaces."),
GetMetasoundDataTypeName<FTrigger>(),
Outputs::OutputTrigger
}
};
}
};
return MakeShared<FInterface>(InClass.GetClassPathName());
}
}
namespace UpdateTestInterface_0_2
{
const FMetasoundFrontendVersion& GetVersion()
{
static const FMetasoundFrontendVersion Version = { AUDIO_PARAMETER_INTERFACE_NAMESPACE, { 0, 2 } };
return Version;
}
namespace Inputs
{
const FName InputTrigger = AUDIO_PARAMETER_INTERFACE_MEMBER_DEFINE("InputTrigger");
const FName InputFloat = AUDIO_PARAMETER_INTERFACE_MEMBER_DEFINE("InputFloat");
}
namespace Outputs
{
const FName OutputTrigger = AUDIO_PARAMETER_INTERFACE_MEMBER_DEFINE("OutputTrigger");
const FName OutputFloat = AUDIO_PARAMETER_INTERFACE_MEMBER_DEFINE("OutputFloat");
}
Audio::FParameterInterfacePtr CreateInterface(const UClass& InClass)
{
struct FInterface : public Audio::FParameterInterface
{
FInterface(const FTopLevelAssetPath& InClassPath)
: FParameterInterface(UpdateTestInterface_0_2::GetVersion().Name, UpdateTestInterface_0_2::GetVersion().Number.ToInterfaceVersion())
{
constexpr bool bIsModifiable = true;
constexpr bool bIsDefault = false;
UClassOptions = TArray<FClassOptions>
{
{ InClassPath, bIsModifiable, bIsDefault }
};
Inputs =
{
{
LOCTEXT("InputTrigger", "Input Trigger"),
LOCTEXT("InputTrigger Description", "A trigger input used for testing Metasound Interfaces."),
GetMetasoundDataTypeName<FTrigger>(),
Inputs::InputTrigger
},
{
LOCTEXT("InputFloat", "Input Float"),
LOCTEXT("InputFloat Description", "A float input used for testing Metasound Interfaces."),
GetMetasoundDataTypeName<float>(),
Inputs::InputFloat
}
};
Outputs =
{
{
LOCTEXT("OutputTrigger", "Output Trigger"),
LOCTEXT("OutputTrigger Description", "A trigger output used for testing Metasound Interfaces."),
GetMetasoundDataTypeName<FTrigger>(),
Outputs::OutputTrigger
},
{
LOCTEXT("OutputFloat", "Output Float"),
LOCTEXT("OutputFloat Description", "A float output used for testing Metasound Interfaces."),
GetMetasoundDataTypeName<float>(),
Outputs::OutputFloat
}
};
}
};
return MakeShared<FInterface>(InClass.GetClassPathName());
}
}
#undef AUDIO_PARAMETER_INTERFACE_NAMESPACE
}
#undef LOCTEXT_NAMESPACE