return ENS_OK; | return ENS_OK; | ||||
} | } | ||||
espeak_ng_STATUS | |||||
text_decoder_decode_string_multibyte(espeak_ng_TEXT_DECODER *decoder, | |||||
const void *input, | |||||
espeak_ng_ENCODING encoding, | |||||
int flags) | |||||
{ | |||||
switch (flags & 7) | |||||
{ | |||||
case espeakCHARS_WCHAR: | |||||
return text_decoder_decode_wstring(decoder, (const wchar_t *)input, -1); | |||||
case espeakCHARS_AUTO: | |||||
return text_decoder_decode_string_auto(decoder, (const char *)input, -1, encoding); | |||||
case espeakCHARS_UTF8: | |||||
return text_decoder_decode_string(decoder, (const char *)input, -1, ESPEAKNG_ENCODING_UTF_8); | |||||
case espeakCHARS_8BIT: | |||||
return text_decoder_decode_string(decoder, (const char *)input, -1, encoding); | |||||
case espeakCHARS_16BIT: | |||||
return text_decoder_decode_string(decoder, (const char *)input, -1, ESPEAKNG_ENCODING_ISO_10646_UCS_2); | |||||
default: | |||||
return ENS_UNKNOWN_TEXT_ENCODING; | |||||
} | |||||
} | |||||
int | int | ||||
text_decoder_eof(espeak_ng_TEXT_DECODER *decoder) | text_decoder_eof(espeak_ng_TEXT_DECODER *decoder) | ||||
{ | { |
const wchar_t *string, | const wchar_t *string, | ||||
int length); | int length); | ||||
espeak_ng_STATUS | |||||
text_decoder_decode_string_multibyte(espeak_ng_TEXT_DECODER *decoder, | |||||
const void *input, | |||||
espeak_ng_ENCODING encoding, | |||||
int flags); | |||||
int | int | ||||
text_decoder_eof(espeak_ng_TEXT_DECODER *decoder); | text_decoder_eof(espeak_ng_TEXT_DECODER *decoder); | ||||
if (p_decoder == NULL) | if (p_decoder == NULL) | ||||
p_decoder = create_text_decoder(); | p_decoder = create_text_decoder(); | ||||
switch (option_multibyte) | |||||
{ | |||||
case espeakCHARS_WCHAR: | |||||
text_decoder_decode_wstring(p_decoder, (const wchar_t *)vp_input, -1); | |||||
break; | |||||
case espeakCHARS_AUTO: | |||||
text_decoder_decode_string_auto(p_decoder, (const char *)vp_input, -1, tr->encoding); | |||||
break; | |||||
case espeakCHARS_UTF8: | |||||
text_decoder_decode_string(p_decoder, (const char *)vp_input, -1, ESPEAKNG_ENCODING_UTF_8); | |||||
break; | |||||
case espeakCHARS_8BIT: | |||||
text_decoder_decode_string(p_decoder, (const char *)vp_input, -1, tr->encoding); | |||||
break; | |||||
case espeakCHARS_16BIT: | |||||
text_decoder_decode_string(p_decoder, (const char *)vp_input, -1, ESPEAKNG_ENCODING_ISO_10646_UCS_2); | |||||
break; | |||||
default: | |||||
return NULL; // unknown multibyte option value | |||||
} | |||||
if (text_decoder_decode_string_multibyte(p_decoder, vp_input, tr->encoding, option_multibyte) != ENS_OK) | |||||
return NULL; | |||||
embedded_ix = 0; | embedded_ix = 0; | ||||
embedded_read = 0; | embedded_read = 0; |