2023-03-07 17:01:52 -05:00
|
|
|
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
#include "UObject/Interface.h"
|
|
|
|
|
#include "MetasoundFrontendDocument.h"
|
|
|
|
|
|
|
|
|
|
#include "MetasoundDocumentInterface.generated.h"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Forward Declarations
|
|
|
|
|
struct FMetaSoundFrontendDocumentBuilder;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// UInterface for all MetaSound UClasses that implement a MetaSound document
|
2023-05-08 19:08:22 -04:00
|
|
|
// as a means for accessing data via code, scripting, execution, or node
|
|
|
|
|
// class generation.
|
2023-03-07 17:01:52 -05:00
|
|
|
UINTERFACE(BlueprintType, meta = (CannotImplementInterfaceInBlueprint))
|
|
|
|
|
class METASOUNDFRONTEND_API UMetaSoundDocumentInterface : public UInterface
|
|
|
|
|
{
|
|
|
|
|
GENERATED_BODY()
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
class METASOUNDFRONTEND_API IMetaSoundDocumentInterface : public IInterface
|
|
|
|
|
{
|
|
|
|
|
GENERATED_BODY()
|
|
|
|
|
|
|
|
|
|
public:
|
2023-05-08 19:08:22 -04:00
|
|
|
// Returns read-only reference to the the MetaSoundFrontendDocument
|
|
|
|
|
// containing all MetaSound runtime & editor data.
|
2023-03-07 17:01:52 -05:00
|
|
|
virtual const FMetasoundFrontendDocument& GetDocument() const = 0;
|
2023-04-04 19:14:26 -04:00
|
|
|
virtual const UClass& GetBaseMetaSoundUClass() const = 0;
|
2023-03-07 17:01:52 -05:00
|
|
|
|
2023-05-08 19:08:22 -04:00
|
|
|
// Returns the parent class registered with the MetaSound UObject registry.
|
|
|
|
|
|
2023-03-07 17:01:52 -05:00
|
|
|
private:
|
|
|
|
|
virtual FMetasoundFrontendDocument& GetDocument() = 0;
|
|
|
|
|
|
|
|
|
|
friend struct FMetaSoundFrontendDocumentBuilder;
|
|
|
|
|
};
|