#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 #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