2021-01-13 10:48:59 -04:00
// Copyright Epic Games, Inc. All Rights Reserved.
# pragma once
# include "CoreMinimal.h"
# include "MetasoundBuilderInterface.h"
# include "MetasoundFrontendController.h"
2021-03-31 15:34:29 -04:00
# include "MetasoundFrontendDocument.h"
2021-01-13 10:48:59 -04:00
# include "MetasoundGraph.h"
namespace Metasound
{
namespace Frontend
{
namespace MetasoundFrontendInvalidControllerPrivate
{
// Helper to create a functional local static. Used when the interface requires
// a const reference returned.
template < typename Type >
const Type & GetInvalid ( )
{
static const Type InvalidValue ;
return InvalidValue ;
}
}
/** FInvalidOutputController is a controller which is always invalid.
*
* All methods return defaults and return error flags or invalid values .
*/
class METASOUNDFRONTEND_API FInvalidOutputController : public IOutputController
{
public :
FInvalidOutputController ( ) = default ;
virtual ~ FInvalidOutputController ( ) = default ;
static TSharedRef < IOutputController > GetInvalid ( )
{
static TSharedRef < IOutputController > InvalidController = MakeShared < FInvalidOutputController > ( ) ;
return MakeShared < FInvalidOutputController > ( ) ;
}
bool IsValid ( ) const override { return false ; }
2021-01-20 17:26:40 -04:00
FGuid GetID ( ) const override { return Metasound : : FrontendInvalidID ; }
2021-03-31 15:34:29 -04:00
const FName & GetDataType ( ) const override { return MetasoundFrontendInvalidControllerPrivate : : GetInvalid < FName > ( ) ; }
2021-01-13 10:48:59 -04:00
const FString & GetName ( ) const override { return MetasoundFrontendInvalidControllerPrivate : : GetInvalid < FString > ( ) ; }
const FText & GetDisplayName ( ) const override { return FText : : GetEmpty ( ) ; }
const FText & GetTooltip ( ) const override { return FText : : GetEmpty ( ) ; }
2021-03-31 15:34:29 -04:00
const FMetasoundFrontendVertexMetadata & GetMetadata ( ) const override { return MetasoundFrontendInvalidControllerPrivate : : GetInvalid < FMetasoundFrontendVertexMetadata > ( ) ; }
2021-01-20 17:26:40 -04:00
FGuid GetOwningNodeID ( ) const override { return Metasound : : FrontendInvalidID ; }
2021-01-13 10:48:59 -04:00
TSharedRef < INodeController > GetOwningNode ( ) override ;
TSharedRef < const INodeController > GetOwningNode ( ) const override ;
2021-05-20 19:33:21 -04:00
bool IsConnected ( ) const override { return false ; }
TArray < FInputHandle > GetConnectedInputs ( ) override { return TArray < FInputHandle > ( ) ; }
TArray < FConstInputHandle > GetConstConnectedInputs ( ) const override { return TArray < FConstInputHandle > ( ) ; }
2021-01-22 03:05:22 -04:00
bool Disconnect ( ) override { return false ; }
2021-01-13 10:48:59 -04:00
FConnectability CanConnectTo ( const IInputController & InController ) const override { return FConnectability ( ) ; }
bool Connect ( IInputController & InController ) override { return false ; }
bool ConnectWithConverterNode ( IInputController & InController , const FConverterNodeInfo & InNodeClassName ) override { return false ; }
bool Disconnect ( IInputController & InController ) override { return false ; }
2021-01-20 17:26:40 -04:00
protected :
FDocumentAccess ShareAccess ( ) override { return FDocumentAccess ( ) ; }
FConstDocumentAccess ShareAccess ( ) const override { return FConstDocumentAccess ( ) ; }
2021-01-13 10:48:59 -04:00
} ;
/** FInvalidInputController is a controller which is always invalid.
*
* All methods return defaults and return error flags or invalid values .
*/
class METASOUNDFRONTEND_API FInvalidInputController : public IInputController
{
public :
FInvalidInputController ( ) = default ;
virtual ~ FInvalidInputController ( ) = default ;
static TSharedRef < IInputController > GetInvalid ( )
{
static TSharedRef < IInputController > InvalidController = MakeShared < FInvalidInputController > ( ) ;
return InvalidController ;
}
bool IsValid ( ) const override { return false ; }
2021-01-20 17:26:40 -04:00
FGuid GetID ( ) const override { return Metasound : : FrontendInvalidID ; }
2021-01-13 10:48:59 -04:00
bool IsConnected ( ) const override { return false ; }
2021-02-03 14:36:36 -04:00
const FName & GetDataType ( ) const override { return MetasoundFrontendInvalidControllerPrivate : : GetInvalid < FName > ( ) ; }
2021-01-13 10:48:59 -04:00
const FString & GetName ( ) const override { return MetasoundFrontendInvalidControllerPrivate : : GetInvalid < FString > ( ) ; }
2021-03-19 15:10:57 -04:00
const FText & GetDisplayName ( ) const override { return MetasoundFrontendInvalidControllerPrivate : : GetInvalid < FText > ( ) ; }
const FText & GetTooltip ( ) const override { return MetasoundFrontendInvalidControllerPrivate : : GetInvalid < FText > ( ) ; }
2021-03-31 15:34:29 -04:00
const FMetasoundFrontendVertexMetadata & GetMetadata ( ) const override { return MetasoundFrontendInvalidControllerPrivate : : GetInvalid < FMetasoundFrontendVertexMetadata > ( ) ; }
2021-05-28 14:09:45 -04:00
const FMetasoundFrontendLiteral * GetLiteral ( ) const override { return nullptr ; }
void SetLiteral ( const FMetasoundFrontendLiteral & InLiteral ) { } ;
const FMetasoundFrontendLiteral * GetClassDefaultLiteral ( ) const override { return nullptr ; }
2021-01-20 17:26:40 -04:00
FGuid GetOwningNodeID ( ) const override { return Metasound : : FrontendInvalidID ; }
2021-01-13 10:48:59 -04:00
TSharedRef < INodeController > GetOwningNode ( ) override ;
TSharedRef < const INodeController > GetOwningNode ( ) const override ;
2021-05-20 19:33:21 -04:00
virtual TSharedRef < IOutputController > GetConnectedOutput ( ) override { return FInvalidOutputController : : GetInvalid ( ) ; }
virtual TSharedRef < const IOutputController > GetConnectedOutput ( ) const override { return FInvalidOutputController : : GetInvalid ( ) ; }
2021-01-22 03:05:22 -04:00
bool Disconnect ( ) override { return false ; }
2021-01-13 10:48:59 -04:00
virtual FConnectability CanConnectTo ( const IOutputController & InController ) const override { return FConnectability ( ) ; }
virtual bool Connect ( IOutputController & InController ) override { return false ; }
virtual bool ConnectWithConverterNode ( IOutputController & InController , const FConverterNodeInfo & InNodeClassName ) override { return false ; }
virtual bool Disconnect ( IOutputController & InController ) override { return false ; }
2021-01-20 17:26:40 -04:00
protected :
FDocumentAccess ShareAccess ( ) override { return FDocumentAccess ( ) ; }
FConstDocumentAccess ShareAccess ( ) const override { return FConstDocumentAccess ( ) ; }
2021-01-13 10:48:59 -04:00
} ;
/** FInvalidNodeController is a controller which is always invalid.
*
* All methods return defaults and return error flags or invalid values .
*/
class METASOUNDFRONTEND_API FInvalidNodeController : public INodeController
{
public :
FInvalidNodeController ( ) = default ;
virtual ~ FInvalidNodeController ( ) = default ;
static TSharedRef < INodeController > GetInvalid ( )
{
static TSharedRef < INodeController > InvalidValue = MakeShared < FInvalidNodeController > ( ) ;
return InvalidValue ;
}
bool IsValid ( ) const override { return false ; }
TArray < TSharedRef < IInputController > > GetInputs ( ) override { return TArray < TSharedRef < IInputController > > ( ) ; }
TArray < TSharedRef < IOutputController > > GetOutputs ( ) override { return TArray < TSharedRef < IOutputController > > ( ) ; }
TArray < TSharedRef < const IInputController > > GetConstInputs ( ) const override { return TArray < TSharedRef < const IInputController > > ( ) ; }
TArray < TSharedRef < const IOutputController > > GetConstOutputs ( ) const override { return TArray < TSharedRef < const IOutputController > > ( ) ; }
TArray < FInputHandle > GetInputsWithVertexName ( const FString & InName ) override { return TArray < FInputHandle > ( ) ; }
2021-05-20 19:33:21 -04:00
TArray < FConstInputHandle > GetConstInputsWithVertexName ( const FString & InName ) const override { return TArray < FConstInputHandle > ( ) ; }
2021-01-13 10:48:59 -04:00
TArray < FOutputHandle > GetOutputsWithVertexName ( const FString & InName ) override { return TArray < FOutputHandle > ( ) ; }
2021-05-20 19:33:21 -04:00
TArray < FConstOutputHandle > GetConstOutputsWithVertexName ( const FString & InName ) const override { return TArray < FConstOutputHandle > ( ) ; }
2021-02-24 18:37:19 -04:00
TSharedRef < IInputController > GetInputWithID ( FGuid InVertexID ) override { return FInvalidInputController : : GetInvalid ( ) ; }
TSharedRef < IOutputController > GetOutputWithID ( FGuid InVertexID ) override { return FInvalidOutputController : : GetInvalid ( ) ; }
TSharedRef < const IInputController > GetInputWithID ( FGuid InVertexID ) const override { return FInvalidInputController : : GetInvalid ( ) ; }
TSharedRef < const IOutputController > GetOutputWithID ( FGuid InVertexID ) const override { return FInvalidOutputController : : GetInvalid ( ) ; }
2021-01-13 10:48:59 -04:00
2021-01-23 12:59:01 -04:00
const FMetasoundFrontendNodeStyle & GetNodeStyle ( ) const override { static const FMetasoundFrontendNodeStyle Invalid ; return Invalid ; }
void SetNodeStyle ( const FMetasoundFrontendNodeStyle & InNodeStyle ) { } ;
2021-01-13 10:48:59 -04:00
bool CanAddInput ( const FString & InVertexName ) const override { return false ; }
FInputHandle AddInput ( const FString & InVertexName , const FMetasoundFrontendLiteral * InDefault ) override { return FInvalidInputController : : GetInvalid ( ) ; }
2021-02-24 18:37:19 -04:00
bool RemoveInput ( FGuid InVertexID ) override { return false ; }
2021-01-13 10:48:59 -04:00
bool CanAddOutput ( const FString & InVertexName ) const override { return false ; }
FInputHandle AddOutput ( const FString & InVertexName , const FMetasoundFrontendLiteral * InDefault ) override { return FInvalidInputController : : GetInvalid ( ) ; }
2021-02-24 18:37:19 -04:00
bool RemoveOutput ( FGuid InVertexID ) override { return false ; }
2021-01-13 10:48:59 -04:00
2021-05-28 14:09:45 -04:00
bool ClearInputLiteral ( FGuid InVertexID ) override { return false ; } ;
const FMetasoundFrontendLiteral * GetInputLiteral ( const FGuid & InVertexID ) const { return nullptr ; }
void SetInputLiteral ( const FMetasoundFrontendVertexLiteral & InVertexLiteral ) override { }
2021-05-03 17:52:04 -04:00
const FMetasoundFrontendClassInterface & GetClassInterface ( ) const override { return MetasoundFrontendInvalidControllerPrivate : : GetInvalid < FMetasoundFrontendClassInterface > ( ) ; }
const FMetasoundFrontendClassMetadata & GetClassMetadata ( ) const override { return MetasoundFrontendInvalidControllerPrivate : : GetInvalid < FMetasoundFrontendClassMetadata > ( ) ; }
const FMetasoundFrontendInterfaceStyle & GetInputStyle ( ) const override { return MetasoundFrontendInvalidControllerPrivate : : GetInvalid < FMetasoundFrontendInterfaceStyle > ( ) ; }
const FMetasoundFrontendInterfaceStyle & GetOutputStyle ( ) const override { return MetasoundFrontendInvalidControllerPrivate : : GetInvalid < FMetasoundFrontendInterfaceStyle > ( ) ; }
const FMetasoundFrontendClassStyle & GetClassStyle ( ) const override { return MetasoundFrontendInvalidControllerPrivate : : GetInvalid < FMetasoundFrontendClassStyle > ( ) ; }
2021-01-13 10:48:59 -04:00
2021-03-19 15:10:57 -04:00
const FText & GetDescription ( ) const override { return MetasoundFrontendInvalidControllerPrivate : : GetInvalid < FText > ( ) ; }
2021-06-23 20:07:53 -04:00
bool IsRequired ( ) const override { return false ; }
2021-03-19 15:10:57 -04:00
2021-01-13 10:48:59 -04:00
TSharedRef < IGraphController > AsGraph ( ) override ;
TSharedRef < const IGraphController > AsGraph ( ) const override ;
2021-01-20 17:26:40 -04:00
FGuid GetID ( ) const override { return Metasound : : FrontendInvalidID ; }
FGuid GetClassID ( ) const override { return Metasound : : FrontendInvalidID ; }
2021-01-13 10:48:59 -04:00
2021-01-20 17:26:40 -04:00
FGuid GetOwningGraphClassID ( ) const override { return Metasound : : FrontendInvalidID ; }
2021-01-13 10:48:59 -04:00
TSharedRef < IGraphController > GetOwningGraph ( ) override ;
TSharedRef < const IGraphController > GetOwningGraph ( ) const override ;
2021-03-19 15:10:57 -04:00
void IterateInputs ( TUniqueFunction < void ( FInputHandle ) > InFunction ) override { }
void IterateConstInputs ( TUniqueFunction < void ( FConstInputHandle ) > InFunction ) const override { }
void IterateOutputs ( TUniqueFunction < void ( FOutputHandle ) > InFunction ) override { }
void IterateConstOutputs ( TUniqueFunction < void ( FConstOutputHandle ) > InFunction ) const override { }
int32 GetNumInputs ( ) const override { return 0 ; }
int32 GetNumOutputs ( ) const override { return 0 ; }
2021-01-13 10:48:59 -04:00
const FString & GetNodeName ( ) const override { return MetasoundFrontendInvalidControllerPrivate : : GetInvalid < FString > ( ) ; }
2021-03-19 15:10:57 -04:00
const FText & GetDisplayName ( ) const override { return MetasoundFrontendInvalidControllerPrivate : : GetInvalid < FText > ( ) ; }
const FText & GetDisplayTitle ( ) const override { return MetasoundFrontendInvalidControllerPrivate : : GetInvalid < FText > ( ) ; }
void SetDescription ( const FText & InDescription ) override { }
void SetDisplayName ( const FText & InText ) override { }
2021-01-20 17:26:40 -04:00
protected :
FDocumentAccess ShareAccess ( ) override { return FDocumentAccess ( ) ; }
FConstDocumentAccess ShareAccess ( ) const override { return FConstDocumentAccess ( ) ; }
2021-01-13 10:48:59 -04:00
} ;
/** FInvalidGraphController is a controller which is always invalid.
*
* All methods return defaults and return error flags or invalid values .
*/
class METASOUNDFRONTEND_API FInvalidGraphController : public IGraphController
{
public :
FInvalidGraphController ( ) = default ;
virtual ~ FInvalidGraphController ( ) = default ;
static TSharedRef < IGraphController > GetInvalid ( )
{
static TSharedRef < IGraphController > InvalidGraph = MakeShared < FInvalidGraphController > ( ) ;
return InvalidGraph ;
}
bool IsValid ( ) const override { return false ; }
2021-05-20 19:33:21 -04:00
FGuid GetClassID ( ) const override { return Metasound : : FrontendInvalidID ; }
const FText & GetDisplayName ( ) const override { return MetasoundFrontendInvalidControllerPrivate : : GetInvalid < FText > ( ) ; }
2021-01-13 10:48:59 -04:00
TArray < FString > GetInputVertexNames ( ) const override { return TArray < FString > ( ) ; }
TArray < FString > GetOutputVertexNames ( ) const override { return TArray < FString > ( ) ; }
TArray < TSharedRef < INodeController > > GetNodes ( ) override { return TArray < TSharedRef < INodeController > > ( ) ; }
TArray < TSharedRef < const INodeController > > GetConstNodes ( ) const override { return TArray < TSharedRef < const INodeController > > ( ) ; }
2021-01-20 17:26:40 -04:00
TSharedRef < const INodeController > GetNodeWithID ( FGuid InNodeID ) const override { return FInvalidNodeController : : GetInvalid ( ) ; }
TSharedRef < INodeController > GetNodeWithID ( FGuid InNodeID ) override { return FInvalidNodeController : : GetInvalid ( ) ; }
2021-01-13 10:48:59 -04:00
TArray < TSharedRef < INodeController > > GetOutputNodes ( ) override { return TArray < TSharedRef < INodeController > > ( ) ; }
TArray < TSharedRef < INodeController > > GetInputNodes ( ) override { return TArray < TSharedRef < INodeController > > ( ) ; }
TArray < TSharedRef < const INodeController > > GetConstOutputNodes ( ) const override { return TArray < TSharedRef < const INodeController > > ( ) ; }
TArray < TSharedRef < const INodeController > > GetConstInputNodes ( ) const override { return TArray < TSharedRef < const INodeController > > ( ) ; }
2021-06-08 10:52:31 -04:00
const FMetasoundFrontendGraphStyle & GetGraphStyle ( ) const override { return MetasoundFrontendInvalidControllerPrivate : : GetInvalid < FMetasoundFrontendGraphStyle > ( ) ; }
void SetGraphStyle ( const FMetasoundFrontendGraphStyle & InStyle ) override { }
2021-03-19 15:10:57 -04:00
void IterateConstNodes ( TUniqueFunction < void ( FConstNodeHandle ) > InFunction , EMetasoundFrontendClassType InClassType /* = EMetasoundFrontendClassType::Invalid */ ) const override { }
void IterateNodes ( TUniqueFunction < void ( FNodeHandle ) > InFunction , EMetasoundFrontendClassType InClassType /* = EMetasoundFrontendClassType::Invalid */ ) override { }
2021-01-13 19:18:22 -04:00
bool ContainsOutputVertexWithName ( const FString & InName ) const override { return false ; }
bool ContainsInputVertexWithName ( const FString & InName ) const override { return false ; }
2021-01-13 10:48:59 -04:00
TSharedRef < const INodeController > GetOutputNodeWithName ( const FString & InName ) const override { return FInvalidNodeController : : GetInvalid ( ) ; }
TSharedRef < const INodeController > GetInputNodeWithName ( const FString & InName ) const override { return FInvalidNodeController : : GetInvalid ( ) ; }
TSharedRef < INodeController > GetOutputNodeWithName ( const FString & InName ) override { return FInvalidNodeController : : GetInvalid ( ) ; }
TSharedRef < INodeController > GetInputNodeWithName ( const FString & InName ) override { return FInvalidNodeController : : GetInvalid ( ) ; }
FConstClassInputAccessPtr FindClassInputWithName ( const FString & InName ) const override { return FConstClassInputAccessPtr ( ) ; }
FConstClassOutputAccessPtr FindClassOutputWithName ( const FString & InName ) const override { return FConstClassOutputAccessPtr ( ) ; }
TSharedRef < INodeController > AddInputVertex ( const FMetasoundFrontendClassInput & InDescription ) override { return FInvalidNodeController : : GetInvalid ( ) ; }
bool RemoveInputVertex ( const FString & InputName ) override { return false ; }
TSharedRef < INodeController > AddOutputVertex ( const FMetasoundFrontendClassOutput & InDescription ) override { return FInvalidNodeController : : GetInvalid ( ) ; }
bool RemoveOutputVertex ( const FString & OutputName ) override { return false ; }
// This can be used to determine what kind of property editor we should use for the data type of a given input.
// Will return Invalid if the input couldn't be found, or if the input doesn't support any kind of literals.
ELiteralType GetPreferredLiteralTypeForInputVertex ( const FString & InInputName ) const override { return ELiteralType : : Invalid ; }
// For inputs whose preferred literal type is UObject or UObjectArray, this can be used to determine the UObject corresponding to that input's datatype.
UClass * GetSupportedClassForInputVertex ( const FString & InInputName ) override { return nullptr ; }
2021-02-24 18:37:19 -04:00
FGuid GetVertexIDForInputVertex ( const FString & InInputName ) const { return Metasound : : FrontendInvalidID ; }
FGuid GetVertexIDForOutputVertex ( const FString & InInputName ) const { return Metasound : : FrontendInvalidID ; }
FMetasoundFrontendLiteral GetDefaultInput ( const FGuid & InVertexID ) const override { return FMetasoundFrontendLiteral { } ; }
2021-01-13 10:48:59 -04:00
// These can be used to set the default value for a given input on this graph.
// @returns false if the input name couldn't be found, or if the literal type was incompatible with the Data Type of this input.
2021-02-24 18:37:19 -04:00
bool SetDefaultInput ( const FGuid & InVertexID , const FMetasoundFrontendLiteral & InLiteral ) override { return false ; }
bool SetDefaultInputToDefaultLiteralOfType ( const FGuid & InVertexID ) override { return false ; }
2021-01-13 10:48:59 -04:00
2021-02-24 02:02:03 -04:00
const FText & GetInputDescription ( const FString & InName ) const override { return FText : : GetEmpty ( ) ; }
const FText & GetOutputDescription ( const FString & InName ) const override { return FText : : GetEmpty ( ) ; }
2021-01-13 10:48:59 -04:00
2021-02-24 02:02:03 -04:00
void SetInputDescription ( const FString & InName , const FText & InDescription ) override { }
void SetOutputDescription ( const FString & InName , const FText & InDescription ) override { }
void SetInputDisplayName ( const FString & InName , const FText & InDisplayName ) override { }
void SetOutputDisplayName ( const FString & InName , const FText & InDisplayName ) override { }
2021-01-13 10:48:59 -04:00
// This can be used to clear the current literal for a given input.
// @returns false if the input name couldn't be found.
2021-02-24 18:37:19 -04:00
bool ClearLiteralForInput ( const FString & InInputName , FGuid InVertexID ) override { return false ; }
2021-01-13 10:48:59 -04:00
TSharedRef < INodeController > AddNode ( const FNodeRegistryKey & InNodeClass ) override { return FInvalidNodeController : : GetInvalid ( ) ; }
2021-01-22 03:05:22 -04:00
TSharedRef < INodeController > AddNode ( const FMetasoundFrontendClassMetadata & InNodeClass ) override { return FInvalidNodeController : : GetInvalid ( ) ; }
2021-05-20 19:33:21 -04:00
TSharedRef < INodeController > AddDuplicateNode ( const INodeController & InNode ) override { return FInvalidNodeController : : GetInvalid ( ) ; }
2021-01-22 03:05:22 -04:00
2021-01-13 10:48:59 -04:00
// Remove the node corresponding to this node handle.
// On success, invalidates the received node handle.
bool RemoveNode ( INodeController & InNode ) override { return false ; }
// Returns the metadata for the current graph, including the name, description and author.
const FMetasoundFrontendClassMetadata & GetGraphMetadata ( ) const override { return MetasoundFrontendInvalidControllerPrivate : : GetInvalid < FMetasoundFrontendClassMetadata > ( ) ; }
2021-06-08 10:52:31 -04:00
void SetGraphMetadata ( const FMetasoundFrontendClassMetadata & InMetadata ) { }
2021-01-13 10:48:59 -04:00
TSharedRef < INodeController > CreateEmptySubgraph ( const FMetasoundFrontendClassMetadata & InInfo ) override { return FInvalidNodeController : : GetInvalid ( ) ; }
TUniquePtr < IOperator > BuildOperator ( const FOperatorSettings & InSettings , const FMetasoundEnvironment & InEnvironment , TArray < IOperatorBuilder : : FBuildErrorPtr > & OutBuildErrors ) const override
{
return TUniquePtr < IOperator > ( nullptr ) ;
}
TSharedRef < IDocumentController > GetOwningDocument ( ) override ;
TSharedRef < const IDocumentController > GetOwningDocument ( ) const override ;
2021-01-20 17:26:40 -04:00
protected :
FDocumentAccess ShareAccess ( ) override { return FDocumentAccess ( ) ; }
FConstDocumentAccess ShareAccess ( ) const override { return FConstDocumentAccess ( ) ; }
2021-01-13 10:48:59 -04:00
} ;
/** FInvalidDocumentController is a controller which is always invalid.
*
* All methods return defaults and return error flags or invalid values .
*/
class METASOUNDFRONTEND_API FInvalidDocumentController : public IDocumentController
{
public :
FInvalidDocumentController ( ) = default ;
virtual ~ FInvalidDocumentController ( ) = default ;
static TSharedRef < IDocumentController > GetInvalid ( )
{
static TSharedRef < IDocumentController > InvalidDocument = MakeShared < FInvalidDocumentController > ( ) ;
return InvalidDocument ;
}
bool IsValid ( ) const override { return false ; }
TArray < FMetasoundFrontendClass > GetDependencies ( ) const override { return TArray < FMetasoundFrontendClass > ( ) ; }
TArray < FMetasoundFrontendGraphClass > GetSubgraphs ( ) const override { return TArray < FMetasoundFrontendGraphClass > ( ) ; }
TArray < FMetasoundFrontendClass > GetClasses ( ) const override { return TArray < FMetasoundFrontendClass > ( ) ; }
2021-06-23 20:07:53 -04:00
const FMetasoundFrontendGraphClass & GetRootGraphClass ( ) const override
{
return MetasoundFrontendInvalidControllerPrivate : : GetInvalid < FMetasoundFrontendGraphClass > ( ) ;
}
2021-01-13 10:48:59 -04:00
2021-01-20 17:26:40 -04:00
FConstClassAccessPtr FindDependencyWithID ( FGuid InClassID ) const override { return FConstClassAccessPtr ( ) ; }
FConstGraphClassAccessPtr FindSubgraphWithID ( FGuid InClassID ) const override { return FConstGraphClassAccessPtr ( ) ; }
FConstClassAccessPtr FindClassWithID ( FGuid InClassID ) const override { return FConstClassAccessPtr ( ) ; }
2021-01-13 10:48:59 -04:00
2021-06-14 16:45:51 -04:00
FConstClassAccessPtr FindClass ( const FNodeRegistryKey & InKey ) const override { return FConstClassAccessPtr ( ) ; }
FConstClassAccessPtr FindOrAddClass ( const FNodeRegistryKey & InKey ) override { return FConstClassAccessPtr ( ) ; }
2021-01-13 10:48:59 -04:00
FConstClassAccessPtr FindClass ( const FMetasoundFrontendClassMetadata & InMetadata ) const override { return FConstClassAccessPtr ( ) ; }
FConstClassAccessPtr FindOrAddClass ( const FMetasoundFrontendClassMetadata & InMetadata ) override { return FConstClassAccessPtr ( ) ; }
2021-05-20 19:33:21 -04:00
FGraphHandle AddDuplicateSubgraph ( const IGraphController & InGraph ) override { return FInvalidGraphController : : GetInvalid ( ) ; }
2021-05-03 17:52:04 -04:00
2021-06-23 20:07:53 -04:00
virtual const FMetasoundFrontendVersion & GetArchetypeVersion ( ) const override { return FMetasoundFrontendVersion : : GetInvalid ( ) ; }
virtual void SetArchetypeVersion ( const FMetasoundFrontendVersion & InVersion ) override { }
2021-05-28 14:09:45 -04:00
void SetMetadata ( const FMetasoundFrontendDocumentMetadata & InMetadata ) override { }
const FMetasoundFrontendDocumentMetadata & GetMetadata ( ) const override { return MetasoundFrontendInvalidControllerPrivate : : GetInvalid < FMetasoundFrontendDocumentMetadata > ( ) ; }
2021-05-03 17:52:04 -04:00
void SynchronizeDependencies ( ) override { }
2021-01-13 10:48:59 -04:00
TArray < FGraphHandle > GetSubgraphHandles ( ) override { return TArray < FGraphHandle > ( ) ; }
TArray < FConstGraphHandle > GetSubgraphHandles ( ) const override { return TArray < FConstGraphHandle > ( ) ; }
2021-01-20 17:26:40 -04:00
FGraphHandle GetSubgraphWithClassID ( FGuid InClassID ) { return FInvalidGraphController : : GetInvalid ( ) ; }
2021-01-13 10:48:59 -04:00
2021-01-20 17:26:40 -04:00
FConstGraphHandle GetSubgraphWithClassID ( FGuid InClassID ) const { return FInvalidGraphController : : GetInvalid ( ) ; }
2021-01-13 10:48:59 -04:00
TSharedRef < IGraphController > GetRootGraph ( ) override ;
TSharedRef < const IGraphController > GetRootGraph ( ) const override ;
bool ExportToJSONAsset ( const FString & InAbsolutePath ) const override { return false ; }
FString ExportToJSON ( ) const override { return FString ( ) ; }
2021-01-20 17:26:40 -04:00
protected :
FDocumentAccess ShareAccess ( ) override { return FDocumentAccess ( ) ; }
FConstDocumentAccess ShareAccess ( ) const override { return FConstDocumentAccess ( ) ; }
2021-01-13 10:48:59 -04:00
} ;
}
}