home *** CD-ROM | disk | FTP | other *** search
/ Club Amiga de Montreal - CAM / CAM_CD_1.iso / files / 066.lha / MidiDev / midibase.h < prev    next >
C/C++ Source or Header  |  1986-11-20  |  1KB  |  59 lines

  1. #ifndef MIDI_MIDIBASE_H
  2. #define MIDI_MIDIBASE_H
  3.  
  4. /* midi.library MidiBase & related definitions (not for the casual midi user) */
  5.  
  6. #ifndef EXEC_LIBRARIES_H
  7.  #include <exec/libraries.h>
  8. #endif
  9.  
  10. #ifndef EXEC_SEMAPHORES_H
  11.  #include <exec/semaphores.h>
  12. #endif
  13.  
  14. #ifndef LIBRARIES_DOS_H
  15.  #include <libraries/dos.h>
  16. #endif
  17.  
  18. #ifndef MIDI_MIDI_H
  19.  #include <midi/midi.h>
  20. #endif
  21.  
  22.  
  23. struct MidiBase {
  24.     struct Library libnode;
  25.     struct List SourceList,DestList;
  26.     struct SignalSemaphore ListSemaphore;   /* blocks Source/Dest list management */
  27.     struct SignalSemaphore RouteSemaphore;  /* blocks RPList management & msg routing */
  28.     ULONG SegList;
  29.     APTR  SysBase,DosBase;
  30. };
  31.  
  32. struct MTaskInfo {
  33.     /* set by caller */
  34.     char *Name;
  35.     WORD Pri;
  36.     void (*Entry)();
  37.     UWORD Stack;
  38.  
  39.     UWORD Sources;
  40.     struct MNodeInfo *SourceList;
  41.     UWORD Dests;
  42.     struct MNodeInfo *DestList;
  43.  
  44.     /* set by midi.library */
  45.     struct SignalSemaphore Semaphore;    /* locks task */
  46.  
  47.     UWORD UsageCount;            /* task's usage count */
  48.     struct MsgPort *TaskPort;        /* task's MsgPort */
  49.     BPTR Segment;            /* task's Segment */
  50. };
  51.  
  52. struct MNodeInfo {
  53.     char *Name;
  54.     struct Image *Image;
  55.     APTR Node;
  56. };
  57.  
  58. #endif
  59.