| unsigned int *unique_identifier, | unsigned int *unique_identifier, | ||||
| void *user_data); | void *user_data); | ||||
| ESPEAK_NG_API espeak_ng_STATUS | |||||
| espeak_ng_SynthesizeMark(const void *text, | |||||
| size_t size, | |||||
| const char *index_mark, | |||||
| unsigned int end_position, | |||||
| unsigned int flags, | |||||
| unsigned int *unique_identifier, | |||||
| void *user_data); | |||||
| ESPEAK_NG_API espeak_ng_STATUS | ESPEAK_NG_API espeak_ng_STATUS | ||||
| espeak_ng_SpeakKeyName(const char *key_name); | espeak_ng_SpeakKeyName(const char *key_name); | ||||
| return status_to_espeak_error(espeak_ng_Synthesize(text, size, position, position_type, end_position, flags, unique_identifier, user_data)); | return status_to_espeak_error(espeak_ng_Synthesize(text, size, position, position_type, end_position, flags, unique_identifier, user_data)); | ||||
| } | } | ||||
| ESPEAK_API espeak_ERROR espeak_Synth_Mark(const void *text, size_t size, | |||||
| const char *index_mark, | |||||
| unsigned int end_position, | |||||
| unsigned int flags, | |||||
| unsigned int *unique_identifier, | |||||
| void *user_data) | |||||
| { | |||||
| return status_to_espeak_error(espeak_ng_SynthesizeMark(text, size, index_mark, end_position, flags, unique_identifier, user_data)); | |||||
| } | |||||
| ESPEAK_API espeak_ERROR espeak_Key(const char *key_name) | ESPEAK_API espeak_ERROR espeak_Key(const char *key_name) | ||||
| { | { | ||||
| return status_to_espeak_error(espeak_ng_SpeakKeyName(key_name)); | return status_to_espeak_error(espeak_ng_SpeakKeyName(key_name)); |
| espeak_ng_STATUS sync_espeak_Synth(unsigned int unique_identifier, const void *text, | espeak_ng_STATUS sync_espeak_Synth(unsigned int unique_identifier, const void *text, | ||||
| unsigned int position, espeak_POSITION_TYPE position_type, | unsigned int position, espeak_POSITION_TYPE position_type, | ||||
| unsigned int end_position, unsigned int flags, void *user_data); | unsigned int end_position, unsigned int flags, void *user_data); | ||||
| espeak_ERROR sync_espeak_Synth_Mark(unsigned int unique_identifier, const void *text, | |||||
| const char *index_mark, unsigned int end_position, | |||||
| unsigned int flags, void *user_data); | |||||
| espeak_ng_STATUS sync_espeak_Synth_Mark(unsigned int unique_identifier, const void *text, | |||||
| const char *index_mark, unsigned int end_position, | |||||
| unsigned int flags, void *user_data); | |||||
| espeak_ng_STATUS sync_espeak_Key(const char *key); | espeak_ng_STATUS sync_espeak_Key(const char *key); | ||||
| espeak_ng_STATUS sync_espeak_Char(wchar_t character); | espeak_ng_STATUS sync_espeak_Char(wchar_t character); | ||||
| void sync_espeak_SetPunctuationList(const wchar_t *punctlist); | void sync_espeak_SetPunctuationList(const wchar_t *punctlist); |
| return aStatus; | return aStatus; | ||||
| } | } | ||||
| espeak_ERROR sync_espeak_Synth_Mark(unsigned int unique_identifier, const void *text, | |||||
| const char *index_mark, unsigned int end_position, | |||||
| unsigned int flags, void *user_data) | |||||
| espeak_ng_STATUS sync_espeak_Synth_Mark(unsigned int unique_identifier, const void *text, | |||||
| const char *index_mark, unsigned int end_position, | |||||
| unsigned int flags, void *user_data) | |||||
| { | { | ||||
| InitText(flags); | InitText(flags); | ||||
| end_character_position = end_position; | end_character_position = end_position; | ||||
| return status_to_espeak_error(Synthesize(unique_identifier, text, flags | espeakSSML)); | |||||
| return Synthesize(unique_identifier, text, flags | espeakSSML); | |||||
| } | } | ||||
| espeak_ng_STATUS sync_espeak_Key(const char *key) | espeak_ng_STATUS sync_espeak_Key(const char *key) | ||||
| #endif | #endif | ||||
| } | } | ||||
| ESPEAK_API espeak_ERROR espeak_Synth_Mark(const void *text, size_t size, | |||||
| const char *index_mark, | |||||
| unsigned int end_position, | |||||
| unsigned int flags, | |||||
| unsigned int *unique_identifier, | |||||
| void *user_data) | |||||
| ESPEAK_NG_API espeak_ng_STATUS | |||||
| espeak_ng_SynthesizeMark(const void *text, | |||||
| size_t size, | |||||
| const char *index_mark, | |||||
| unsigned int end_position, | |||||
| unsigned int flags, | |||||
| unsigned int *unique_identifier, | |||||
| void *user_data) | |||||
| { | { | ||||
| (void)size; // unused | |||||
| (void)size; // unused in non-async modes | |||||
| espeak_ERROR a_error = EE_OK; | |||||
| static unsigned int temp_identifier; | static unsigned int temp_identifier; | ||||
| if (unique_identifier == NULL) | if (unique_identifier == NULL) | ||||
| // Try to add these 2 commands (single transaction) | // Try to add these 2 commands (single transaction) | ||||
| if (c1 && c2) { | if (c1 && c2) { | ||||
| a_error = status_to_espeak_error(fifo_add_commands(c1, c2)); | |||||
| if (a_error != EE_OK) { | |||||
| espeak_ng_STATUS status = fifo_add_commands(c1, c2); | |||||
| if (status != ENS_OK) { | |||||
| delete_espeak_command(c1); | delete_espeak_command(c1); | ||||
| delete_espeak_command(c2); | delete_espeak_command(c2); | ||||
| c1 = c2 = NULL; | |||||
| } | } | ||||
| } else { | |||||
| delete_espeak_command(c1); | |||||
| delete_espeak_command(c2); | |||||
| return status; | |||||
| } | } | ||||
| delete_espeak_command(c1); | |||||
| delete_espeak_command(c2); | |||||
| return ENOMEM; | |||||
| #else | |||||
| return sync_espeak_Synth_Mark(0, text, index_mark, end_position, flags, user_data); | |||||
| #endif | #endif | ||||
| return a_error; | |||||
| } | } | ||||
| ESPEAK_NG_API espeak_ng_STATUS espeak_ng_SpeakKeyName(const char *key_name) | ESPEAK_NG_API espeak_ng_STATUS espeak_ng_SpeakKeyName(const char *key_name) |