Browse Source

Fix setting the default voice from espeak_SetVoiceByProperties.

master
Reece H. Dunn 8 years ago
parent
commit
882c2651e1
4 changed files with 12 additions and 10 deletions
  1. 1
    1
      src/espeak-ng.c
  2. 2
    0
      src/include/espeak-ng/espeak_ng.h
  3. 3
    3
      src/libespeak-ng/voices.c
  4. 6
    6
      tests/api.c

+ 1
- 1
src/espeak-ng.c 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
- 0
src/include/espeak-ng/espeak_ng.h 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
src/libespeak-ng/voices.c 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
tests/api.c 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);

Loading…
Cancel
Save