Fix setting the default voice from espeak_SetVoiceByProperties.

This commit is contained in:
Reece H. Dunn
2017-08-19 12:08:39 +01:00
parent 16bea7fd0f
commit 882c2651e1
4 changed files with 12 additions and 10 deletions
+1 -1
View File
@@ -598,7 +598,7 @@ int main(int argc, char **argv)
}
if (voicename[0] == 0)
strcpy(voicename, "en");
strcpy(voicename, ESPEAKNG_DEFAULT_VOICE);
result = espeak_ng_SetVoiceByName(voicename);
if (result != ENS_OK) {
+2
View File
@@ -36,6 +36,8 @@ extern "C"
#define ESPEAK_NG_API
#endif
#define ESPEAKNG_DEFAULT_VOICE "en"
typedef enum {
ENS_GROUP_MASK = 0x70000000,
ENS_GROUP_ERRNO = 0x00000000, /* Values 0-255 map to errno error codes. */
+3 -3
View File
@@ -544,7 +544,7 @@ voice_t *LoadVoice(const char *vname, int control)
return NULL;
} else {
if (voicename[0] == 0)
strcpy(voicename, "en");
strcpy(voicename, ESPEAKNG_DEFAULT_VOICE);
sprintf(path_voices, "%s%cvoices%c", path_home, PATHSEP, PATHSEP);
sprintf(buf, "%s%s", path_voices, voicename); // look in the main voices directory
@@ -1294,7 +1294,7 @@ char const *SelectVoice(espeak_VOICE *voice_select, int *found)
if (voice_select2.name == NULL) {
if ((voice_select2.name = voice_select2.identifier) == NULL)
voice_select2.name = "default";
voice_select2.name = ESPEAKNG_DEFAULT_VOICE;
}
strncpy0(buf, voice_select2.name, sizeof(buf));
@@ -1321,7 +1321,7 @@ char const *SelectVoice(espeak_VOICE *voice_select, int *found)
if (nv == 0) {
// no matching voice, choose the default
*found = 0;
if ((voices[0] = SelectVoiceByName(voices_list, "default")) != NULL)
if ((voices[0] = SelectVoiceByName(voices_list, ESPEAKNG_DEFAULT_VOICE)) != NULL)
nv = 1;
}
+6 -6
View File
@@ -333,18 +333,18 @@ test_espeak_set_voice_by_properties_empty()
assert(espeak_SetVoiceByProperties(&properties) == EE_OK);
assert(translator != NULL);
assert(strcmp(translator->dictionary_name, "af") == 0);
assert(strcmp(translator->dictionary_name, "en") == 0);
assert(p_decoder == NULL);
const char *test = "One two three.";
assert(espeak_Synth(test, strlen(test)+1, 0, POS_CHARACTER, 0, espeakCHARS_AUTO, NULL, NULL) == EE_OK);
assert(translator != NULL);
assert(strcmp(translator->dictionary_name, "af") == 0);
assert(strcmp(translator->dictionary_name, "en") == 0);
assert(p_decoder != NULL);
assert(espeak_Synchronize() == EE_OK);
assert(translator != NULL);
assert(strcmp(translator->dictionary_name, "af") == 0);
assert(strcmp(translator->dictionary_name, "en") == 0);
assert(p_decoder != NULL);
assert(espeak_Terminate() == EE_OK);
@@ -373,18 +373,18 @@ test_espeak_set_voice_by_properties_blank_language()
assert(espeak_SetVoiceByProperties(&properties) == EE_OK);
assert(translator != NULL);
assert(strcmp(translator->dictionary_name, "af") == 0);
assert(strcmp(translator->dictionary_name, "en") == 0);
assert(p_decoder == NULL);
const char *test = "One two three.";
assert(espeak_Synth(test, strlen(test)+1, 0, POS_CHARACTER, 0, espeakCHARS_AUTO, NULL, NULL) == EE_OK);
assert(translator != NULL);
assert(strcmp(translator->dictionary_name, "af") == 0);
assert(strcmp(translator->dictionary_name, "en") == 0);
assert(p_decoder != NULL);
assert(espeak_Synchronize() == EE_OK);
assert(translator != NULL);
assert(strcmp(translator->dictionary_name, "af") == 0);
assert(strcmp(translator->dictionary_name, "en") == 0);
assert(p_decoder != NULL);
assert(espeak_Terminate() == EE_OK);