home *** CD-ROM | disk | FTP | other *** search
-
- #ifndef CLASSBASE_H
- #define CLASSBASE_H 1
-
- /*
- **
- ** $VER: classbase.h 1.5 (19.1.97)
- ** film.datatype 1.5
- **
- ** Header file for DataTypes class
- **
- ** Written 1996/97 by Roland 'Gizzy' Mainz
- ** Original example source from David N. Junod
- **
- */
-
- /* amiga includes */
- #include <exec/types.h>
- #include <exec/ports.h>
- #include <exec/memory.h>
- #include <exec/lists.h>
- #include <exec/semaphores.h>
- #include <exec/execbase.h>
- #include <dos/dos.h>
- #include <dos/dosextens.h>
- #include <dos/rdargs.h>
- #include <dos/dostags.h>
- #include <graphics/gfx.h>
- #include <graphics/text.h>
- #include <graphics/scale.h>
- #include <intuition/classes.h> /* must be $Id: classes.h,v 40.0 94/02/15 17:46:35 davidj Exp Locker: davidj $ */
- #include <intuition/classusr.h>
- #include <intuition/cghooks.h>
- #include <intuition/icclass.h>
- #include <intuition/gadgetclass.h>
- #include <datatypes/datatypes.h>
- #include <datatypes/datatypesclass.h>
- #include <datatypes/animationclass.h>
-
- /* amiga prototypes */
- #include <clib/macros.h>
- #include <clib/exec_protos.h>
- #include <clib/utility_protos.h>
- #include <clib/dos_protos.h>
- #include <clib/graphics_protos.h>
- #include <clib/intuition_protos.h>
- #include <clib/datatypes_protos.h>
- #include <clib/dtclass_protos.h>
- #include <clib/iffparse_protos.h>
- #ifdef PARAMETERS_STACK
- #include <clib/alib_protos.h>
- #include <clib/alib_stdio_protos.h>
- #endif /* PARAMETERS_STACK */
-
- /* amiga pragmas */
- #include <pragmas/exec_pragmas.h>
- #include <pragmas/utility_pragmas.h>
- #include <pragmas/dos_pragmas.h>
- #include <pragmas/graphics_pragmas.h>
- #include <pragmas/intuition_pragmas.h>
- #include <pragmas/datatypes_pragmas.h>
- #include <pragmas/dtclass_pragmas.h>
- #include <pragmas/iffparse_pragmas.h>
- #include <pragmas/alib_pragmas.h> /* amiga.lib stubs (tagcall pragmas) */
-
- /* ANSI includes */
- #include <string.h>
-
- /*****************************************************************************/
-
- #define FILMDTCLASS "film.datatype"
-
- /*****************************************************************************/
-
- struct ClassBase
- {
- struct ClassLibrary cb_Lib;
- struct ExecBase *cb_SysBase;
- struct Library *cb_UtilityBase;
- struct Library *cb_DOSBase;
- struct Library *cb_IFFParseBase;
- struct Library *cb_GfxBase;
- struct Library *cb_IntuitionBase;
- struct Library *cb_DataTypesBase;
- struct Library *cb_SuperClassBase;
- BPTR cb_SegList;
- struct SignalSemaphore cb_Lock; /* Access lock */
- };
-
- /*****************************************************************************/
-
- /* SASC specific defines */
- #define DISPATCHERFLAGS __saveds __asm
- #define REGD0 register __d0
- /* ... */
- #define REGA0 register __a0
- #define REGA1 register __a1
- #define REGA2 register __a2
- /* ... */
- #define REGA6 register __a6
-
- /*****************************************************************************/
-
- #define SysBase (cb -> cb_SysBase)
- #define UtilityBase (cb -> cb_UtilityBase)
- #define DOSBase (cb -> cb_DOSBase)
- #define IFFParseBase (cb -> cb_IFFParseBase)
- #define GfxBase (cb -> cb_GfxBase)
- #define IntuitionBase (cb -> cb_IntuitionBase)
- #define DataTypesBase (cb -> cb_DataTypesBase)
-
- /*****************************************************************************/
-
- #define V( x ) ((VOID *)(x))
- #define G( o ) ((struct Gadget *)(o))
- #define EXTG( o ) ((struct ExtGadget *)(o))
-
- #define XTAG( expr, tagid ) ((Tag)((expr)?(tagid):(TAG_IGNORE)))
- /* Get data from pointer only if it is NOT NULL (and cast data to ULONG) */
- #define XPTRDATA( x ) ((ULONG)((x)?(*(x)):(0UL)))
-
- #define MAKEBOOL( x ) ((BOOL)((x) != NULL))
-
- /*****************************************************************************/
-
- #ifndef PARAMETERS_STACK
- #define PARAMETERS_STACK 1
- #define CLIB_ALIB_PROTOS_H
- __stdargs void NewList( struct List *list );
- __stdargs ULONG DoMethodA( Object *obj, Msg message );
- __stdargs ULONG DoMethod( Object *obj, unsigned long MethodID, ... );
- __stdargs ULONG DoSuperMethodA( struct IClass *cl, Object *obj, Msg message );
- __stdargs ULONG DoSuperMethod( struct IClass *cl, Object *obj, unsigned long MethodID, ... );
- __stdargs ULONG CoerceMethodA( struct IClass *cl, Object *obj, Msg message );
- __stdargs ULONG CoerceMethod( struct IClass *cl, Object *obj, unsigned long MethodID, ... );
- __stdargs ULONG SetSuperAttrs( struct IClass *cl, Object *obj, unsigned long Tag1, ... );
- #endif /* !PARAMETERS_STACK */
-
- /*****************************************************************************/
-
- /* IFF FILM identifers */
- #ifndef ID_FILM
- #define ID_FILM MAKE_ID( 'F', 'I', 'L', 'M' )
- #endif /* !ID_FILM */
-
- #ifndef ID_CELL
- #define ID_CELL MAKE_ID( 'C', 'E', 'L', 'L' )
- #endif /* !ID_CELL */
-
- /* ILBM identifers */
- #ifndef ID_ILBM
- #define ID_ILBM MAKE_ID( 'I', 'L', 'B', 'M' )
- #endif /* !ID_ILBM */
-
- #ifndef ID_BMHD
- #define ID_BMHD MAKE_ID( 'B', 'M', 'H', 'D' )
- #endif /* !ID_BMHD */
-
- #ifndef ID_CMAP
- #define ID_CMAP MAKE_ID( 'C', 'M', 'A', 'P' )
- #endif /* !ID_CMAP */
-
- #ifndef ID_CAMG
- #define ID_CAMG MAKE_ID( 'C', 'A', 'M', 'G' )
- #endif /* !ID_CMAP */
-
- /* 8SVX identifers */
- #ifndef ID_8SVX
- #define ID_8SVX MAKE_ID( '8', 'S', 'V', 'X' )
- #endif /* !ID_8SVX */
-
- #ifndef ID_VHDR
- #define ID_VHDR MAKE_ID( 'V', 'H', 'D', 'R' )
- #endif /* !ID_VHDR */
-
- #ifndef ID_CHAN
- #define CHAN_RIGHT (4L)
- #define CHAN_LEFT (2L)
- #define CHAN_STEREO (6L) /* CHAN_RIGHT + CHAN_LEFT */
-
- #define ID_CHAN MAKE_ID( 'C', 'H', 'A', 'N' )
- #endif /* !ID_CHAN */
-
- /* misc */
- #ifndef ID_BODY
- #define ID_BODY MAKE_ID( 'B', 'O', 'D', 'Y' )
- #endif /* !ID_BODY */
-
- /*****************************************************************************/
-
- #include "class_iprotos.h"
-
- #endif /* !CLASSBASE_H */
-
-
-