Files
UnrealEngineUWP/Engine/Source/Runtime/LiveLinkInterface/Private/LiveLinkVirtualSubject.cpp
JeanMichel Dignard 0f9ad96858 Copying //UE4/Dev-Enterprise @ cl 6890376 to Dev-Main (//UE4/Dev-Main)
#lockdown nick.penwarden
#rb none

[CL 6890764 by JeanMichel Dignard in Main branch]
2019-06-07 11:22:52 -04:00

56 lines
1.4 KiB
C++

// Copyright 1998-2019 Epic Games, Inc. All Rights Reserved.
#include "LiveLinkVirtualSubject.h"
#include "ILiveLinkClient.h"
#include "LiveLinkFrameTranslator.h"
void ULiveLinkVirtualSubject::Initialize(FLiveLinkSubjectKey InSubjectKey, TSubclassOf<ULiveLinkRole> InRole, ILiveLinkClient* InLiveLinkClient)
{
// The role for Virtual Subject should already be defined in the constructor of the default object.
//It it used by the FLiveLinkRoleTrait to found the available Virtual Subject
check(Role == InRole);
SubjectKey = InSubjectKey;
LiveLinkClient = InLiveLinkClient;
}
void ULiveLinkVirtualSubject::Update()
{
// Invalid the snapshot
FrameSnapshot.StaticData.Reset();
FrameSnapshot.FrameData.Reset();
// Create the new translator for this frame
CurrentFrameTranslators.Reset();
for (ULiveLinkFrameTranslator* Translator : FrameTranslators)
{
if (Translator)
{
ULiveLinkFrameTranslator::FWorkerSharedPtr NewTranslator = Translator->FetchWorker();
if (NewTranslator.IsValid())
{
CurrentFrameTranslators.Add(NewTranslator);
}
}
}
}
void ULiveLinkVirtualSubject::ClearFrames()
{
FrameSnapshot.StaticData.Reset();
}
bool ULiveLinkVirtualSubject::HasValidFrameSnapshot() const
{
return FrameSnapshot.StaticData.IsValid() && FrameSnapshot.FrameData.IsValid();
}
bool ULiveLinkVirtualSubject::DependsOnSubject(FName SubjectName) const
{
return Subjects.Contains(SubjectName);
}