You've already forked UnrealEngineUWP
mirror of
https://github.com/izzy2lost/UnrealEngineUWP.git
synced 2026-03-26 18:15:20 -07:00
- Implement/encapsulate binding for analyzer output/sender logic - Move to using FAnyDataReferences where possible over collections for analyzers - Misc clean-up #jira UE-147027 #rb phil.popp #preflight 627d3884332e182a583f19b3 [CL 20167469 by Rob Gay in ue5-main branch]
46 lines
1.5 KiB
C++
46 lines
1.5 KiB
C++
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
#pragma once
|
|
|
|
#include "Analysis/MetasoundFrontendVertexAnalyzer.h"
|
|
#include "MetasoundBuilderInterface.h"
|
|
#include "MetasoundOperatorSettings.h"
|
|
#include "MetasoundRouter.h"
|
|
#include "MetasoundVertex.h"
|
|
#include "Templates/UniquePtr.h"
|
|
|
|
|
|
namespace Metasound
|
|
{
|
|
namespace Frontend
|
|
{
|
|
using FNodeVertexDataReferenceMap = TMap<FGuid, FDataReferenceCollection>;
|
|
|
|
// Handles intrinsic analysis operations within a given graph
|
|
// should the graph's operator be enabled for analysis.
|
|
class METASOUNDFRONTEND_API FGraphAnalyzer
|
|
{
|
|
const FOperatorSettings OperatorSettings;
|
|
const uint64 InstanceID = INDEX_NONE;
|
|
|
|
TUniquePtr<IReceiver> ActiveAnalyzerReceiver;
|
|
TArray<TUniquePtr<Frontend::IVertexAnalyzer>> Analyzers;
|
|
FNodeVertexDataReferenceMap InternalDataReferences;
|
|
|
|
public:
|
|
FGraphAnalyzer(const FOperatorSettings& InSettings, uint64 InInstanceID, FNodeVertexDataReferenceMap&& InGraphReferences);
|
|
~FGraphAnalyzer() = default;
|
|
|
|
// Creates a send channel name unique for the given sound instance used to send array of analyzer
|
|
// addresses to the profiler of what analyzers are expected to be active for a given instance.
|
|
static const FName GetAnalyzerArraySendChannelName(uint64 InInstanceID)
|
|
{
|
|
const FString ChannelName = FString::Printf(TEXT("AnalyzerArray%s%lld"), *FAnalyzerAddress::PathSeparator, InInstanceID);
|
|
return *ChannelName;
|
|
}
|
|
|
|
// Execute analysis for the current block
|
|
void Execute();
|
|
};
|
|
} // namespace Frontend
|
|
} // namespace Metasound
|