#pragma once

/*
* SDK generated by Dumper-7
*
* https://github.com/Encryqed/Dumper-7
*/

// Package: MetasoundFrontend

#include "Basic.hpp"

#include "CoreUObject_classes.hpp"
#include "MetasoundFrontend_structs.hpp"


SDK_NAMESPACE_START

// Class MetasoundFrontend.MetaSoundDocumentInterface
// 0x0000 (0x0000 - 0x0000)
class IMetaSoundDocumentInterface final
{
public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("MetaSoundDocumentInterface")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"MetaSoundDocumentInterface")
	}
	static class IMetaSoundDocumentInterface* GetDefaultObj()
	{
		return GetDefaultObjImpl<IMetaSoundDocumentInterface>();
	}

	class UObject* AsUObject()
	{
		return reinterpret_cast<UObject*>(this);
	}
	const class UObject* AsUObject() const
	{
		return reinterpret_cast<const UObject*>(this);
	}
};
DUMPER7_ASSERTS_IMetaSoundDocumentInterface;

// Class MetasoundFrontend.MetasoundParameterPack
// 0x0018 (0x0040 - 0x0028)
class UMetasoundParameterPack final : public UObject
{
public:
	uint8                                         Pad_28[0x18];                                      // 0x0028(0x0018)(Fixing Struct Size After Last Property [ Dumper-7 ])

public:
	static class UMetasoundParameterPack* MakeMetasoundParameterPack();

	ESetParamResult SetBool(class FName ParameterName, bool InValue, bool OnlyIfExists);
	ESetParamResult SetFloat(class FName ParameterName, float InValue, bool OnlyIfExists);
	ESetParamResult SetInt(class FName ParameterName, int32 InValue, bool OnlyIfExists);
	ESetParamResult SetString(class FName ParameterName, const class FString& InValue, bool OnlyIfExists);
	ESetParamResult SetTrigger(class FName ParameterName, bool OnlyIfExists);

	bool GetBool(class FName ParameterName, ESetParamResult* Result) const;
	float GetFloat(class FName ParameterName, ESetParamResult* Result) const;
	int32 GetInt(class FName ParameterName, ESetParamResult* Result) const;
	class FString GetString(class FName ParameterName, ESetParamResult* Result) const;
	bool GetTrigger(class FName ParameterName, ESetParamResult* Result) const;
	bool HasBool(class FName ParameterName) const;
	bool HasFloat(class FName ParameterName) const;
	bool HasInt(class FName ParameterName) const;
	bool HasString(class FName ParameterName) const;
	bool HasTrigger(class FName ParameterName) const;

public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("MetasoundParameterPack")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"MetasoundParameterPack")
	}
	static class UMetasoundParameterPack* GetDefaultObj()
	{
		return GetDefaultObjImpl<UMetasoundParameterPack>();
	}
};
DUMPER7_ASSERTS_UMetasoundParameterPack;

// Class MetasoundFrontend.MetaSoundFrontendMemberMetadata
// 0x0000 (0x0028 - 0x0028)
class UMetaSoundFrontendMemberMetadata final : public UObject
{
public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("MetaSoundFrontendMemberMetadata")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"MetaSoundFrontendMemberMetadata")
	}
	static class UMetaSoundFrontendMemberMetadata* GetDefaultObj()
	{
		return GetDefaultObjImpl<UMetaSoundFrontendMemberMetadata>();
	}
};
DUMPER7_ASSERTS_UMetaSoundFrontendMemberMetadata;

// Class MetasoundFrontend.MetaSoundBuilderDocument
// 0x01A8 (0x01D0 - 0x0028)
class UMetaSoundBuilderDocument final : public UObject
{
public:
	uint8                                         Pad_28[0x8];                                       // 0x0028(0x0008)(Fixing Size After Last Property [ Dumper-7 ])
	struct FMetasoundFrontendDocument             Document;                                          // 0x0030(0x0190)(Transient, NativeAccessSpecifierPrivate)
	TSubclassOf<class UObject>                    MetaSoundUClass;                                   // 0x01C0(0x0008)(ZeroConstructor, Transient, NoDestructor, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierPrivate, TObjectPtr)
	TSubclassOf<class UObject>                    BuilderUClass;                                     // 0x01C8(0x0008)(ZeroConstructor, Transient, NoDestructor, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierPrivate, TObjectPtr)

public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("MetaSoundBuilderDocument")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"MetaSoundBuilderDocument")
	}
	static class UMetaSoundBuilderDocument* GetDefaultObj()
	{
		return GetDefaultObjImpl<UMetaSoundBuilderDocument>();
	}
};
DUMPER7_ASSERTS_UMetaSoundBuilderDocument;

SDK_NAMESPACE_END
