#pragma once

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

// Package: LiveLinkComponents

#include "Basic.hpp"

#include "LiveLinkComponents_classes.hpp"
#include "LiveLinkComponents_parameters.hpp"


SDK_NAMESPACE_START

// Function LiveLinkComponents.LiveLinkComponentController.SetControlledComponent
// (Final, RequiredAPI, Native, Public, BlueprintCallable)
// Parameters:
// TSubclassOf<class ULiveLinkRole>        InRoleClass                                            (Parm, ZeroConstructor, NoDestructor, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierPublic)
// class UActorComponent*                  InComponent                                            (Parm, ZeroConstructor, InstancedReference, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)

void ULiveLinkComponentController::SetControlledComponent(TSubclassOf<class ULiveLinkRole> InRoleClass, class UActorComponent* InComponent)
{
	static class UFunction* Func = nullptr;

	if (Func == nullptr)
		Func = Class->GetFunction("LiveLinkComponentController", "SetControlledComponent");

	Params::LiveLinkComponentController_SetControlledComponent Parms{};

	Parms.InRoleClass = InRoleClass;
	Parms.InComponent = InComponent;

	auto Flgs = Func->FunctionFlags;
	Func->FunctionFlags |= 0x400;

	UObject::ProcessEvent(Func, &Parms);

	Func->FunctionFlags = Flgs;
}


// Function LiveLinkComponents.LiveLinkComponentController.SetSubjectRepresentation
// (Final, RequiredAPI, Native, Public, BlueprintCallable)
// Parameters:
// const struct FLiveLinkSubjectRepresentation&InSubjectRepresentation                                (Parm, NoDestructor, NativeAccessSpecifierPublic)

void ULiveLinkComponentController::SetSubjectRepresentation(const struct FLiveLinkSubjectRepresentation& InSubjectRepresentation)
{
	static class UFunction* Func = nullptr;

	if (Func == nullptr)
		Func = Class->GetFunction("LiveLinkComponentController", "SetSubjectRepresentation");

	Params::LiveLinkComponentController_SetSubjectRepresentation Parms{};

	Parms.InSubjectRepresentation = std::move(InSubjectRepresentation);

	auto Flgs = Func->FunctionFlags;
	Func->FunctionFlags |= 0x400;

	UObject::ProcessEvent(Func, &Parms);

	Func->FunctionFlags = Flgs;
}


// Function LiveLinkComponents.LiveLinkComponentController.GetControlledComponent
// (Final, RequiredAPI, Native, Public, BlueprintCallable, BlueprintPure, Const)
// Parameters:
// TSubclassOf<class ULiveLinkRole>        InRoleClass                                            (Parm, ZeroConstructor, NoDestructor, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierPublic)
// class UActorComponent*                  ReturnValue                                            (ExportObject, Parm, OutParm, ZeroConstructor, ReturnParm, InstancedReference, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)

class UActorComponent* ULiveLinkComponentController::GetControlledComponent(TSubclassOf<class ULiveLinkRole> InRoleClass) const
{
	static class UFunction* Func = nullptr;

	if (Func == nullptr)
		Func = Class->GetFunction("LiveLinkComponentController", "GetControlledComponent");

	Params::LiveLinkComponentController_GetControlledComponent Parms{};

	Parms.InRoleClass = InRoleClass;

	auto Flgs = Func->FunctionFlags;
	Func->FunctionFlags |= 0x400;

	UObject::ProcessEvent(Func, &Parms);

	Func->FunctionFlags = Flgs;

	return Parms.ReturnValue;
}


// Function LiveLinkComponents.LiveLinkComponentController.GetSubjectRepresentation
// (Final, Native, Public, BlueprintCallable, BlueprintPure, Const)
// Parameters:
// struct FLiveLinkSubjectRepresentation   ReturnValue                                            (Parm, OutParm, ReturnParm, NoDestructor, NativeAccessSpecifierPublic)

struct FLiveLinkSubjectRepresentation ULiveLinkComponentController::GetSubjectRepresentation() const
{
	static class UFunction* Func = nullptr;

	if (Func == nullptr)
		Func = Class->GetFunction("LiveLinkComponentController", "GetSubjectRepresentation");

	Params::LiveLinkComponentController_GetSubjectRepresentation Parms{};

	auto Flgs = Func->FunctionFlags;
	Func->FunctionFlags |= 0x400;

	UObject::ProcessEvent(Func, &Parms);

	Func->FunctionFlags = Flgs;

	return Parms.ReturnValue;
}


SDK_NAMESPACE_END
