ESPEAK_API espeak_ERROR espeak_SetPunctuationList(const wchar_t *punctlist) {//================================================================ ENTER("espeak_SetPunctuationList"); // Set the list of punctuation which are spoken for "some". #ifdef USE_ASYNC espeak_ERROR a_error; if(synchronous_mode) { sync_espeak_SetPunctuationList(punctlist); return(EE_OK); } t_espeak_command* c = create_espeak_punctuation_list( punctlist); a_error = fifo_add_command(c); if (a_error != EE_OK) { delete_espeak_command(c); } return a_error; #else sync_espeak_SetPunctuationList(punctlist); return(EE_OK); #endif } // end of espeak_SetPunctuationList
ESPEAK_NG_API espeak_ng_STATUS espeak_ng_SetPunctuationList(const wchar_t *punctlist) { // Set the list of punctuation which are spoken for "some". #ifdef USE_ASYNC if (my_mode & ENOUTPUT_MODE_SYNCHRONOUS) { sync_espeak_SetPunctuationList(punctlist); return ENS_OK; } t_espeak_command *c = create_espeak_punctuation_list(punctlist); espeak_ng_STATUS status = fifo_add_command(c); if (status != ENS_OK) delete_espeak_command(c); return status; #else sync_espeak_SetPunctuationList(punctlist); return ENS_OK; #endif }
//< process_espeak_command void display_espeak_command( t_espeak_command* the_command) { ENTER("display_espeak_command"); #ifdef DEBUG_ENABLED if (the_command == NULL) { SHOW("display_espeak_command > command=%s\n","NULL"); return; } SHOW("display_espeak_command > state=%d\n",the_command->state); switch(the_command->type) { case ET_TEXT: { t_espeak_text* data = &(the_command->u.my_text); SHOW("display_espeak_command > (0x%x) uid=%d, TEXT=%s, user_data=0x%x\n", the_command, data->unique_identifier, (char*)data->text, (int)(data->user_data)); } break; case ET_MARK: { t_espeak_mark* data = &(the_command->u.my_mark); SHOW("display_espeak_command > (0x%x) uid=%d, MARK=%s, user_data=0x%x\n", the_command, data->unique_identifier, (char*)data->text, (int)(data->user_data)); } break; case ET_KEY: { const char* data = the_command->u.my_key.key_name; SHOW("display_espeak_command > (0x%x) KEY=%c\n", the_command, data); } break; case ET_TERMINATED_MSG: { t_espeak_terminated_msg* data = &(the_command->u.my_terminated_msg); SHOW("display_espeak_command > (0x%x) TERMINATED_MSG uid=%d, user_data=0x%x, state=%d\n", the_command, data->unique_identifier, data->user_data, the_command->state); } break; case ET_CHAR: { const wchar_t data = the_command->u.my_char.character; SHOW("display_espeak_command > (0x%x) CHAR=%c\n", the_command, (char)data); } break; case ET_PARAMETER: { t_espeak_parameter* data = &(the_command->u.my_param); SHOW("display_espeak_command > (0x%x) PARAMETER=%d, value=%d, relative=%d\n", the_command, data->parameter, data->value, data->relative); } break; case ET_PUNCTUATION_LIST: { const wchar_t* data = the_command->u.my_punctuation_list; sync_espeak_SetPunctuationList( data); SHOW("display_espeak_command > (0x%x) PUNCTLIST=%s\n", the_command, (char*)data); } break; case ET_VOICE_NAME: { const char* data = the_command->u.my_voice_name; SHOW("display_espeak_command > (0x%x) VOICE_NAME=%s\n", the_command, data); } break; case ET_VOICE_SPEC: { SHOW("display_espeak_command > (0x%x) VOICE_SPEC", the_command); } break; default: assert(0); break; } #endif }
//> //< process_espeak_command void process_espeak_command( t_espeak_command* the_command) { ENTER("process_espeak_command"); SHOW("command=0x%x\n", the_command); if (the_command == NULL) { return; } the_command->state = CS_PROCESSED; switch(the_command->type) { case ET_TEXT: { t_espeak_text* data = &(the_command->u.my_text); sync_espeak_Synth( data->unique_identifier, data->text, data->size, data->position, data->position_type, data->end_position, data->flags, data->user_data); } break; case ET_MARK: { t_espeak_mark* data = &(the_command->u.my_mark); sync_espeak_Synth_Mark( data->unique_identifier, data->text, data->size, data->index_mark, data->end_position, data->flags, data->user_data); } break; case ET_TERMINATED_MSG: { t_espeak_terminated_msg* data = &(the_command->u.my_terminated_msg); sync_espeak_terminated_msg( data->unique_identifier, data->user_data); } break; case ET_KEY: { const char* data = the_command->u.my_key.key_name; sync_espeak_Key(data); } break; case ET_CHAR: { const wchar_t data = the_command->u.my_char.character; sync_espeak_Char( data); } break; case ET_PARAMETER: { t_espeak_parameter* data = &(the_command->u.my_param); SetParameter( data->parameter, data->value, data->relative); } break; case ET_PUNCTUATION_LIST: { const wchar_t* data = the_command->u.my_punctuation_list; sync_espeak_SetPunctuationList( data); } break; case ET_VOICE_NAME: { const char* data = the_command->u.my_voice_name; SetVoiceByName( data); } break; case ET_VOICE_SPEC: { espeak_VOICE* data = &(the_command->u.my_voice_spec); SetVoiceByProperties(data); } break; default: assert(0); break; } }