You've already forked UnrealEngineUWP
mirror of
https://github.com/izzy2lost/UnrealEngineUWP.git
synced 2026-03-26 18:15:20 -07:00
[Backout] - CL33084850
[FYI] Rob.Gay Original CL Desc ----------------------------------------------------------------- Version Metasound Document to include all ed data and make all Metasound EdGraph data transient - Add input template nodes - Add comment node data to document - Keep references to member literal data (i.e. knob/slider ranges) in document metadata to ensure continued serialization and flexibility to add more editor-only fields and literal metadata - Misc builder API updates, bug fixes and migration of controllers to builder API in anticipation of pages - Sunset non-deterministic guid cvar #rb phil.popp, helen.yang [FYI] sondra.moyls #tests Standard Automated Audio Tests, EngineTests, Offline QA Smoke pass, CPR, etc., extensive MetaSound Editor use, -game MetaSound qa levels, AudioUnitTests #jira UE-194159 [CL 33096249 by bob tellez in ue5-main branch]
This commit is contained in:
@@ -13,14 +13,12 @@
|
||||
#include "MetasoundDataReference.h"
|
||||
#include "MetasoundFrontendController.h"
|
||||
#include "MetasoundFrontendSearchEngine.h"
|
||||
#include "MetasoundTrigger.h"
|
||||
#include "Misc/AutomationTest.h"
|
||||
#include "Misc/Paths.h"
|
||||
#include "NodeTemplates/MetasoundFrontendNodeTemplateInput.h"
|
||||
#include "Tests/AutomationCommon.h"
|
||||
|
||||
#if WITH_DEV_AUTOMATION_TESTS
|
||||
|
||||
#if WITH_DEV_AUTOMATION_TESTS
|
||||
namespace EngineTestMetaSoundPatchBuilderPrivate
|
||||
{
|
||||
UMetaSoundPatchBuilder& CreatePatchBuilderChecked(FAutomationTestBase& Test, FName BuilderName, const TArray<FName>& InterfaceNamesToAdd)
|
||||
@@ -195,8 +193,8 @@ bool FAudioMetaSoundBuilderInterfaceBindingConnectAndDisconnect::RunTest(const F
|
||||
}
|
||||
|
||||
// This test creates a MetaSound patch, then adds and connects sin oscillator, attempts to retrieve a default input set, then clears it, and finally retrieves the class default
|
||||
IMPLEMENT_SIMPLE_AUTOMATION_TEST(FAudioMetaSoundNodeClassQueryFunctions, "Audio.Metasound.Builder.NodeClassQueryFunctions", EAutomationTestFlags::EditorContext | EAutomationTestFlags::EngineFilter)
|
||||
bool FAudioMetaSoundNodeClassQueryFunctions::RunTest(const FString& Parameters)
|
||||
IMPLEMENT_SIMPLE_AUTOMATION_TEST(FAudioMetasoundNodeClassQueryFunctions, "Audio.Metasound.Builder.NodeClassQueryFunctions", EAutomationTestFlags::EditorContext | EAutomationTestFlags::EngineFilter)
|
||||
bool FAudioMetasoundNodeClassQueryFunctions::RunTest(const FString& Parameters)
|
||||
{
|
||||
using namespace EngineTestMetaSoundPatchBuilderPrivate;
|
||||
using namespace Metasound;
|
||||
@@ -205,7 +203,7 @@ bool FAudioMetaSoundNodeClassQueryFunctions::RunTest(const FString& Parameters)
|
||||
constexpr float NodeDefaultFreq = 100.0f;
|
||||
|
||||
EMetaSoundBuilderResult Result = EMetaSoundBuilderResult::Failed;
|
||||
UMetaSoundPatchBuilder& Builder = CreatePatchBuilderChecked(*this, "DefaultLiteralAssignment_Test", { });
|
||||
UMetaSoundPatchBuilder& Builder = CreatePatchBuilderChecked(*this, "DefaultLiteralAssignment", { });
|
||||
|
||||
// Sine Oscillator Node
|
||||
const FMetaSoundNodeHandle OscNode = Builder.AddNodeByClassName({ "UE", "Sine", "Audio" }, Result, 1);
|
||||
@@ -273,62 +271,4 @@ bool FAudioMetaSoundNodeClassQueryFunctions::RunTest(const FString& Parameters)
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
// This test creates a MetaSound patch, adds a frequency input, connects a sin oscillator, and if the editor is loaded, and then attempts to inject template input nodes.
|
||||
IMPLEMENT_SIMPLE_AUTOMATION_TEST(FAudioMetaSoundInjectTemplateNodes, "Audio.Metasound.Builder.InjectInputTemplateNodes", EAutomationTestFlags::EditorContext | EAutomationTestFlags::EngineFilter)
|
||||
bool FAudioMetaSoundInjectTemplateNodes::RunTest(const FString& Parameters)
|
||||
{
|
||||
using namespace EngineTestMetaSoundPatchBuilderPrivate;
|
||||
using namespace Metasound;
|
||||
using namespace Metasound::Frontend;
|
||||
|
||||
constexpr float NodeDefaultFreq = 100.0f;
|
||||
|
||||
EMetaSoundBuilderResult Result = EMetaSoundBuilderResult::Failed;
|
||||
UMetaSoundPatchBuilder& Builder = CreatePatchBuilderChecked(*this, "TemplateInputInjection_Test", { });
|
||||
|
||||
// Sine Oscillator Node
|
||||
const FMetaSoundNodeHandle OscNode = Builder.AddNodeByClassName({ "UE", "Sine", "Audio" }, Result, 1);
|
||||
AddErrorIfFalse(Result == EMetaSoundBuilderResult::Succeeded && OscNode.IsSet(), TEXT("Failed to create new MetaSound node by class name"));
|
||||
|
||||
auto MakeAndConnectSinInputToGraphInput = [&](FName InputName, FName TypeName, const FVector2D* Location, const FMetasoundFrontendLiteral& InLiteral, bool bIsCtorPin)
|
||||
{
|
||||
const FMetaSoundBuilderNodeOutputHandle InputNodeOutputHandle = Builder.AddGraphInputNode(InputName, TypeName, InLiteral, Result, bIsCtorPin);
|
||||
AddErrorIfFalse(Result == EMetaSoundBuilderResult::Succeeded && InputNodeOutputHandle.IsSet(), TEXT("Failed to create new MetaSound graph input"));
|
||||
|
||||
const FMetaSoundBuilderNodeInputHandle OscNodeInput = Builder.FindNodeInputByName(OscNode, InputName, Result);
|
||||
AddErrorIfFalse(Result == EMetaSoundBuilderResult::Succeeded && OscNodeInput.IsSet(), TEXT("Failed to find Sine Oscillator node input"));
|
||||
|
||||
Builder.ConnectNodes(InputNodeOutputHandle, OscNodeInput, Result);
|
||||
AddErrorIfFalse(Result == EMetaSoundBuilderResult::Succeeded, TEXT("Failed to connect input node to node input"));
|
||||
|
||||
#if WITH_EDITOR
|
||||
if (Location)
|
||||
{
|
||||
Builder.SetNodeLocation(FMetaSoundNodeHandle{ InputNodeOutputHandle.NodeID }, *Location, Result);
|
||||
AddErrorIfFalse(Result == EMetaSoundBuilderResult::Succeeded, TEXT("Failed to set input node location"));
|
||||
}
|
||||
#endif // WITH_EDITOR
|
||||
};
|
||||
FMetasoundFrontendLiteral Literal;
|
||||
|
||||
Literal.Set(true);
|
||||
MakeAndConnectSinInputToGraphInput("Enabled", GetMetasoundDataTypeName<bool>(), nullptr, Literal, true);
|
||||
|
||||
Literal.Set(100.0f);
|
||||
FVector2D FreqLoc(100, 100);
|
||||
MakeAndConnectSinInputToGraphInput("Frequency", GetMetasoundDataTypeName<float>(), nullptr, Literal, false);
|
||||
|
||||
Literal.Set(FMetasoundFrontendLiteral::FDefault { });
|
||||
FVector2D SyncLoc(300, 300);
|
||||
MakeAndConnectSinInputToGraphInput("Sync", GetMetasoundDataTypeName<FTrigger>(), nullptr, Literal, false);
|
||||
|
||||
#if WITH_EDITOR
|
||||
constexpr bool bForceNodeCreation = false;
|
||||
Builder.InjectInputTemplateNodes(bForceNodeCreation, Result);
|
||||
AddErrorIfFalse(Result == EMetaSoundBuilderResult::Succeeded, TEXT("Failed to inject input template node"));
|
||||
#endif // WITH_EDITOR
|
||||
|
||||
return true;
|
||||
}
|
||||
#endif // WITH_DEV_AUTOMATION_TESTS
|
||||
|
||||
@@ -310,7 +310,7 @@ bool FMetaSoundSourceBuilderAuditionLatentCommand::Update()
|
||||
if (const USoundBase* InitSound = AudioComponent->GetSound())
|
||||
{
|
||||
const UMetaSoundSource* InitMetaSound = CastChecked<UMetaSoundSource>(InitSound);
|
||||
return InitMetaSound->GetConstDocumentChecked().RootGraph.Metadata.GetClassName().GetFullName();
|
||||
return InitMetaSound->GetDocumentChecked().RootGraph.Metadata.GetClassName().GetFullName();
|
||||
}
|
||||
|
||||
return { };
|
||||
@@ -384,10 +384,7 @@ bool FAudioMetasoundSourceTest::RunTest(const FString& Parameters)
|
||||
UMetaSoundSource* MetaSoundSource = NewObject<UMetaSoundSource>(GetTransientPackage(), FName(*LexToString(FGuid::NewGuid())));;
|
||||
if (ensure(nullptr != MetaSoundSource))
|
||||
{
|
||||
// TODO: Move to using builder to swap in doc
|
||||
PRAGMA_DISABLE_DEPRECATION_WARNINGS
|
||||
MetaSoundSource->SetDocument(CreateMonoSourceDocument());
|
||||
PRAGMA_ENABLE_DEPRECATION_WARNINGS
|
||||
|
||||
if (UAudioComponent* AudioComponent = CreateTestComponent(*this, MetaSoundSource))
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user