From 59222a752fa4c8a1e8c2a00ee2f9e22855f12bb2 Mon Sep 17 00:00:00 2001 From: llornkcor Date: Mon, 01 Jul 2002 23:24:08 +0000 Subject: initial --- (limited to 'noncore/apps/opie-reader/Aportis.h') diff --git a/noncore/apps/opie-reader/Aportis.h b/noncore/apps/opie-reader/Aportis.h new file mode 100644 index 0000000..08016f4 --- a/dev/null +++ b/noncore/apps/opie-reader/Aportis.h @@ -0,0 +1,86 @@ +/* + Derived from makedoc9 by Pat Beirne +*/ + +#ifndef __Aportis_h +#define __Aportis_h + +#include "CExpander.h" +#include "pdb.h" + +typedef UInt32 DWORD; +typedef UInt16 WORD; + +#define DISP_BITS 11 +#define COUNT_BITS 3 +/* +// all numbers in these structs are big-endian, MAC format +struct tDocHeader { + char sName[32]; + DWORD dwUnknown1; + DWORD dwTime1; + DWORD dwTime2; + DWORD dwTime3; + DWORD dwLastSync; + DWORD ofsSort; + DWORD ofsCatagories; + DWORD dwCreator; + DWORD dwType; + DWORD dwUnknown2; + DWORD dwUnknown3; + WORD wNumRecs; +}; +*/ +struct tDocRecord0 { + WORD wVersion; // 1=plain text, 2=compressed + WORD wSpare; + DWORD dwStoryLen; // in chars, when decompressed + WORD wNumRecs; // text records only; equals tDocHeader.wNumRecs-1 + WORD wRecSize; // usually 0x1000 + DWORD dwSpare2; +}; + +////////////// utilities ////////////////////////////////////// + +inline WORD SwapWord(WORD r) +{ + return (r>>8) + (r<<8); +} + +inline DWORD SwapLong(DWORD r) +{ + return ((r>>24) & 0xFF) + (r<<24) + ((r>>8) & 0xFF00) + ((r<<8) & 0xFF0000); +} + +class Aportis : public CExpander, Cpdb { + DWORD dwLen; + WORD nRecs2; + DWORD dwTLen; + WORD nRecs; + WORD BlockSize; + DWORD dwRecLen; + int currentrec, currentpos; + unsigned int cbptr; + unsigned int outptr; + unsigned char circbuf[2048]; + char bCompressed; +public: + virtual void sizes(unsigned long& _file, unsigned long& _text) + { + _file = dwLen; + _text = dwTLen; + } + virtual bool hasrandomaccess() { return true; } + virtual ~Aportis() {} + Aportis(); + virtual int openfile(const char *src); + virtual int getch(); + virtual unsigned int locate(); + virtual void locate(unsigned int n); + virtual CList* getbkmklist(); +private: + bool refreshbuffer(); + unsigned int GetBS(unsigned int bn); +}; + +#endif -- cgit v0.9.0.2