home *** CD-ROM | disk | FTP | other *** search
/ Club Amiga de Montreal - CAM / CAM_CD_1.iso / files / 348.lha / chatterbox_v1.0 / sources / channels.h < prev    next >
Text File  |  1990-02-14  |  1KB  |  48 lines

  1. /* channels.h - karl's smus structure that defines stuff about channels */
  2.  
  3. /* define the IOB array entries in sound structures */
  4.  
  5. #define MAX_CHANNELS 4
  6.  
  7. #define MAX_CHANNEL_IOBS 7
  8.  
  9. #define ALLOC_IOB 0        /* Use this IOB when allocating a channel */
  10. #define ONESHOT_IOB 1    /* Used for oneshot portion of musical notes */
  11. #define LOOP_IOB 2        /* Use to play the looped part of the sound */
  12. #define STOP_IOB 3        /* Use this IOB to stop playing the sound */
  13. #define PERVOL_IOB 4    /* Use to change a playing sound's period & volume */
  14. #define PRECEDENCE_IOB 5    /* Use to change a playing sound's precedence */
  15. #define FREE_IOB 6        /* Use to release the allocated channel */
  16.  
  17. typedef struct ChannelStruct
  18. {
  19.     int flags;
  20.     struct SMUS_IOAudio
  21.     {
  22.         struct IOAudio smusIOB;
  23.         struct ChannelStruct *channelp;
  24.     } *IOBs[MAX_CHANNEL_IOBS];
  25.     Sample *samptr;
  26. } Channel;
  27.  
  28. /* definitions of Amiga's sound port bits */
  29.  
  30. #define LEFT0 1
  31. #define RIGHT0 2
  32. #define RIGHT1 4
  33. #define LEFT1 8
  34. #define LEFTSIDE (LEFT0 | LEFT1)
  35. #define RIGHTSIDE (RIGHT0 | RIGHT1)
  36.  
  37. /* flag bits for Track.flags */
  38.  
  39. #define SHOT_PLAYING 1
  40. #define LOOP_PLAYING 2
  41. #define PRECEDENCE_QUEUED 4
  42. #define LEFT 8            /* user parameter, which channel? */
  43. #define RIGHT 0            /* placeholder user parameter, opposite of LEFT */
  44. #define EITHER 16        /* user parameter, don't care which channel */
  45.  
  46. /* end of channels.h */
  47.  
  48.