UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
ILiveLinkClient.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
8#include "LiveLinkRole.h"
9#include "LiveLinkTypes.h"
10#include "LiveLinkPresetTypes.h"
11#include "Misc/Guid.h"
13#include "ILiveLinkClient.generated.h"
14
15#define UE_API LIVELINKINTERFACE_API
16
17
18class ILiveLinkSource;
19class ULiveLinkRole;
21struct FTimecode;
23
24
26UENUM(BlueprintType)
42
43
50DECLARE_TS_MULTICAST_DELEGATE_FiveParams(FOnLiveLinkSubjectEvaluated, FLiveLinkSubjectKey /*InSubjectKey*/, TSubclassOf<ULiveLinkRole> /*RequestedRole*/, const FLiveLinkTime& /*RequestedTime*/, bool /*bResult*/, const FLiveLinkTime& /*EvaluatedFrameTime*/)
53
61{
62public:
63 static const int32 LIVELINK_VERSION = 2;
64
65 virtual ~ILiveLinkClient() {}
66
68
71
73 virtual FGuid AddVirtualSubjectSource(FName SourceName) = 0;
74
77
79 virtual void RemoveSource(TSharedPtr<ILiveLinkSource> Source) = 0;
80
82 virtual void RemoveSource(FGuid SourceGuid) = 0;
83
85 virtual bool HasSourceBeenAdded(TSharedPtr<ILiveLinkSource> Source) const = 0;
86
92 virtual TArray<FGuid> GetSources(bool bEvenIfPendingKill = false) const = 0;
93
99 virtual TArray<FGuid> GetVirtualSources(bool bEvenIfPendingKill = false) const = 0;
100
103
105 virtual FText GetSourceType(FGuid SourceGuid) const = 0;
106
109
112
115
117 virtual bool IsSourceStillValid(FGuid EntryGuid) const = 0;
118
121
123 virtual void PushSubjectFrameData_AnyThread(const FLiveLinkSubjectKey& SubjectKey, FLiveLinkFrameDataStruct&& FrameData) = 0;
124
127
130
133
135 virtual void RemoveSubject_AnyThread(const FLiveLinkSubjectKey& SubjectName) = 0;
136
138 virtual void PauseSubject_AnyThread(FLiveLinkSubjectName SubjectName) = 0;
139
141 virtual void UnpauseSubject_AnyThread(FLiveLinkSubjectName SubjectName) = 0;
142
145
147 virtual void ClearSubjectsFrames_AnyThread(const FLiveLinkSubjectKey& SubjectKey) = 0;
148
151
154
157
163
166
169
172
175
177 virtual bool IsSubjectValid(const FLiveLinkSubjectKey& SubjectKey) const = 0;
178
180 virtual bool IsSubjectValid(FLiveLinkSubjectName SubjectName) const = 0;
181
188 virtual bool IsSubjectEnabled(const FLiveLinkSubjectKey& SubjectKey, bool bForThisFrame) const = 0;
189
196 virtual bool IsSubjectEnabled(FLiveLinkSubjectName SubjectName) const = 0;
197
205 virtual void SetSubjectEnabled(const FLiveLinkSubjectKey& SubjectKey, bool bEnabled) = 0;
206
208 virtual bool IsSubjectTimeSynchronized(const FLiveLinkSubjectKey& SubjectKey) const = 0;
209
211 virtual bool IsSubjectTimeSynchronized(FLiveLinkSubjectName SubjectName) const = 0;
212
214 virtual bool IsVirtualSubject(const FLiveLinkSubjectKey& SubjectKey) const = 0;
215
218
221
227
232
238
243 virtual UObject* GetSubjectSettings(const FLiveLinkSubjectKey& SubjectKey) const = 0;
244
246 virtual FText GetSourceNameOverride(const FLiveLinkSubjectKey& SubjectKey) const = 0;
247
249 virtual FText GetSubjectDisplayName(const FLiveLinkSubjectKey& SubjectKey) const = 0;
250
257
265
274
284
285 UE_DEPRECATED(4.25, "ILiveLinkClient::EvaluateFrameAtSceneTime_AnyThread is deprecated. Please use ILiveLinkClient::EvaluateFrameAtSceneTime_AnyThread with a QualifiedFrameTime instead!")
286 virtual bool EvaluateFrameAtSceneTime_AnyThread(FLiveLinkSubjectName SubjectName, const FTimecode& SceneTime, TSubclassOf<ULiveLinkRole> DesiredRole, FLiveLinkSubjectFrameData& OutFrame) { return false; }
287
297
304 virtual void ForceTick() = 0;
305
307 virtual bool HasPendingSubjectFrames() = 0;
308
311
314
317
320
323
326
329
332
335
336#if WITH_EDITOR
339#endif
340
346 virtual void RegisterForFrameDataReceived(const FLiveLinkSubjectKey& InSubjectKey, const FOnLiveLinkSubjectStaticDataReceived::FDelegate& OnStaticDataReceived_AnyThread, const FOnLiveLinkSubjectFrameDataReceived::FDelegate& OnFrameDataReceived_AnyThread, FDelegateHandle& OutStaticDataReceivedHandle, FDelegateHandle& OutFrameDataReceivedHandleconst) = 0;
349
357 virtual bool RegisterForSubjectFrames(FLiveLinkSubjectName SubjectName, const FOnLiveLinkSubjectStaticDataAdded::FDelegate& OnStaticDataAdded, const FOnLiveLinkSubjectFrameDataAdded::FDelegate& OnFrameDataAddedd, FDelegateHandle& OutStaticDataAddedHandle, FDelegateHandle& OutFrameDataAddeddHandle, TSubclassOf<ULiveLinkRole>& OutSubjectRole, FLiveLinkStaticDataStruct* OutStaticData = nullptr) = 0;
358
361
362};
363
364#undef UE_API
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define DECLARE_TS_MULTICAST_DELEGATE_OneParam(DelegateName, Param1Type)
Definition DelegateCombinations.h:50
#define DECLARE_TS_MULTICAST_DELEGATE_ThreeParams(DelegateName, Param1Type, Param2Type, Param3Type)
Definition DelegateCombinations.h:68
#define DECLARE_TS_MULTICAST_DELEGATE_FiveParams(DelegateName, Param1Type, Param2Type, Param3Type, Param4Type, Param5Type)
Definition DelegateCombinations.h:86
#define DECLARE_TS_MULTICAST_DELEGATE_TwoParams(DelegateName, Param1Type, Param2Type)
Definition DelegateCombinations.h:59
ELiveLinkSubjectState
Definition ILiveLinkClient.h:28
#define UE_API
Definition ILiveLinkClient.h:15
#define UENUM(...)
Definition ObjectMacros.h:749
uint8_t uint8
Definition binka_ue_file_header.h:8
Definition IDelegateInstance.h:14
Definition NameTypes.h:617
Definition Text.h:385
Definition ILiveLinkClient.h:61
virtual FText GetSourceToolTip(FGuid EntryGuid) const =0
virtual bool IsSubjectEnabled(FLiveLinkSubjectName SubjectName) const =0
virtual bool IsSubjectTimeSynchronized(const FLiveLinkSubjectKey &SubjectKey) const =0
virtual void RemoveSubject_AnyThread(const FLiveLinkSubjectKey &SubjectName)=0
virtual void SetSubjectEnabled(const FLiveLinkSubjectKey &SubjectKey, bool bEnabled)=0
virtual TArray< FLiveLinkTime > GetSubjectFrameTimes(FLiveLinkSubjectName SubjectName) const =0
virtual bool IsSubjectValid(const FLiveLinkSubjectKey &SubjectKey) const =0
virtual FOnLiveLinkSubjectEnabledDelegate & OnLiveLinkSubjectEnabledChanged()=0
virtual TArray< FLiveLinkSubjectKey > GetSubjectsSupportingRole(TSubclassOf< ULiveLinkRole > SupportedRole, bool bIncludeDisabledSubject, bool bIncludeVirtualSubject) const =0
virtual void PushSubjectFrameData_AnyThread(const FLiveLinkSubjectKey &SubjectKey, FLiveLinkFrameDataStruct &&FrameData)=0
virtual void RemoveSource(TSharedPtr< ILiveLinkSource > Source)=0
virtual FOnLiveLinkSubjectStateChanged & OnLiveLinkSubjectStateChanged()=0
virtual bool IsSubjectEnabled(const FLiveLinkSubjectKey &SubjectKey, bool bForThisFrame) const =0
virtual TSubclassOf< ULiveLinkRole > GetSubjectRole_AnyThread(const FLiveLinkSubjectKey &SubjectKey) const =0
virtual bool CreateSource(const FLiveLinkSourcePreset &SourcePreset)=0
virtual const FLiveLinkStaticDataStruct * GetSubjectStaticData_AnyThread(const FLiveLinkSubjectKey &InSubjectKey, bool bGetOverrideData=true) const =0
virtual void UnregisterForFrameDataReceived(const FLiveLinkSubjectKey &InSubjectKey, FDelegateHandle InStaticDataReceivedHandle, FDelegateHandle InFrameDataReceivedHandle)=0
virtual void UnregisterSubjectFramesHandle(FLiveLinkSubjectName SubjectName, FDelegateHandle StaticDataAddedHandle, FDelegateHandle FrameDataAddedHandle)=0
virtual bool HasPendingSubjectFrames()=0
virtual bool EvaluateFrame_AnyThread(FLiveLinkSubjectName SubjectName, TSubclassOf< ULiveLinkRole > Role, FLiveLinkSubjectFrameData &OutFrame)=0
virtual bool CreateSubject(const FLiveLinkSubjectPreset &SubjectPreset)=0
virtual FOnLiveLinkSourceChangedDelegate & OnLiveLinkSourceRemoved()=0
virtual TArray< FGuid > GetSources(bool bEvenIfPendingKill=false) const =0
virtual TArray< FGuid > GetVirtualSources(bool bEvenIfPendingKill=false) const =0
virtual void PauseSubject_AnyThread(FLiveLinkSubjectName SubjectName)=0
virtual void RegisterForFrameDataReceived(const FLiveLinkSubjectKey &InSubjectKey, const FOnLiveLinkSubjectStaticDataReceived::FDelegate &OnStaticDataReceived_AnyThread, const FOnLiveLinkSubjectFrameDataReceived::FDelegate &OnFrameDataReceived_AnyThread, FDelegateHandle &OutStaticDataReceivedHandle, FDelegateHandle &OutFrameDataReceivedHandleconst)=0
virtual bool DoesSubjectSupportsRole_AnyThread(FLiveLinkSubjectName SubjectName, TSubclassOf< ULiveLinkRole > SupportedRole) const =0
virtual void RemoveSource(FGuid SourceGuid)=0
virtual void RemoveVirtualSubject(const FLiveLinkSubjectKey &VirtualSubjectKey)=0
virtual bool IsSubjectTimeSynchronized(FLiveLinkSubjectName SubjectName) const =0
virtual TArray< FLiveLinkTime > GetSubjectFrameTimes(const FLiveLinkSubjectKey &SubjectKey) const =0
virtual FSimpleMulticastDelegate & OnLiveLinkSubjectsChanged()=0
virtual bool EvaluateFrameFromSource_AnyThread(const FLiveLinkSubjectKey &SubjectKey, TSubclassOf< ULiveLinkRole > Role, FLiveLinkSubjectFrameData &OutFrame)=0
virtual bool DoesSubjectSupportsRole_AnyThread(const FLiveLinkSubjectKey &SubjectKey, TSubclassOf< ULiveLinkRole > SupportedRole) const =0
virtual bool IsSubjectValid(FLiveLinkSubjectName SubjectName) const =0
virtual ELiveLinkSubjectState GetSubjectState(FLiveLinkSubjectName InSubjectName) const =0
virtual void ClearOverrideStaticData_AnyThread(const FLiveLinkSubjectKey &InSubjectKey)=0
virtual bool RegisterForSubjectFrames(FLiveLinkSubjectName SubjectName, const FOnLiveLinkSubjectStaticDataAdded::FDelegate &OnStaticDataAdded, const FOnLiveLinkSubjectFrameDataAdded::FDelegate &OnFrameDataAddedd, FDelegateHandle &OutStaticDataAddedHandle, FDelegateHandle &OutFrameDataAddeddHandle, TSubclassOf< ULiveLinkRole > &OutSubjectRole, FLiveLinkStaticDataStruct *OutStaticData=nullptr)=0
virtual void UnpauseSubject_AnyThread(FLiveLinkSubjectName SubjectName)=0
virtual FText GetSourceMachineName(FGuid EntryGuid) const =0
virtual void ClearSubjectsFrames_AnyThread(FLiveLinkSubjectName SubjectName)=0
virtual ~ILiveLinkClient()
Definition ILiveLinkClient.h:65
virtual void PushSubjectStaticData_AnyThread(const FLiveLinkSubjectKey &SubjectKey, TSubclassOf< ULiveLinkRole > Role, FLiveLinkStaticDataStruct &&StaticData)=0
virtual void ClearAllSubjectsFrames_AnyThread()=0
virtual FText GetSourceType(FGuid SourceGuid) const =0
virtual bool IsSourceStillValid(FGuid EntryGuid) const =0
virtual bool EvaluateFrameAtSceneTime_AnyThread(FLiveLinkSubjectName SubjectName, const FQualifiedFrameTime &SceneTime, TSubclassOf< ULiveLinkRole > DesiredRole, FLiveLinkSubjectFrameData &OutFrame)=0
virtual FLiveLinkSourcePreset GetSourcePreset(FGuid SourceGuid, UObject *DuplicatedObjectOuter) const =0
virtual bool EvaluateFrameAtWorldTime_AnyThread(FLiveLinkSubjectName SubjectName, double WorldTime, TSubclassOf< ULiveLinkRole > DesiredRole, FLiveLinkSubjectFrameData &OutFrame)=0
virtual bool IsVirtualSubject(const FLiveLinkSubjectKey &SubjectKey) const =0
virtual UObject * GetSubjectSettings(const FLiveLinkSubjectKey &SubjectKey) const =0
virtual void ClearSubjectsFrames_AnyThread(const FLiveLinkSubjectKey &SubjectKey)=0
virtual FOnLiveLinkSourceChangedDelegate & OnLiveLinkSourceAdded()=0
virtual bool AddVirtualSubject(const FLiveLinkSubjectKey &VirtualSubjectKey, TSubclassOf< ULiveLinkVirtualSubject > VirtualSubjectClass)=0
virtual FGuid AddVirtualSubjectSource(FName SourceName)=0
virtual FSimpleMulticastDelegate & OnLiveLinkSourcesChanged()=0
virtual bool HasSourceBeenAdded(TSharedPtr< ILiveLinkSource > Source) const =0
static UE_API FName ModularFeatureName
Definition ILiveLinkClient.h:67
virtual FLiveLinkSubjectPreset GetSubjectPreset(const FLiveLinkSubjectKey &SubjectKey, UObject *DuplicatedObjectOuter) const =0
virtual TSubclassOf< ULiveLinkRole > GetSubjectRole_AnyThread(FLiveLinkSubjectName SubjectName) const =0
virtual TArray< FLiveLinkSubjectKey > GetSubjects(bool bIncludeDisabledSubject, bool bIncludeVirtualSubject) const =0
virtual FGuid AddSource(TSharedPtr< ILiveLinkSource > Source)=0
virtual void ForceTick()=0
virtual FText GetSourceStatus(FGuid EntryGuid) const =0
virtual FOnLiveLinkSubjectChangedDelegate & OnLiveLinkSubjectRemoved()=0
virtual FText GetSourceNameOverride(const FLiveLinkSubjectKey &SubjectKey) const =0
virtual FText GetSubjectDisplayName(const FLiveLinkSubjectKey &SubjectKey) const =0
virtual FSimpleMulticastDelegate & OnLiveLinkTicked()=0
virtual ULiveLinkSourceSettings * GetSourceSettings(const FGuid &SourceKey) const =0
virtual TSubclassOf< ULiveLinkRole > GetSubjectTranslatedRole_AnyThread(const FLiveLinkSubjectKey &SubjectKey) const =0
virtual FOnLiveLinkSubjectChangedDelegate & OnLiveLinkSubjectAdded()=0
Definition ILiveLinkSource.h:16
Definition IModularFeature.h:12
Definition Array.h:670
Definition SharedPointer.h:692
Definition SubclassOf.h:30
Definition LiveLinkRole.h:18
Definition LiveLinkSourceSettings.h:162
Definition Object.h:95
Definition Guid.h:109
Definition LiveLinkPresetTypes.h:19
Definition LiveLinkTypes.h:526
Definition LiveLinkTypes.h:78
Definition LiveLinkTypes.h:40
Definition LiveLinkPresetTypes.h:36
Definition LiveLinkTypes.h:173
Definition QualifiedFrameTime.h:13
Definition Timecode.h:19