00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #include "intl.h"
00027 #include <stdlib.h>
00028 #include <string.h>
00029 #include <pthread.h>
00030
00031 #include "util.h"
00032 #include "speech.h"
00033 #include "globals.h"
00034
00035 #define DEFAULTMESSAGEBODYVOICE "`v2"
00036
00037 void speak_message(eb_account * remote,
00038 gchar * voice,
00039 gchar * message) {
00040
00041 char xbuff[1024];
00042 char mbuff[256];
00043
00044 if (do_no_sound_when_away && is_away) return;
00045
00046 strcpy(xbuff, message);
00047 strip_html(xbuff);
00048
00049 sprintf(mbuff, "%s says: ", remote->handle);
00050 say_strings(mbuff,
00051 (voice == NULL ? DEFAULTMESSAGEBODYVOICE : voice),
00052 xbuff);
00053 }
00054
00055 void say_strings(gchar *s1, gchar *s2, gchar *s3)
00056 {
00057 pid_t p = fork();
00058 if (p == 0) {
00059 execl(SpeechProgramFilename, SpeechProgramFilename,
00060 s1, s2, s3, NULL);
00061 }
00062 }