#ifndef PACKER_H #define PACKER_H /*----------------------------------------------------------------------* * PACKER.H typedefs for Data-Compresser. 1/22/86 * * This module implements the run compression algorithm "cmpByteRun1"; the * same encoding generated by Mac's PackBits. * * By Jerry Morrison and Steve Shaw, Electronic Arts. * This software is in the public domain. * * This version for the Amiga computer. *----------------------------------------------------------------------*/ #include <exec/types.h> /* This macro computes the worst case packed size of a "row" of bytes. */ #define MaxPackedSize(rowSize) ( (rowSize) + ( ((rowSize)+127) >> 7 ) ) /* Given POINTERS to POINTER variables, packs one row, updating the source * and destination pointers. Returns the size in bytes of the packed row. * ASSUMES destination buffer is large enough for the packed row. * See MaxPackedSize. */ extern LONG PackRow(BYTE **, BYTE **, LONG); /* pSource, pDest, rowSize */ /* Given POINTERS to POINTER variables, unpacks one row, updating the source * and destination pointers until it produces dstBytes bytes (i.e., the * rowSize that went into PackRow). * If it would exceed the source's limit srcBytes or if a run would overrun * the destination buffer size dstBytes, it stops and returns TRUE. * Otherwise, it returns FALSE (no error). */ extern BOOL UnPackRow(BYTE **, BYTE **, WORD, WORD); /* pSource, pDest, srcBytes, dstBytes */ BYTE *PutDump(BYTE *, int); BYTE *PutRun(BYTE *,int,int); LONG PackRow(BYTE **,BYTE **,LONG); BOOL UnPackRow(BYTE **,BYTE **,WORD,WORD); #endif