summaryrefslogtreecommitdiff
path: root/Programmer/iff.h
diff options
context:
space:
mode:
Diffstat (limited to 'Programmer/iff.h')
-rw-r--r--Programmer/iff.h167
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
+