#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 */