#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 Commodore-Amiga computer. *----------------------------------------------------------------------*/ #ifndef COMPILER_H #include "iff/compiler.h" #endif /* This macro computes the worst case packed size of a "row" of bytes. */ #define MaxPackedSize(rowSize) ( (rowSize) + ( ((rowSize)+127) >> 7 ) ) #ifdef FDwAT /* Compiler handles Function Declaration with Argument Types */ /* 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 */ #else /* not FDwAT */ extern LONG PackRow(); extern BOOL UnPackRow(); #endif /* FDwAT */ #endif