2 #include <simgear/compiler.h>
8 #include <netinet/in.h>
10 #include <sys/ioctl.h>
11 #include <sys/socket.h>
12 #include <arpa/inet.h>
22 #define ATC_SERVER_ADDRESS "192.168.2.15" // adddress of machine running festival server
28 struct sockaddr_in atc_serv_addr, atc_cli_add;
32 bool FGVoice::send_transcript( string trans, string refname, short repeat )
37 case 0: msg = "S " + refname + ">" + trans;
39 case 1: msg = "R " + refname + ">" + trans;
41 case 2: msg = "X " + refname;
44 // strip out some characters
45 for(unsigned int i = 0; i < msg.length(); ++i) {
46 if((msg.substr(i,1) == "_") || (msg.substr(i,1) == "/")) {
51 int len = msg.length();
52 if (sendto(atc_sockfd, (char *) msg.c_str(), len, 0, (struct sockaddr *) &atc_serv_addr, servlen ) != len) {
53 cout << "network write failed for " << len << " chars" << endl;
56 printf("Transmit: %s of %d chars\n", msg.c_str(), len );
62 string mesg = "Welcome to the FlightGear voice synthesizer";
63 string welcome = "welcome ";
64 // Init the network stuff here
65 printf( "FGVoice created. Connecting to atc sim\n");
66 servlen = sizeof( atc_serv_addr );
67 bzero((char *) &atc_serv_addr, servlen);
68 atc_serv_addr.sin_family = AF_INET;
69 atc_serv_addr.sin_addr.s_addr = inet_addr(ATC_SERVER_ADDRESS);
70 atc_serv_addr.sin_port = htons(7100);
72 if ((atc_sockfd = socket(AF_INET, SOCK_DGRAM, 0)) < 0)
74 printf("Failed to obtain a socket\n");
77 else send_transcript( mesg, welcome, 0 );