ESPEAK_API espeak_ERROR espeak_Terminate(void) {//=========================================== ENTER("espeak_Terminate"); #ifdef USE_ASYNC fifo_stop(); fifo_terminate(); event_terminate(); if(my_mode == AUDIO_OUTPUT_PLAYBACK) { wave_close(my_audio); wave_terminate(); out_samplerate = 0; } #endif Free(event_list); event_list = NULL; Free(outbuf); outbuf = NULL; FreePhData(); FreeVoiceList(); if(f_logespeak) { fclose(f_logespeak); f_logespeak = NULL; } return EE_OK; } // end of espeak_Terminate
ESPEAK_API espeak_ERROR espeak_Cancel(void) {//=============================== #ifdef USE_ASYNC ENTER("espeak_Cancel"); fifo_stop(); event_clear_all(); if(my_mode == AUDIO_OUTPUT_PLAYBACK) { wave_close(my_audio); } SHOW_TIME("espeak_Cancel > LEAVE"); #endif embedded_value[EMBED_T] = 0; // reset echo for pronunciation announcements return EE_OK; } // end of espeak_Cancel
ESPEAK_NG_API espeak_ng_STATUS espeak_ng_Cancel(void) { #ifdef USE_ASYNC fifo_stop(); event_clear_all(); #endif #ifdef HAVE_PCAUDIOLIB_AUDIO_H if ((my_mode & ENOUTPUT_MODE_SPEAK_AUDIO) == ENOUTPUT_MODE_SPEAK_AUDIO) audio_object_flush(my_audio); #endif embedded_value[EMBED_T] = 0; // reset echo for pronunciation announcements for (int i = 0; i < N_SPEECH_PARAM; i++) SetParameter(i, saved_parameters[i], 0); return ENS_OK; }
ESPEAK_NG_API espeak_ng_STATUS espeak_ng_Terminate(void) { #ifdef USE_ASYNC fifo_stop(); fifo_terminate(); event_terminate(); #endif if ((my_mode & ENOUTPUT_MODE_SPEAK_AUDIO) == ENOUTPUT_MODE_SPEAK_AUDIO) { #ifdef HAVE_PCAUDIOLIB_AUDIO_H audio_object_close(my_audio); audio_object_destroy(my_audio); my_audio = NULL; #endif out_samplerate = 0; } free(event_list); event_list = NULL; free(outbuf); outbuf = NULL; FreePhData(); FreeVoiceList(); DeleteTranslator(translator); translator = NULL; if (p_decoder != NULL) { destroy_text_decoder(p_decoder); p_decoder = NULL; } return ENS_OK; }