diff options
Diffstat (limited to 'Programmer/iff.h')
-rw-r--r-- | Programmer/iff.h | 167 |
1 files changed, 167 insertions, 0 deletions
diff --git a/Programmer/iff.h b/Programmer/iff.h new file mode 100644 index 0000000..d62bc05 --- /dev/null +++ b/Programmer/iff.h @@ -0,0 +1,167 @@ +#ifndef LIBRARIES_IFF_H +#define LIBRARIES_IFF_H +/* +** +** $Id: $ +** $Revision: $ +** +** $Filename: iff.h $ +** $Author: Christian A. Weber $ +** $Release: 19.1 $ +** $Date: 90/10/09 22:32:54 $ +** +** Standard header file for programs using iff.library +** +** COPYRIGHT (C) 1987-1992 BY CHRISTIAN A. WEBER, BRUGGERWEG 2, +** CH-8037 ZUERICH, SWITZERLAND. +** THIS FILE MAY BE FREELY DISTRIBUTED. USE AT YOUR OWN RISK. +** +*/ + +#ifndef EXEC_TYPES_H +#include <exec/types.h> +#endif + +#define IFFNAME "iff.library" +#define IFFVERSION 19L /* Current library version */ + +typedef void *IFFFILE; /* The IFF 'FileHandle' structure */ + + +/************** FUNCTION DECLARATIONS ***********************************/ + +#ifdef AZTEC_C +#define __ARGS(a) () /* Remove this for Aztec C V5.x */ +#define NO_PRAGMAS +#else +#define __ARGS(a) a +#endif + +IFFFILE OpenIFF __ARGS((char *)); +void CloseIFF __ARGS((IFFFILE)); +void *FindChunk __ARGS((IFFFILE,LONG)); +struct BitMapHeader *GetBMHD __ARGS((IFFFILE)); +LONG GetColorTab __ARGS((IFFFILE,WORD *)); +BOOL DecodePic __ARGS((IFFFILE,struct BitMap *)); +BOOL SaveBitMap __ARGS((char *,struct BitMap *,WORD *,LONG)); +BOOL SaveClip __ARGS((char *,struct BitMap *,WORD *,LONG,LONG,LONG,LONG,LONG)); +LONG IFFError __ARGS((void)); +ULONG GetViewModes __ARGS((IFFFILE)); /* ULONG since V18.1 */ +APTR NewOpenIFF __ARGS((char *,LONG)); /* Since V16.1 */ +BOOL ModifyFrame __ARGS((void *,struct BitMap *)); /* Since V18.1 */ +IFFFILE PPOpenIFF __ARGS((char *,char *)); + + +/************** ERROR-CODES *********************************************/ + +#define IFF_BADTASK -1 /* IFFError() called by wrong task */ + +#define IFF_CANTOPENFILE 16 /* File not found */ +#define IFF_READERROR 17 /* Error reading file */ +#define IFF_NOMEM 18 /* Not enough memory */ +#define IFF_NOTIFF 19 /* File is not an IFF file */ +#define IFF_WRITEERROR 20 /* Error writing file */ + +#define IFF_NOILBM 24 /* IFF file is not of type ILBM */ +#define IFF_NOBMHD 25 /* BMHD chunk not found */ +#define IFF_NOBODY 26 /* BODY chunk not found */ +#define IFF_TOOMANYPLANES 27 /* Obsolete since V18.6 */ +#define IFF_UNKNOWNCOMPRESSION 28 /* Unknown compression type */ + +#define IFF_NOANHD 29 /* ANHD chunk not found (since V18.1) */ +#define IFF_NODLTA 30 /* DLTA chunk not found (since V18.1) */ + + +/************** COMMON IFF IDs ******************************************/ + +#define MakeID(a,b,c,d) ((ULONG)(a)<<24L|(ULONG)(b)<<16L|(c)<<8|(d)) + +/* List of the most useful IDs, NOT complete, to be continued */ + +#define ID_FORM MakeID('F','O','R','M') +#define ID_PROP MakeID('P','R','O','P') +#define ID_LIST MakeID('L','I','S','T') +#define ID_CAT MakeID('C','A','T',' ') + +#define ID_ANIM MakeID('A','N','I','M') +#define ID_ANHD MakeID('A','N','H','D') +#define ID_BMHD MakeID('B','M','H','D') +#define ID_BODY MakeID('B','O','D','Y') +#define ID_CAMG MakeID('C','A','M','G') +#define ID_CLUT MakeID('C','L','U','T') +#define ID_CMAP MakeID('C','M','A','P') +#define ID_CRNG MakeID('C','R','N','G') +#define ID_CTBL MakeID('C','T','B','L') +#define ID_DLTA MakeID('D','L','T','A') +#define ID_ILBM MakeID('I','L','B','M') +#define ID_SHAM MakeID('S','H','A','M') + +#define ID_8SVX MakeID('8','S','V','X') +#define ID_ATAK MakeID('A','T','A','K') +#define ID_NAME MakeID('N','A','M','E') +#define ID_RLSE MakeID('R','L','S','E') +#define ID_VHDR MakeID('V','H','D','R') + + +/************** STRUCTURES **********************************************/ + +struct Chunk /* Generic IFF chunk structure */ +{ + LONG ckID; + LONG ckSize; +/* UBYTE ckData[ckSize] (variable sized data) */ +}; + +struct BitMapHeader /* BMHD chunk for ILBM files */ +{ + UWORD w,h; + WORD x,y; + UBYTE nPlanes; + UBYTE masking; + UBYTE compression; + UBYTE pad1; + UWORD transparentColor; + UBYTE xAspect,yAspect; + WORD pageWidth,pageHeight; +}; + +struct AnimHeader /* ANHD chunk for ANIM files */ +{ + UBYTE Operation; + UBYTE Mask; + UWORD W; + UWORD H; + WORD X; + WORD Y; + ULONG AbsTime; + ULONG RelTime; + UBYTE Interleave; + UBYTE pad0; + ULONG Bits; + UBYTE pad[16]; +}; + + +/************** PRAGMAS FOR LATTICE C V5.x ******************************/ + +/* Pragmas generated with: 'fd2pragma iff_lib.fd iffpragmas.h' */ + +#ifndef NO_PRAGMAS +extern struct Library *IFFBase; +#pragma libcall IFFBase OpenIFF 1e 801 +#pragma libcall IFFBase CloseIFF 24 901 +#pragma libcall IFFBase FindChunk 2a 0902 +#pragma libcall IFFBase GetBMHD 30 901 +#pragma libcall IFFBase GetColorTab 36 8902 +#pragma libcall IFFBase DecodePic 3c 8902 +#pragma libcall IFFBase SaveBitMap 42 0a9804 +#pragma libcall IFFBase SaveClip 48 43210A9808 +#pragma libcall IFFBase IFFError 4e 0 +#pragma libcall IFFBase GetViewModes 54 901 +#pragma libcall IFFBase NewOpenIFF 5a 0802 +#pragma libcall IFFBase ModifyFrame 60 8902 +#pragma libcall IFFBase PPOpenIFF 66 9802 +#endif + +#endif !LIBRARIES_IFF_H + |