Files
Brandyn / Techy fcc1b09210 init
2026-04-04 15:40:51 -05:00

61 lines
2.1 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#include "LiveLinkFaceSourceBlueprint.h"
#include "LiveLinkFaceSource.h"
#include "LiveLinkFaceSourceSettings.h"
#include "Features/IModularFeatures.h"
#include "ILiveLinkClient.h"
void ULiveLinkFaceSourceBlueprint::CreateLiveLinkFaceSource(FLiveLinkSourceHandle& OutLiveLinkFaceSource, bool& bOutSucceeded)
{
if (!IModularFeatures::Get().IsModularFeatureAvailable(ILiveLinkClient::ModularFeatureName))
{
bOutSucceeded = false;
return;
}
TSharedPtr<FLiveLinkFaceSource> LiveLinkFaceSource = MakeShared<FLiveLinkFaceSource>("");
ILiveLinkClient& LiveLinkClient = IModularFeatures::Get().GetModularFeature<ILiveLinkClient>(ILiveLinkClient::ModularFeatureName);
const FGuid GUID = LiveLinkClient.AddSource(LiveLinkFaceSource);
OutLiveLinkFaceSource.SetSourcePointer(LiveLinkFaceSource);
bOutSucceeded = GUID.IsValid();
}
void ULiveLinkFaceSourceBlueprint::Connect(const FLiveLinkSourceHandle& InLiveLinkFaceSource, const FString& InSubjectName, const FString& InAddress, bool& bOutSucceeded, int32 InPort)
{
if (!IModularFeatures::Get().IsModularFeatureAvailable(ILiveLinkClient::ModularFeatureName))
{
bOutSucceeded = false;
return;
}
ILiveLinkClient& LiveLinkClient = IModularFeatures::Get().GetModularFeature<ILiveLinkClient>(ILiveLinkClient::ModularFeatureName);
if (InLiveLinkFaceSource.SourcePointer && InLiveLinkFaceSource.SourcePointer->GetSourceType().ToString() == FLiveLinkFaceSource::SourceType.ToString())
{
FLiveLinkFaceSource* LiveLinkFaceSource = (FLiveLinkFaceSource*) InLiveLinkFaceSource.SourcePointer.Get();
ULiveLinkFaceSourceSettings* LiveLinkFaceSourceSettings = Cast<ULiveLinkFaceSourceSettings>(LiveLinkClient.GetSourceSettings(LiveLinkFaceSource->GetSourceGuid()));
if (LiveLinkFaceSourceSettings)
{
LiveLinkFaceSourceSettings->SetAddress(InAddress);
LiveLinkFaceSourceSettings->SetPort(InPort);
LiveLinkFaceSourceSettings->SetSubjectName(InSubjectName);
if (LiveLinkFaceSourceSettings->RequestConnect())
{
bOutSucceeded = true;
return;
}
}
}
bOutSucceeded = false;
}