home *** CD-ROM | disk | FTP | other *** search
/ The Best of Mecomp Multimedia 1 / Mecomp-CD.iso / amiga / datatypes / film_datatype / classbase.h < prev    next >
Encoding:
C/C++ Source or Header  |  1997-04-19  |  5.6 KB  |  196 lines

  1.  
  2. #ifndef CLASSBASE_H
  3. #define CLASSBASE_H 1
  4.  
  5. /*
  6. **
  7. **  $VER: classbase.h 1.5 (19.1.97)
  8. **  film.datatype 1.5
  9. **
  10. **  Header file for DataTypes class
  11. **
  12. **  Written 1996/97 by Roland 'Gizzy' Mainz
  13. **  Original example source from David N. Junod
  14. **
  15. */
  16.  
  17. /* amiga includes */
  18. #include <exec/types.h>
  19. #include <exec/ports.h>
  20. #include <exec/memory.h>
  21. #include <exec/lists.h>
  22. #include <exec/semaphores.h>
  23. #include <exec/execbase.h>
  24. #include <dos/dos.h>
  25. #include <dos/dosextens.h>
  26. #include <dos/rdargs.h>
  27. #include <dos/dostags.h>
  28. #include <graphics/gfx.h>
  29. #include <graphics/text.h>
  30. #include <graphics/scale.h>
  31. #include <intuition/classes.h>  /* must be $Id: classes.h,v 40.0 94/02/15 17:46:35 davidj Exp Locker: davidj $ */
  32. #include <intuition/classusr.h>
  33. #include <intuition/cghooks.h>
  34. #include <intuition/icclass.h>
  35. #include <intuition/gadgetclass.h>
  36. #include <datatypes/datatypes.h>
  37. #include <datatypes/datatypesclass.h>
  38. #include <datatypes/animationclass.h>
  39.  
  40. /* amiga prototypes */
  41. #include <clib/macros.h>
  42. #include <clib/exec_protos.h>
  43. #include <clib/utility_protos.h>
  44. #include <clib/dos_protos.h>
  45. #include <clib/graphics_protos.h>
  46. #include <clib/intuition_protos.h>
  47. #include <clib/datatypes_protos.h>
  48. #include <clib/dtclass_protos.h>
  49. #include <clib/iffparse_protos.h>
  50. #ifdef PARAMETERS_STACK
  51. #include <clib/alib_protos.h>
  52. #include <clib/alib_stdio_protos.h>
  53. #endif /* PARAMETERS_STACK */
  54.  
  55. /* amiga pragmas */
  56. #include <pragmas/exec_pragmas.h>
  57. #include <pragmas/utility_pragmas.h>
  58. #include <pragmas/dos_pragmas.h>
  59. #include <pragmas/graphics_pragmas.h>
  60. #include <pragmas/intuition_pragmas.h>
  61. #include <pragmas/datatypes_pragmas.h>
  62. #include <pragmas/dtclass_pragmas.h>
  63. #include <pragmas/iffparse_pragmas.h>
  64. #include <pragmas/alib_pragmas.h> /* amiga.lib stubs (tagcall pragmas) */
  65.  
  66. /* ANSI includes */
  67. #include <string.h>
  68.  
  69. /*****************************************************************************/
  70.  
  71. #define FILMDTCLASS "film.datatype"
  72.  
  73. /*****************************************************************************/
  74.  
  75. struct ClassBase
  76. {
  77.     struct ClassLibrary     cb_Lib;
  78.     struct ExecBase        *cb_SysBase;
  79.     struct Library         *cb_UtilityBase;
  80.     struct Library         *cb_DOSBase;
  81.     struct Library         *cb_IFFParseBase;
  82.     struct Library         *cb_GfxBase;
  83.     struct Library         *cb_IntuitionBase;
  84.     struct Library         *cb_DataTypesBase;
  85.     struct Library         *cb_SuperClassBase;
  86.     BPTR                    cb_SegList;
  87.     struct SignalSemaphore  cb_Lock;           /* Access lock */
  88. };
  89.  
  90. /*****************************************************************************/
  91.  
  92. /* SASC specific defines */
  93. #define DISPATCHERFLAGS __saveds __asm
  94. #define REGD0 register __d0
  95. /* ... */
  96. #define REGA0 register __a0
  97. #define REGA1 register __a1
  98. #define REGA2 register __a2
  99. /* ... */
  100. #define REGA6 register __a6
  101.  
  102. /*****************************************************************************/
  103.  
  104. #define SysBase        (cb -> cb_SysBase)
  105. #define UtilityBase    (cb -> cb_UtilityBase)
  106. #define DOSBase        (cb -> cb_DOSBase)
  107. #define IFFParseBase   (cb -> cb_IFFParseBase)
  108. #define GfxBase        (cb -> cb_GfxBase)
  109. #define IntuitionBase  (cb -> cb_IntuitionBase)
  110. #define DataTypesBase  (cb -> cb_DataTypesBase)
  111.  
  112. /*****************************************************************************/
  113.  
  114. #define V( x )    ((VOID *)(x))
  115. #define G( o )    ((struct Gadget *)(o))
  116. #define EXTG( o ) ((struct ExtGadget *)(o))
  117.  
  118. #define XTAG( expr, tagid ) ((Tag)((expr)?(tagid):(TAG_IGNORE)))
  119. /* Get data from pointer only if it is NOT NULL (and cast data to ULONG) */
  120. #define XPTRDATA( x ) ((ULONG)((x)?(*(x)):(0UL)))
  121.  
  122. #define MAKEBOOL( x ) ((BOOL)((x) != NULL))
  123.  
  124. /*****************************************************************************/
  125.  
  126. #ifndef PARAMETERS_STACK
  127. #define PARAMETERS_STACK 1
  128. #define  CLIB_ALIB_PROTOS_H
  129. __stdargs void  NewList( struct List *list );
  130. __stdargs ULONG DoMethodA( Object *obj, Msg message );
  131. __stdargs ULONG DoMethod( Object *obj, unsigned long MethodID, ... );
  132. __stdargs ULONG DoSuperMethodA( struct IClass *cl, Object *obj, Msg message );
  133. __stdargs ULONG DoSuperMethod( struct IClass *cl, Object *obj, unsigned long MethodID, ... );
  134. __stdargs ULONG CoerceMethodA( struct IClass *cl, Object *obj, Msg message );
  135. __stdargs ULONG CoerceMethod( struct IClass *cl, Object *obj, unsigned long MethodID, ... );
  136. __stdargs ULONG SetSuperAttrs( struct IClass *cl, Object *obj, unsigned long Tag1, ... );
  137. #endif /* !PARAMETERS_STACK */
  138.  
  139. /*****************************************************************************/
  140.  
  141. /* IFF FILM identifers */
  142. #ifndef ID_FILM
  143. #define ID_FILM MAKE_ID( 'F', 'I', 'L', 'M' )
  144. #endif /* !ID_FILM */
  145.  
  146. #ifndef ID_CELL
  147. #define ID_CELL MAKE_ID( 'C', 'E', 'L', 'L' )
  148. #endif /* !ID_CELL */
  149.  
  150. /* ILBM identifers */
  151. #ifndef ID_ILBM
  152. #define ID_ILBM MAKE_ID( 'I', 'L', 'B', 'M' )
  153. #endif /* !ID_ILBM */
  154.  
  155. #ifndef ID_BMHD
  156. #define ID_BMHD MAKE_ID( 'B', 'M', 'H', 'D' )
  157. #endif /* !ID_BMHD */
  158.  
  159. #ifndef ID_CMAP
  160. #define ID_CMAP MAKE_ID( 'C', 'M', 'A', 'P' )
  161. #endif /* !ID_CMAP */
  162.  
  163. #ifndef ID_CAMG
  164. #define ID_CAMG MAKE_ID( 'C', 'A', 'M', 'G' )
  165. #endif /* !ID_CMAP */
  166.  
  167. /* 8SVX identifers */
  168. #ifndef ID_8SVX
  169. #define ID_8SVX MAKE_ID( '8', 'S', 'V', 'X' )
  170. #endif /* !ID_8SVX */
  171.  
  172. #ifndef ID_VHDR
  173. #define ID_VHDR MAKE_ID( 'V', 'H', 'D', 'R' )
  174. #endif /* !ID_VHDR */
  175.  
  176. #ifndef ID_CHAN
  177. #define CHAN_RIGHT  (4L)
  178. #define CHAN_LEFT   (2L)
  179. #define CHAN_STEREO (6L)  /* CHAN_RIGHT + CHAN_LEFT */
  180.  
  181. #define ID_CHAN MAKE_ID( 'C', 'H', 'A', 'N' )
  182. #endif /* !ID_CHAN */
  183.  
  184. /* misc */
  185. #ifndef ID_BODY
  186. #define ID_BODY MAKE_ID( 'B', 'O', 'D', 'Y' )
  187. #endif /* !ID_BODY */
  188.  
  189. /*****************************************************************************/
  190.  
  191. #include "class_iprotos.h"
  192.  
  193. #endif /* !CLASSBASE_H */
  194.  
  195.  
  196.