#ifndef IFFLIB_H
#define IFFLIB_H 1

/* masking */
#define mskNone 	       0
#define mskHasMask	       1
#define mskHasTransparentColor 2
#define mskLasso	       3

/* aspect */
#define x320x200Aspect 10
#define y320x200Aspect 11
#define x320x400Aspect 20
#define y320x400Aspect 11
#define x640x200Aspect 5
#define y640x200Aspect 11
#define x640x400Aspect 10
#define y640x400Aspect 11

/* compression */
#define cmpNone     0
#define cmpByteRun1 1

typedef struct
   {
   unsigned short w, h;       /* width, height */
   unsigned short x, y;       /* position */
   unsigned char nPlanes;     /* number of bit-planes */
   unsigned char masking;     /* type of masking used */
   unsigned char compression; /* type of compression used */
   unsigned char pad1;
   unsigned short transparentColor;
   unsigned char xAspect, yAspect;	 /* aspect ration */
   unsigned short pageWidth, pageHeight; /* size of the screen */
   unsigned long viewmodes;
   } BitMapHeader;

/* error codes */
#define NO_ERROR 0
#define YOUR_ERROR 1
#define OPEN_ERROR 2
#define FILE_WAS_CLOSED 3
#define SEEK_ERROR 4
#define READ_ERROR 5
#define MEMORY_ERROR 6
#define IFFBAD_ERROR 7
#define WIERD_MASKING 8
#define WIERD_COMPRESSION 9
#define COMPRESSION_ERROR 10
#define IFF_TO_BIG 11
#define UNKNOWN_ERROR -1

/* library name */
#define IFFNAME "iff.library"

/* memory types */
#define DONTCARE ((unsigned short)0)
#define CHIP ((unsigned short)1)
#define FAST ((unsigned short)2)

#define ALLOC ((unsigned short)1)
#define NOALLOC ((unsigned short)0)

/* set this if you wan't to get the
 * ViewModes from the IFF picture
 * using QueryIFF. */
#define GETVIEWMODES -1000000L

/* functions */
extern void *IFFalloc(), IFFfree(), RlsImage(), RlsBitMap();
extern short QueryIFF(), GetIFF_bitmap(), GetIFF_image();

#endif
