home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 1998 #5 / AmigaPlus_CD-ROM_Nr.5-98.iso / pd / musik / playmf / fireworks / source / fireworks.h < prev    next >
C/C++ Source or Header  |  1998-04-03  |  3KB  |  163 lines

  1. #ifndef FIREWORKS_H
  2. #define FIREWORKS_H
  3.  
  4.  
  5. /* Some defines */
  6.  
  7. #define FPS 25                /* nominal frames per seconds */
  8. #define MIN_FPS 2            /* when FPS drops below, the */
  9.                             /* watchdog timer intervenes */
  10.  
  11. #define NORMPRI -10            /* priority during normal operation */
  12. #define HIGHPRI  10            /* priority in idle mode or when */
  13.                             /* watchdog timer intervenes */
  14.  
  15.  
  16. #define MAXCOORD 1024
  17.  
  18. #define CENTER_X 512        /* window width  is 0...MAXCOORD */
  19. #define CENTER_Y 980        /* window height is 0...MAXCOORD */
  20.  
  21.  
  22. /* Library bases */
  23.  
  24. extern struct ExecBase            *SysBase;
  25. extern struct DosLibrary        *DOSBase;
  26. extern struct GfxBase            *GfxBase;
  27. extern struct Library            *LayersBase;
  28. extern struct IntuitionBase    *IntuitionBase;
  29. extern struct Library             *GadToolsBase;
  30. extern struct Library            *UtilityBase;
  31. extern struct Library            *DatatypesBase;
  32. extern struct Library            *AslBase;
  33. extern struct Library            *WorkbenchBase;
  34. extern struct Library            *CamdBase;
  35. extern struct Library            *TimerBase;
  36. extern BOOL                         FPBase;    /* pseudo floating point base */
  37.  
  38.  
  39. /* the main program's task */
  40.  
  41. extern struct Task *MyTask;
  42.  
  43.  
  44. /* these flags serve for keeping track of asynchronous tasks */
  45.  
  46. typedef enum
  47. {
  48.     AboutTask  = 0x00000001,    /* these are the asynchronous messages */
  49.     SaveTask   = 0x00000002,
  50.     ErrTask    = 0x00000004,
  51.     DropTask   = 0x00000008,
  52.     LaunchTask = 0x00000010,
  53.     CloseTask  = 0x00000020,
  54.     
  55.     PlayTask   = 0x00000100,    /* these are the file requesters */
  56.     ImageTask  = 0x00000200,
  57.     
  58.     LinkTask   = 0x00001000,    /* the MIDI link requester */
  59.     ScreenTask = 0x00002000,    /* the screenmode requester */
  60.  
  61. } TaskFlag;
  62.  
  63.  
  64. /* Palette organisation */
  65.  
  66. enum
  67. {
  68.     Backgroundpen,
  69.     Sparkpen,
  70.     Channelpens,
  71.     
  72.     NUMPENS = Channelpens + 16
  73. };
  74.  
  75.  
  76. /* global preferences data */
  77.  
  78. struct Prefs
  79. {
  80.     UBYTE Header[10];
  81.     UWORD Version;
  82.     UBYTE Link[32];
  83.     UWORD FWMode;
  84.     UWORD Sensitivity;
  85.     ULONG Flags;
  86.     UWORD WinX;
  87.     UWORD WinY;
  88.     UWORD WinW;
  89.     UWORD WinH;
  90.     UBYTE Image[240];
  91.     ULONG ScreenMode;
  92.     UWORD ScreenWidth;
  93.     UWORD ScreenHeight;
  94.     UWORD ScreenDepth;
  95.     ULONG OverscanType;
  96.     BOOL AutoScroll;
  97.     UBYTE MIDIFile[240];
  98. };
  99.  
  100. #define PREFF_BACKDROP   (1L<< 0)
  101. #define PREFF_TILE       (1L<< 1)
  102. #define PREFF_FULLSCREEN (1L<< 2)
  103. #define PREFF_DOUBLE     (1L<< 3)
  104. #define PREFF_SPARKS     (1L<< 4)
  105. #define PREFF_GM         (1L<< 5)
  106. #define PREFF_GS         (1L<< 6)
  107. #define PREFF_XG         (1L<< 7)
  108. #define PREFF_MT32       (1L<< 8)
  109. #define PREFF_ASLHOOKS   (1L<< 9)
  110. #define PREFF_TIMESTAMP  (1L<<10)
  111. #define PREFF_HDTITLEBAR (1L<<11)
  112. #define PREFF_HDMOUSEPTR (1L<<12)
  113.  
  114.  
  115. /* all data structures and pointers needed by this program */
  116.  
  117. struct Globals
  118. {
  119.     struct Screen *LockedScreen;
  120.     struct Screen *OpenedScreen;
  121.     
  122.     struct Screen *Screen;
  123.     APTR VisualInfo;
  124.     struct Window *Window;
  125.     struct Menu   *Menu;
  126.     
  127.     struct Window *ProcWindow;
  128.     
  129.     struct MsgPort *AppPort;
  130.     struct AppWindow *AppWindow;
  131.     
  132.     struct timerequest *treq;
  133.     
  134.     WORD ww, wh;
  135.     
  136.     LONG PenArray[NUMPENS];
  137.     
  138.     Object *dto;
  139.     struct BitMap *BGBitMap;
  140.     struct BitMap *PaintBitMap;
  141.     struct RastPort PaintRP;
  142.     struct Layer_Info *LInfo;
  143.     struct Layer *PaintLayer;
  144.     
  145.     struct MidiNode *midi;
  146.     struct MidiLink *link;
  147.     
  148.     UBYTE WTitle[80];
  149.     
  150.     APTR NotePool;
  151.     
  152.     BOOL GUIRefresh;
  153.     BOOL LinkRefresh;
  154.     
  155.     struct FileRequester *ImageFR;
  156.     struct FileRequester *MIDIFR;
  157.     struct ScreenModeRequester *ScreenModeRQ;
  158.     
  159.     ULONG TaskAlloc;
  160. };
  161.  
  162. #endif    /* FIREWORKS_H */
  163.