/* sounds.h - karl's meta-sample structure that defines stuff about sounds */

/* define the IOB array entries in sound structures */

#define MAX_SOUND_IOBS 5

#define ALLOC_IOB 0
#define PLAY_IOB 1
#define STOP_IOB 2
#define PERVOL_IOB 3
#define FREE_IOB 4

/* define the sound structure:  this is the master structure, containing
 * pointers to name, the sample data, the IOBs, and a message port */

/* note that cycles of zero is repeat-until-aborted */

typedef struct
{
	char *name;
	Sample *samplep;
	int cycles, volume, flags, precedence, detune;
	struct IOAudio *IOBs[MAX_SOUND_IOBS];
	struct MsgPort *port;
} Sound;

/* definitions of sound port bits */

#define LEFT0 1
#define RIGHT0 2
#define RIGHT1 4
#define LEFT1 8

#define LEFTSIDE (LEFT0 | LEFT1)
#define RIGHTSIDE (RIGHT0 | RIGHT1)

/* flag bits */

#define PLAYING 1		/* controlled by software */

#define LEFT 2			/* user parameter */
#define RIGHT 0			/* placeholder user parameter */

#define EITHER 4	/* user parameter */
