(* $M- *)
DEFINITION MODULE Narrator;

FROM SYSTEM IMPORT
 ADDRESS,BYTE;
FROM Exec IMPORT
 IOStdReq,UByte;

CONST
 narratorName="narrator.device";
 noMem=-2;
 noAudLib=-3;
 makeBad=-4;
 unitErr=-5;
 cantAlloc=-6;
 unimpl=-7;
 noWrite=-8;
 expunged=-9;
 phonErr=-20;
 rateErr=-21;
 pitchErr=-22;
 sexErr=-23;
 modeErr=-24;
 freqErr=-25;
 volErr=-26;

CONST
 male=0;
 female=1;
 natural=0;
 robotic=1;
 defPitch=110;
 defRate=150;
 defVol=64;
 defFreq=22200;
 defSex=male;
 defMode=natural;
 minRate=40;
 maxRate=400;
 minPitch=65;
 maxPitch=320;
 minFreq=5000;
 maxFreq=28000;
 minVol=0;
 maxVol=64;

TYPE
 IONarrator=RECORD
  message:IOStdReq;
  rate:CARDINAL;
  pitch:CARDINAL;
  mode:CARDINAL;
  sex:CARDINAL;
  chMasks:ADDRESS;
  nmMasks:CARDINAL;
  volume:CARDINAL;
  sampFreq:CARDINAL;
  mouths:UByte;
  chanMask:BYTE;
  numChan:BYTE;
  pad:BYTE;
 END;
 IONarratorPtr=POINTER TO IONarrator;
 Mouth=RECORD
  voice:IONarrator;
  width:UByte;
  height:UByte;
  shape:BYTE;
  pad:BYTE;
 END;
 MouthPtr=POINTER TO Mouth;

END Narrator.
