3#ifndef ENGINE_SHARED_DEMO_H
4#define ENGINE_SHARED_DEMO_H
41 void Write(
int Type,
const void *
pData,
int Size);
48 int Start(
class IStorage *
pStorage,
class IConsole *
pConsole,
const char *
pFilename,
const char *
pNetversion,
const char *
pMap,
const SHA256_DIGEST &Sha256,
unsigned MapCrc,
const char *
pType,
unsigned MapSize,
unsigned char *
pMapData,
IOHANDLE MapFile,
DEMOFUNC_FILTER pfnFilter,
void *
pUser);
140#if defined(CONF_VIDEORECORDER)
177 void Pause()
override;
IConsole * m_pConsole
Definition demo.h:203
class CSnapshotDelta * m_pSnapshotDelta
Definition demo.h:205
bool Slice(const char *pDemo, const char *pDst, int StartTick, int EndTick, DEMOFUNC_FILTER pfnFilter, void *pUser) override
Definition demo.cpp:1396
virtual void Init(class CSnapshotDelta *pSnapshotDelta, class IConsole *pConsole, class IStorage *pStorage)
Definition demo.cpp:1389
IStorage * m_pStorage
Definition demo.h:204
int64_t m_Filepos
Definition demo.h:107
int m_Tick
Definition demo.h:108
CKeyFrame(int64_t Filepos, int Tick)
Definition demo.h:110
CTimelineMarkers m_TimelineMarkers
Definition demo.h:78
bool m_LiveStateUpdating
Definition demo.h:93
float m_IntraTickSincePrev
Definition demo.h:90
CDemoHeader m_Header
Definition demo.h:77
int64_t m_LastScan
Definition demo.h:83
float m_IntraTick
Definition demo.h:89
int m_LiveStateFailedCount
Definition demo.h:94
IDemoPlayer::CInfo m_Info
Definition demo.h:80
int64_t m_CurrentTime
Definition demo.h:84
int64_t m_LastUpdate
Definition demo.h:82
int m_LiveStateUnchangedCount
Definition demo.h:95
int m_NextTick
Definition demo.h:86
int m_PreviousTick
Definition demo.h:87
float m_TickTime
Definition demo.h:91
virtual void OnDemoPlayerMessage(void *pData, int Size)=0
virtual ~IListener()=default
virtual void OnDemoPlayerSnapshot(void *pData, int Size)=0
const char * ErrorMessage() const override
Definition demo.h:191
int m_LastSnapshotDataSize
Definition demo.h:136
std::vector< CKeyFrame > m_vKeyFrames
Definition demo.h:121
void SetListener(IListener *pListener)
Definition demo.cpp:509
bool ExtractMap(class IStorage *pStorage)
Definition demo.cpp:903
int Load(class IStorage *pStorage, class IConsole *pConsole, const char *pFilename, int StorageType)
Definition demo.cpp:817
bool m_Sixup
Definition demo.h:162
int m_SpeedIndex
Definition demo.h:123
void Play()
Definition demo.cpp:967
EScanFileResult ScanFile()
Definition demo.cpp:579
int SeekTick(ETickOffset TickOffset) override
Definition demo.cpp:1006
unsigned char m_aSnapshot[CSnapshot::MAX_SIZE]
Definition demo.h:134
void Construct(class CSnapshotDelta *pSnapshotDelta, bool UseVideo)
Definition demo.cpp:495
IListener * m_pListener
Definition demo.h:99
const char * Filename() const
Definition demo.h:190
IOHANDLE m_File
Definition demo.h:117
bool IsPlaying() const override
Definition demo.h:197
EReadChunkHeaderResult
Definition demo.h:145
@ CHUNKHEADER_SUCCESS
Definition demo.h:146
@ CHUNKHEADER_ERROR
Definition demo.h:147
@ CHUNKHEADER_EOF
Definition demo.h:148
~CDemoPlayer() override
Definition demo.cpp:490
void UpdateTimes()
Definition demo.cpp:1218
bool IsSixup() const
Definition demo.h:194
void AdjustSpeedIndex(int Offset) override
Definition demo.cpp:1098
bool m_UseVideo
Definition demo.h:139
unsigned char * GetMapData(class IStorage *pStorage)
Definition demo.cpp:885
CPlaybackInfo m_Info
Definition demo.h:125
int SeekPercent(float Percent) override
Definition demo.cpp:994
char m_aFilename[IO_MAX_PATH_LENGTH]
Definition demo.h:119
class CSnapshotDelta * m_pSnapshotDelta
Definition demo.h:137
int SeekTime(float Seconds) override
Definition demo.cpp:1000
unsigned char m_aCompressedSnapshotData[CSnapshot::MAX_SIZE]
Definition demo.h:126
void SetSpeedIndex(int SpeedIndex) override
Definition demo.cpp:1091
const CMapInfo * GetMapInfo() const
Definition demo.h:198
const CInfo * BaseInfo() const override
Definition demo.h:187
bool m_WasRecording
Definition demo.h:141
void Update(bool RealTime=true)
Definition demo.cpp:1103
const CPlaybackInfo * Info() const
Definition demo.h:196
void SetSpeed(float Speed) override
Definition demo.cpp:1086
EScanFileResult
Definition demo.h:153
class IConsole * m_pConsole
Definition demo.h:116
void Unpause() override
Definition demo.cpp:808
unsigned char m_aDecompressedSnapshotData[CSnapshot::MAX_SIZE]
Definition demo.h:127
char m_aErrorMessage[256]
Definition demo.h:120
EReadChunkHeaderResult ReadChunkHeader(int *pType, int *pSize, int *pTick)
Definition demo.cpp:514
int64_t Time()
Definition demo.cpp:940
int64_t m_MapOffset
Definition demo.h:118
void DoTick()
Definition demo.cpp:656
unsigned char m_aChunkData[CSnapshot::MAX_SIZE]
Definition demo.h:131
unsigned char m_aLastSnapshotData[CSnapshot::MAX_SIZE]
Definition demo.h:135
void Pause() override
Definition demo.cpp:799
void Stop(const char *pErrorMessage="")
Definition demo.cpp:1234
CMapInfo m_MapInfo
Definition demo.h:122
int SetPos(int WantedTick) override
Definition demo.cpp:1031
void GetDemoName(char *pBuffer, size_t BufferSize) const override
Definition demo.cpp:1262
TUpdateIntraTimesFunc m_UpdateIntraTimesFunc
Definition demo.h:101
bool GetDemoInfo(class IStorage *pStorage, class IConsole *pConsole, const char *pFilename, int StorageType, CDemoHeader *pDemoHeader, CTimelineMarkers *pTimelineMarkers, CMapInfo *pMapInfo, IOHANDLE *pFile=nullptr, char *pErrorMessage=nullptr, size_t ErrorMessageSize=0) const override
Definition demo.cpp:1267
int m_LastKeyFrame
Definition demo.h:26
bool IsRecording() const override
Definition demo.h:57
class IConsole * m_pConsole
Definition demo.h:20
~CDemoRecorder() override
Definition demo.cpp:55
class CSnapshotDelta * m_pSnapshotDelta
Definition demo.h:30
void WriteTickMarker(int Tick, bool Keyframe)
Definition demo.cpp:252
char m_aCurrentFilename[IO_MAX_PATH_LENGTH]
Definition demo.h:24
int Length() const override
Definition demo.h:60
void RecordSnapshot(int Tick, const void *pData, int Size)
Definition demo.cpp:327
class IStorage * m_pStorage
Definition demo.h:21
bool m_NoMapData
Definition demo.h:35
IOHANDLE m_File
Definition demo.h:23
int m_LastTickMarker
Definition demo.h:25
int Stop(IDemoRecorder::EStopMode Mode, const char *pTargetFilename="") override
Definition demo.cpp:371
int m_NumTimelineMarkers
Definition demo.h:32
int m_FirstTick
Definition demo.h:27
void RecordMessage(const void *pData, int Size)
Definition demo.cpp:359
void AddDemoMarker()
Definition demo.cpp:437
DEMOFUNC_FILTER m_pfnFilter
Definition demo.h:37
int m_aTimelineMarkers[MAX_TIMELINE_MARKERS]
Definition demo.h:33
const char * CurrentFilename() const override
Definition demo.h:58
unsigned char m_aLastSnapshotData[CSnapshot::MAX_SIZE]
Definition demo.h:29
void * m_pUser
Definition demo.h:38
int Start(class IStorage *pStorage, class IConsole *pConsole, const char *pFilename, const char *pNetversion, const char *pMap, const SHA256_DIGEST &Sha256, unsigned MapCrc, const char *pType, unsigned MapSize, unsigned char *pMapData, IOHANDLE MapFile, DEMOFUNC_FILTER pfnFilter, void *pUser)
Definition demo.cpp:61
@ MAX_SIZE
Definition snapshot.h:52
ETickOffset
Definition demo.h:81
EStopMode
Definition demo.h:109
Write
Definition connection_pool.h:35
bool(* DEMOFUNC_FILTER)(const void *pData, int DataSize, void *pUser)
Definition demo.h:24
@ MAX_TIMELINE_MARKERS
Definition demo.h:15
@ SERVER_TICK_SPEED
Definition protocol.h:80
void * IOHANDLE
Definition logger.h:12
std::function< void()> TUpdateIntraTimesFunc
Definition demo.h:16
constexpr auto IO_MAX_PATH_LENGTH
Definition types.h:49