#pragma once // ********************************************************************* // *** C/C++ definitions to read out .timeline files *** // *** Last modified: 2012APR28 *** // *** (c) Christian Schnettelker 2011, 2012 *** // *** *** // *** www.finefiles.com mail@finefiles.com *** // ********************************************************************* #include "ffBasic.h" /* Important: Puts packing alignment value 1 on the internal compiler */ #pragma pack( push,1 ) /* stack and sets the current packing alignment value to 1 */ #define __TLF__SIGNATURE "ffTLF-200 finefiles timeline file" typedef struct { UCHAR cStart; // 0x89 UCHAR cSignature[ 33 ]; // contains __TLF__SIGNATURE UCHAR cCRLF[ 2 ]; // 0x0D 0x0A (CR/LF) UCHAR cEOF; // 0x1A UCHAR cLF; // 0x0A WORD wReserved; // Reserved } TLFMAINHEADER; // 40 bytes typedef struct { UCHAR cSignature[ 4 ]; // Chunk tag WORD wChunkLen; // chunk length WORD wReserved; // Reserved } TLFCHUNKTAG; // 8 bytes typedef struct { TLFCHUNKTAG xChunkTag; // Signatur "|III" unsigned int uEntries; // # of entries // ---------------- Data -------------------------------- __int64 i64Lower; // Lower pointer __int64 i64Garbage; // Garbage pointer PIT xPITlastAccess; // last access __int64 i64TLCvalues; // points to TLC values __int64 i64Reserved1; // Reserved __int64 i64Reserved2; // Reserved __int64 i64Reserved3; // Reserved __int64 i64Reserved4; // Reserved __int64 i64Reserved5; // Reserved __int64 i64Reserved6; // Reserved __int64 i64Reserved7; // Reserved __int64 i64Reserved8; // Reserved // ------------------------------------------------------ unsigned int uReserved; // Reserved __int64 i64Reserved; // Reserved } TLFMAININDEX; // 120 bytes typedef struct { TLFCHUNKTAG xChunkTag; // CYC/CMC/CDC WORD wID; // value __int64 i64Next; // next chunk // ---------------- Data ------------------------------- __int64 i64Lower; // chunk in lower level // ------------------------------------------------------ unsigned int uReserved; // Reserved __int64 i64Reserved; // Reserved } TLFYMDCHUNK; typedef struct { TLFCHUNKTAG xChunkTag; // Signature "|IYI" WORD wID; // year value // ---------------- Data -------------------------------- __int64 i64Month[ 13 ]; // month chunks // ------------------------------------------------------ unsigned int uReserved; // Reserved __int64 i64Reserved; // Reserved } TLFYEARINDEX; typedef struct { TLFCHUNKTAG xChunkTag; // Signature "|IMI" WORD wID; // month value // ---------------- Data -------------------------------- __int64 i64Days[ 32 ]; // day chunks // ------------------------------------------------------ unsigned int uReserved; // Reserved __int64 i64Reserved; // Reserved } TLFMONTHINDEX; typedef struct { TLFCHUNKTAG xChunkTag; // Signature "|CEC" DATETAG xDateTag; // Sort date __int64 i64Next; // next chunk __int64 i64DayChunk; // Parent day chunk // ---------------- Data -------------------------------- WORD wFileType; // File type WORD wRootLen; // root path len WORD wFileNameLen; // file name len WORD wHashPos; // Hash pos or 999 UCHAR cReserved[ 22 ]; // Reserved __int64 i64FileSize; // File size in bytes // ------------------------------------------------------ unsigned int uReserved; // Reserved __int64 i64Reserved; // Reserved } TLFENTRYCHUNK; typedef struct { TLFCHUNKTAG xChunkTag; // Signatur "|GEC" DATETAG xUnused; // not used __int64 i64Next; // next chunk or NULL } TLFGARBAGECHUNK; /* Important: undo packing alignment value 1 */ #pragma pack() /* Important: undo packing alignment value 1 */ /* eof */