30#include "common/file.h"
37#define kBtInnerCount ((kBtSize - 4 ) / (kBtKeySize + 2 ))
38#define kBtLeafCount ((kBtSize - 4 ) / (kBtKeySize + 4 + 4 ))
39#define kBtValNone 0xFFFF
41#define kCatName "VOL.CAT"
42#define kDatName "VOL.DAT"
43#define kCryptSeed 0xA5
46 kIdNear, kIdMTake, kIdFTake, kIdPhase, kIdSeq,
47 kIdName, kIdType, kIdFront, kIdEast,
48 kIdPortable, kIdTransparent,
53 char _key[kBtKeySize];
59 uint8 _key[kBtKeySize];
72 uint8 _data[kBtSize - 4];
74 Inner _inner[kBtInnerCount];
90 BtPage *getPage(
int level, uint16 pageId);
91 uint16 catRead(
byte *buf, uint16 length);
94 void xCrypt(
byte *buf, uint16 length);
98 uint16 read(
byte *buf, uint16 length);
99 bool seek(int32 offs,
int whence = SEEK_SET);
102 bool exist(
const char *name);
115 bool seek(int32 offset);
118 uint32 read(
byte *dataPtr, uint32 dataSize);
119 int16 readSint16LE();
120 uint32 readUint32LE();
122 int getLineCount() {
return _lineCount; }
124 static const char *
const kIdTab[];