home *** CD-ROM | disk | FTP | other *** search
- #ifndef LIBRARIES_IFF_H
- #define LIBRARIES_IFF_H
-
- /* C include file for the iff.library V18.4, 28-Feb-90 by Chris Weber.
- Should work for Lattice and Manx. */
-
- #ifndef EXEC_TYPES_H
- #include <exec/types.h>
- #endif
-
- #define IFFNAME "iff.library"
- #define IFFVERSION 18L /* Current library version */
-
- typedef void *IFFFILE; /* The IFF 'FileHandle' structure */
-
-
- /************** FUNCTION DECLARATIONS ***********************************/
-
- #ifdef AZTEC_C
- #define __ARGS(a) ()
- #define NO_PRAGMAS
- #else
- #define __ARGS(a) a
- #endif
-
- IFFFILE OpenIFF __ARGS((char *));
- void CloseIFF __ARGS((IFFFILE));
- void *FindChunk __ARGS((IFFFILE,LONG)); /* Was struct Chunk * */
- 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 */
-
-
- /************** 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 /* BODY has more planes than BitMap */
- #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 sometimes...) */
-
- #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_ILBM MakeID('I','L','B','M')
- #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_DLTA MakeID('D','L','T','A')
- #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')
-
- #define FORM ID_FORM /* Ancient compatibility only, don't use */
- #define PROP ID_PROP
- #define LIST ID_LIST
- #define CAT ID_CAT
-
-
- /************** STRUCTURES **********************************************/
-
- struct Chunk /* Generic IFF chunk structure */
- {
- LONG ckID;
- LONG ckSize;
- /* UBYTE ckData[1]; should be UBYTE ckData[ckSize] */
- };
-
- 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 902
- #pragma libcall IFFBase GetBMHD 30 901
- #pragma libcall IFFBase GetColorTab 36 8902
- #pragma libcall IFFBase DecodePic 3c 8902
- #pragma libcall IFFBase SaveBitMap 42 a9804
- /*#pragma libcall IFFBase SaveClip 48 210a9808*/
- #pragma libcall IFFBase IFFError 4e 0
- #pragma libcall IFFBase GetViewModes 54 901
- #pragma libcall IFFBase NewOpenIFF 5a 802
- #pragma libcall IFFBase ModifyFrame 60 8902
- #endif
-
- #endif !LIBRARIES_IFF_H
-
-