/* this program illustrates the use of eSpeak for testing robot programs */

/* Compile this program with the line
    gcc -leSpeakPackage -lMyroC -o scribbler-speech-demo-1 scribbler-speech-demo-1.c
 */

#include "eSpeakPackage.h"
#include "MyroC.h"
#include <stdio.h>

int main ()
{

  printf ("demonstration of utilizing speech to help robot testing\n");

  /* set up environment */
  printf ("setting up both eSpeak and the robot\n");
  eSpeakConnect ();
  eSpeakTalk ("eSpeak is now initialized --- gender of speaker random\n");
  eSpeakTalk ("establishing a connection to the robot");
  rConnect ("/dev/rfcomm0");

  /* change voice gender */
  eSpeakSetGender ("female");
  eSpeakTalk ("gender of speaker now female");

  /* test several commands */
  printf ("testing the robot tone generator\n");
  eSpeakTalk ("robot to play 4 notes of succesively higher pitches");
  rBeep (0.5, 783);   /* G5 */
  rBeep (0.3, 987);   /* B5 */
  rBeep (0.6, 1174);  /* D6 */
  rBeep (1.0, 1568);  /* G6 */

  /* change voice gender */
  eSpeakSetGender ("male");
  eSpeakTalk ("gender of speaker now male");

  /* demonstrating a few robot moves */
  printf ("testing several robot movements\n");
  eSpeakTalk ("move forward");
  rForward (0.5, 1.0);
  eSpeakTalk ("move backward");
  rBackward (0.5, 1.0);
  eSpeakTalk ("turn right");
  rTurnRight (0.5, 1.0);
  eSpeakTalk ("turn back");
  rTurnLeft (0.5, 1.0);
    
  /* finish up */
  eSpeakTalk ("finish up");
  eSpeakDisconnect ();

  printf ("test completed\n");

  return 0;
}
