/*
 * iff.h - kludge to make audio2.c ARKM example to work
 *
 * BrunoCosta - 19 Feb 91 - 19 Feb 91
 *
 * (from jiff.h and IFFSound.c (Future Sound))
 */

#define MakeID(a,b,c,d) ((ULONG)(		\
        ((ULONG)(a)<<24) | ((ULONG)(b)<<16) |	\
        ((ULONG)(c)<<8) | (ULONG)(d)		\
	))

#define FORM MakeID('F', 'O', 'R', 'M')
#define ILBM MakeID('I', 'L', 'B', 'M')
#if 0
#define BMHD MakeID('B', 'M', 'H', 'D')
#define CMAP MakeID('C', 'M', 'A', 'P')
#define BODY MakeID('B', 'O', 'D', 'Y')
#define 8SVX MakeID('8', 'S', 'V', 'X')
#define GRAB MakeID('G', 'R', 'A', 'B')
#define DEST MakeID('D', 'E', 'S', 'T')
#define SPRT MakeID('S', 'P', 'R', 'T')
#define CAMG MakeID('C', 'A', 'M', 'G')
#define CRNG MakeID('C', 'R', 'N', 'G')
#define CCRT MakeID('C', 'C', 'R', 'T')
#endif

typedef struct {
  ULONG ckID;
  LONG ckSize;
} Chunk;

typedef LONG Fixed;

#define Unity 0x10000L
#define sCmpNone	0
#define sCmpFibDelta	1

typedef struct {
  ULONG	oneShotHiSamples,	/* # samples in the high octave 1-shot part */
        repeatHiSamples,	/* # samples in the high octave repeat part */
        samplesPerHiCycle;	/* # samples/cycle in high octave, else 0   */
  UWORD samplesPerSec;		/* data sampling rate */
  UBYTE ctOctave,		/* number of octaves of waveforms */
        sCompression;		/* data compression technique used */
  Fixed volume;			/* playback volume from 0 to Unity */
} Voice8Header;
