UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
ITimedDataInput.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "Containers/Array.h"
6#include "CoreMinimal.h"
8#include "HAL/Platform.h"
10#include "Misc/FrameRate.h"
11#include "Misc/FrameTime.h"
14
15#include "ITimedDataInput.generated.h"
16
17class ITimedDataInput;
19class SWidget;
20struct FSlateBrush;
21
22
23UENUM()
33
34UENUM()
44
45
46USTRUCT(BlueprintType)
48{
50
56 double PlatformSecond = 0.0;
59
60 double AsSeconds(ETimedDataInputEvaluationType EvaluationType) const { return EvaluationType == ETimedDataInputEvaluationType::Timecode ? Timecode.AsSeconds() : PlatformSecond; }
61};
62
63
64USTRUCT(BlueprintType)
66{
68
69
72 UPROPERTY(BlueprintReadWrite, Category = "Evaluation", meta=(Units=s))
73 float DistanceToNewestSampleSeconds = 0.0f;
74
78 UPROPERTY(BlueprintReadWrite, Category = "Evaluation", meta = (Units = s))
79 float DistanceToOldestSampleSeconds = 0.0f;
80};
81
82
87{
88public:
90
91 static TIMEMANAGEMENT_API double ConvertSecondOffsetInFrameOffset(double Seconds, FFrameRate Rate);
92 static TIMEMANAGEMENT_API double ConvertFrameOffsetInSecondOffset(double Frames, FFrameRate Rate);
93
94public:
95 virtual ~ITimedDataInput() {}
96
98 virtual FText GetDisplayName() const = 0;
99
102
105
108
110 virtual double GetEvaluationOffsetInSeconds() const = 0;
111
113 virtual void SetEvaluationOffsetInSeconds(double Offset) = 0;
114
116 virtual FFrameRate GetFrameRate() const = 0;
117
119 virtual bool IsDataBufferSizeControlledByInput() const = 0;
120
122 virtual int32 GetDataBufferSize() const { return 0; }
123
125 virtual void SetDataBufferSize(int32 BufferSize) { }
126
128 virtual void AddChannel(ITimedDataInputChannel* Channel) = 0;
129
131 virtual void RemoveChannel(ITimedDataInputChannel* Channel) = 0;
132
134 virtual bool SupportsSubFrames() const
135 {
136 return true;
137 }
138
140 TIMEMANAGEMENT_API double ConvertSecondOffsetInFrameOffset(double Seconds) const;
141
143 TIMEMANAGEMENT_API double ConvertFrameOffsetInSecondOffset(double Frames) const;
144
145#if WITH_EDITOR
147 virtual const FSlateBrush* GetDisplayIcon() const = 0;
148#endif
149};
150
151
156{
157public:
159 virtual FText GetDisplayName() const = 0;
160
162 virtual ETimedDataInputState GetState() const = 0;
163
166
169
172
174 virtual int32 GetNumberOfSamples() const = 0;
175
177 virtual int32 GetDataBufferSize() const { return 0; }
178
180 virtual void SetDataBufferSize(int32 BufferSize) {}
181
183 virtual bool IsBufferStatsEnabled() const = 0;
184
186 virtual void SetBufferStatsEnabled(bool bEnable) = 0;
187
189 virtual int32 GetBufferUnderflowStat() const = 0;
190
192 virtual int32 GetBufferOverflowStat() const = 0;
193
195 virtual int32 GetFrameDroppedStat() const = 0;
196
199
201 virtual void ResetBufferStats() = 0;
202};
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
ETimedDataInputEvaluationType
Definition ITimedDataInput.h:25
ETimedDataInputState
Definition ITimedDataInput.h:36
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define GENERATED_BODY(...)
Definition ObjectMacros.h:765
#define UENUM(...)
Definition ObjectMacros.h:749
#define USTRUCT(...)
Definition ObjectMacros.h:746
USkinnedMeshComponent float
Definition SkinnedMeshComponent.h:60
uint32 Offset
Definition VulkanMemory.cpp:4033
uint8_t uint8
Definition binka_ue_file_header.h:8
Definition Text.h:385
Definition ITimedDataInput.h:156
virtual int32 GetFrameDroppedStat() const =0
virtual void SetDataBufferSize(int32 BufferSize)
Definition ITimedDataInput.h:180
virtual void GetLastEvaluationData(FTimedDataInputEvaluationData &OutEvaluationData) const =0
virtual int32 GetBufferUnderflowStat() const =0
virtual int32 GetDataBufferSize() const
Definition ITimedDataInput.h:177
virtual FText GetDisplayName() const =0
virtual TArray< FTimedDataChannelSampleTime > GetDataTimes() const =0
virtual FTimedDataChannelSampleTime GetNewestDataTime() const =0
virtual FTimedDataChannelSampleTime GetOldestDataTime() const =0
virtual void SetBufferStatsEnabled(bool bEnable)=0
virtual void ResetBufferStats()=0
virtual int32 GetBufferOverflowStat() const =0
virtual bool IsBufferStatsEnabled() const =0
virtual int32 GetNumberOfSamples() const =0
virtual ETimedDataInputState GetState() const =0
Definition ITimedDataInput.h:87
virtual double GetEvaluationOffsetInSeconds() const =0
virtual void SetEvaluationType(ETimedDataInputEvaluationType Evaluation)=0
virtual void SetDataBufferSize(int32 BufferSize)
Definition ITimedDataInput.h:125
virtual ETimedDataInputEvaluationType GetEvaluationType() const =0
virtual ~ITimedDataInput()
Definition ITimedDataInput.h:95
virtual FText GetDisplayName() const =0
virtual TArray< ITimedDataInputChannel * > GetChannels() const =0
virtual bool IsDataBufferSizeControlledByInput() const =0
static TIMEMANAGEMENT_API FFrameRate UnknownFrameRate
Definition ITimedDataInput.h:89
virtual FFrameRate GetFrameRate() const =0
virtual bool SupportsSubFrames() const
Definition ITimedDataInput.h:134
virtual int32 GetDataBufferSize() const
Definition ITimedDataInput.h:122
virtual void RemoveChannel(ITimedDataInputChannel *Channel)=0
virtual void SetEvaluationOffsetInSeconds(double Offset)=0
virtual void AddChannel(ITimedDataInputChannel *Channel)=0
Definition SWidget.h:165
Definition Array.h:670
Definition FrameRate.h:21
Definition QualifiedFrameTime.h:13
Definition SlateBrush.h:239
Definition ITimedDataInput.h:48
FQualifiedFrameTime Timecode
Definition ITimedDataInput.h:58
double AsSeconds(ETimedDataInputEvaluationType EvaluationType) const
Definition ITimedDataInput.h:60
Definition ITimedDataInput.h:66