/*
**  $VER: sound.e V0.7B
**
**  games library sound structures
**
**  (C) Copyright 1996-1997 DreamWorld Productions.
**      All Rights Reserved
*/

OPT MODULE
OPT EXPORT

CONST SMVERSION = 1

OBJECT sound
  id        :INT    -> ID_SOUND
  version   :INT    -> Version
  stats     :LONG   -> Reserved.
  channel   :INT    -> Channel, 0-3 
  priority  :INT    -> Priority, 0-127 
  header    :LONG   -> Ptr to sample info header, if any 
  data      :LONG   -> Address of sample data 
  length    :LONG   -> Length of sample data in WORDS 
  octave    :INT    -> Octave/Note setting 
  volume    :INT    -> Volume of sample (1 - 100) 
  attrib    :LONG   -> Sound attributes.
  file      :LONG   -> Where the sound comes from.
  frequency :LONG   -> Frequency of sampled sound.
ENDOBJECT

CONST SA_CHANNEL =   $40000000+8,
      SA_PRIORITY =  $40000000+10,
      SA_HEADER =    $C0000000+12,
      SA_DATA =      $C0000000+16,
      SA_LENGTH =    $80000000+20,
      SA_OCTAVE =    $40000000+24,
      SA_VOLUME =    $40000000+26,
      SA_ATTRIB =    $80000000+28,
      SA_FILE =      $C0000000+32,
      SA_FREQUENCY = $80000000+36

-> Flags for SAM_Channel 

CONST ALLCHANNELS = -1, -> Search for first available channel 
      CHANNEL1    = 0,  -> Channel 1 (left speaker) 
      CHANNEL2    = 1,  -> Channel 2 (right speaker) 
      CHANNEL3    = 2,  -> Channel 3 (left speaker) 
      CHANNEL4    = 3   -> Channel 4 (right speaker) 

-> Flags for SAM_Attrib 

CONST SBIT8   = $00000000,  -> Sound data is 8 bit (set if raw)
      SBIT16  = $00000001,  -> Sound data is 16 bit (set if raw)
      SMODVOL = $00000002,  -> Modulate volume with next channel 
      SMODPER = $00000004,  -> Modulate period with next channel 
      SREPEAT = $00000008,  -> Repeat sample forever 
      SEMPTY  = $00000010,  -> Play only if channel is empty
      SLEFT   = $00000020,  -> Left speaker preferred.
      SRIGHT  = $00000040,  -> Right speaker preferred.
      SFORCE  = $00000080   -> Enforce use of selected speaker.

-> Octave definitions for Sound.Octave.  An 'S' at the end of an octave
-> definition indicates a sharp note.

CONST OCT_G0S = 0,
 OCT_G0  = 2,
 OCT_F0S = 4,
 OCT_F0  = 6,
 OCT_E0  = 8,
 OCT_D0S = 10,
 OCT_D0  = 12,
 OCT_C0S = 14,
 OCT_C0  = 16,
 OCT_B0  = 18,
 OCT_A0S = 20,
 OCT_A0  = 22,

 OCT_G1S = 24,
 OCT_G1  = 26,
 OCT_F1S = 28,
 OCT_F1  = 30,
 OCT_E1  = 32,
 OCT_D1S = 34,
 OCT_D1  = 36,
 OCT_C1S = 38,
 OCT_C1  = 40,
 OCT_B1  = 42,
 OCT_A1S = 44,
 OCT_A1  = 46,

 OCT_G2S = 48,
 OCT_G2  = 50,
 OCT_F2S = 52,
 OCT_F2  = 54,
 OCT_E2  = 56,
 OCT_D2S = 58,
 OCT_D2  = 60,
 OCT_C2S = 62,
 OCT_C2  = 64,
 OCT_B2  = 66,
 OCT_A2S = 68,
 OCT_A2  = 70,

 OCT_G3S = 72,
 OCT_G3  = 74,
 OCT_F3S = 76,
 OCT_F3  = 78,
 OCT_E3  = 80,
 OCT_D3S = 82,
 OCT_D3  = 84,
 OCT_C3S = 86,
 OCT_C3  = 88,
 OCT_B3  = 90,
 OCT_A3S = 92,
 OCT_A3  = 94,

 OCT_G4S = 96,
 OCT_G4  = 98,
 OCT_F4S = 100,
 OCT_F4  = 102,
 OCT_E4  = 104,
 OCT_D4S = 106,
 OCT_D4  = 108,
 OCT_C4S = 110,
 OCT_C4  = 112,
 OCT_B4  = 114,
 OCT_A4S = 116,
 OCT_A4  = 118,

 OCT_G5S = 120,
 OCT_G5  = 122,
 OCT_F5S = 124,
 OCT_F5  = 126,
 OCT_E5  = 128,
 OCT_D5S = 130,
 OCT_D5  = 132,
 OCT_C5S = 134,
 OCT_C5  = 136,
 OCT_B5  = 138,
 OCT_A5S = 140,
 OCT_A5  = 142,

 OCT_G6S = 144,
 OCT_G6  = 146,
 OCT_F6S = 148,
 OCT_F6  = 150,
 OCT_E6  = 152,
 OCT_D6S = 154,
 OCT_D6  = 156,
 OCT_C6S = 158,
 OCT_C6  = 160,
 OCT_B6  = 162,
 OCT_A6S = 164,
 OCT_A6  = 166,

 OCT_G7S = 168,
 OCT_G7  = 170,
 OCT_F7S = 172,
 OCT_F7  = 174,
 OCT_E7  = 176,
 OCT_D7S = 178,
 OCT_D7  = 180,
 OCT_C7S = 182,
 OCT_C7  = 184,
 OCT_B7  = 186,
 OCT_A7S = 188

