ESPEAK_API espeak_ERROR espeak_Key(const char *key) {//================================================ ENTER("espeak_Key"); // symbolic name, symbolicname_character - is there a system resource of symbolicnames per language if(f_logespeak) { fprintf(f_logespeak,"\nKEY %s\n",key); } espeak_ERROR a_error = EE_OK; if(synchronous_mode) { sync_espeak_Key(key); return(EE_OK); } #ifdef USE_ASYNC t_espeak_command* c = create_espeak_key( key, NULL); a_error = fifo_add_command(c); if (a_error != EE_OK) { delete_espeak_command(c); } #endif return a_error; }
ESPEAK_NG_API espeak_ng_STATUS espeak_ng_SpeakKeyName(const char *key_name) { // symbolic name, symbolicname_character - is there a system resource of symbolicnames per language if (my_mode & ENOUTPUT_MODE_SYNCHRONOUS) return sync_espeak_Key(key_name); #ifdef USE_ASYNC t_espeak_command *c = create_espeak_key(key_name, NULL); espeak_ng_STATUS status = fifo_add_command(c); if (status != ENS_OK) delete_espeak_command(c); return status; #else return sync_espeak_Key(key_name); #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; } }