| return 0; // finished the phoneme list | return 0; // finished the phoneme list | ||||
| } | } | ||||
| static int timer_on = 0; | |||||
| int SynthOnTimer() | int SynthOnTimer() | ||||
| { | { | ||||
| if (!timer_on) | |||||
| return WavegenCloseSound(); | |||||
| do { | do { | ||||
| if (WcmdqUsed() > 0) | if (WcmdqUsed() > 0) | ||||
| WavegenOpenSound(); | WavegenOpenSound(); | ||||
| if (Generate(phoneme_list, &n_phoneme_list, 1) == 0) | |||||
| SpeakNextClause(NULL, NULL, 1); | |||||
| if (Generate(phoneme_list, &n_phoneme_list, 1) == 0) { | |||||
| if (SpeakNextClause(NULL, NULL, 1) == 0) | |||||
| return WavegenCloseSound(); | |||||
| } | |||||
| } while (skipping_text); | } while (skipping_text); | ||||
| return 0; | return 0; | ||||
| if (control == 2) { | if (control == 2) { | ||||
| // stop speaking | // stop speaking | ||||
| timer_on = 0; | |||||
| p_text = NULL; | p_text = NULL; | ||||
| if (f_text != NULL) { | if (f_text != NULL) { | ||||
| fclose(f_text); | fclose(f_text); | ||||
| if ((f_in != NULL) || (text_in != NULL)) { | if ((f_in != NULL) || (text_in != NULL)) { | ||||
| f_text = f_in; | f_text = f_in; | ||||
| p_text = text_in; | p_text = text_in; | ||||
| timer_on = 1; | |||||
| } | } | ||||
| if ((f_text == NULL) && (p_text == NULL)) { | if ((f_text == NULL) && (p_text == NULL)) { | ||||
| skipping_text = 0; | skipping_text = 0; | ||||
| timer_on = 0; | |||||
| return 0; | return 0; | ||||
| } | } | ||||
| if ((f_text != NULL) && feof(f_text)) { | if ((f_text != NULL) && feof(f_text)) { | ||||
| timer_on = 0; | |||||
| fclose(f_text); | fclose(f_text); | ||||
| f_text = NULL; | f_text = NULL; | ||||
| return 0; | return 0; |