/* public_play.h */

/* the part of the play structure which is known
 * to everybody
 */
 
/* $Author: Espie $
 * $Date: 91/05/12 16:00:00 $
 * $Revision: 1.4 $
 * $Log:	public_play.h,v $
 * Revision 1.4  91/05/12  16:00:00  Espie
 * Suppressed some unnecessary fields.
 * 
 * Revision 1.3  91/05/09  17:38:09  Espie
 * Added mode (speed control)
 * 
 * Revision 1.2  91/05/06  15:14:43  Espie
 * *** empty log message ***
 * 
 * Revision 1.1  91/05/05  19:06:24  Espie
 * Initial revision
 * 
 *
 */
 
struct pub_play
		{
			/* this is the main volume, should be in range 0-256 */
		UWORD volume;
			/* get loaded ONLY with the right command */
		UBYTE pattern, position;
		BOOL oneshot;
		ULONG command;
		BOOL resume;
		
		ULONG signal;
		struct Task *task;
		ULONG on_signal, signaled;
		struct song_info *info;
		struct sample_info **sample;
		
		UBYTE speed, finespeed;
		BYTE transpose;
			/* compatibility mode for speed */
		BYTE mode;
		ULONG timebase, effectbase;
		
			/* need to know WHAT I'm trying to latch with... */
		int cpu, sleep;
		};


#define NONE 0
#define NEWPOS 1
#define ONESHOT 2
#define AUTO_RESTART 3
#define STOP 4
#define RELOAD_INSTRUMENTS 5

/* oflags */

#define ENDED 1
#define SKIPPED 2
#define UNKNOWN 4

/* events to signal */

#define ON_END 1
#define ON_PATTERN 2
#define ON_PROBLEM 4
#define ON_SPEED_CHANGE 8
#define ON_COMMAND 16
#define ON_BLIP 32

/* states */

#define NORMAL_STATE 0
#define RESTART_STATE 1	/* for restarting audio (new note) */
#define REPLAY_STATE 2		/* for setting replay part */
