Make LoadMbrolaTable return espeak_ng_STATUS.

This commit is contained in:
Reece H. Dunn
2016-01-02 18:59:18 +00:00
parent df170d1c48
commit e69f0f41f0
4 changed files with 13 additions and 9 deletions
+2
View File
@@ -44,6 +44,8 @@ typedef enum {
ENS_NOT_INITIALIZED = 0x100004FF,
ENS_AUDIO_ERROR = 0x100005FF,
ENS_VOICE_NOT_FOUND = 0x100006FF,
ENS_MBROLA_NOT_FOUND = 0x100007FF,
ENS_MBROLA_VOICE_NOT_FOUND = 0x100008FF,
} espeak_ng_STATUS;
typedef enum {
+9 -7
View File
@@ -19,6 +19,7 @@
#include "config.h"
#include <errno.h>
#include <stdio.h>
#include <ctype.h>
#include <wctype.h>
@@ -106,7 +107,7 @@ static MBROLA_TAB *mbrola_tab = NULL;
static int mbrola_control = 0;
static int mbr_name_prefix = 0;
espeak_ERROR LoadMbrolaTable(const char *mbrola_voice, const char *phtrans, int *srate)
espeak_ng_STATUS LoadMbrolaTable(const char *mbrola_voice, const char *phtrans, int *srate)
{
// Load a phoneme name translation table from espeak-data/mbrola
@@ -123,7 +124,7 @@ espeak_ERROR LoadMbrolaTable(const char *mbrola_voice, const char *phtrans, int
if (mbrola_voice == NULL) {
samplerate = samplerate_native;
SetParameter(espeakVOICETYPE, 0, 0);
return EE_OK;
return ENS_OK;
}
sprintf(path, "%s/mbrola/%s", path_home, mbrola_voice);
@@ -145,12 +146,12 @@ espeak_ERROR LoadMbrolaTable(const char *mbrola_voice, const char *phtrans, int
#ifdef PLATFORM_WINDOWS
if (load_MBR() == FALSE) { // load mbrola.dll
fprintf(stderr, "Can't load mbrola.dll\n");
return EE_INTERNAL_ERROR;
return ENS_MBROLA_NOT_FOUND;
}
#endif
if (init_MBR(path) != 0) // initialise the required mbrola voice
return EE_NOT_FOUND;
return ENS_MBROLA_VOICE_NOT_FOUND;
setNoError_MBR(1); // don't stop on phoneme errors
@@ -158,14 +159,15 @@ espeak_ERROR LoadMbrolaTable(const char *mbrola_voice, const char *phtrans, int
sprintf(path, "%s/mbrola_ph/%s", path_home, phtrans);
size = GetFileLength(path);
if ((f_in = fopen(path, "rb")) == NULL) {
int error = errno;
close_MBR();
return EE_NOT_FOUND;
return error;
}
if ((mbrola_tab = (MBROLA_TAB *)realloc(mbrola_tab, size)) == NULL) {
fclose(f_in);
close_MBR();
return EE_INTERNAL_ERROR;
return ENOMEM;
}
mbrola_control = Read4Bytes(f_in);
@@ -183,7 +185,7 @@ espeak_ERROR LoadMbrolaTable(const char *mbrola_voice, const char *phtrans, int
SetParameter(espeakVOICETYPE, 1, 0);
strcpy(mbrola_name, mbrola_voice);
mbrola_delay = 1000; // improve synchronization of events
return EE_OK;
return ENS_OK;
}
static int GetMbrName(PHONEME_LIST *plist, PHONEME_TAB *ph, PHONEME_TAB *ph_prev, PHONEME_TAB *ph_next, int *name2, int *split, int *control)
+1 -1
View File
@@ -542,7 +542,7 @@ extern double sonicSpeed;
extern int n_soundicon_tab;
extern SOUND_ICON soundicon_tab[N_SOUNDICON_TAB];
espeak_ERROR LoadMbrolaTable(const char *mbrola_voice, const char *phtrans, int *srate);
espeak_ng_STATUS LoadMbrolaTable(const char *mbrola_voice, const char *phtrans, int *srate);
espeak_ng_STATUS SetParameter(int parameter, int value, int relative);
int MbrolaTranslate(PHONEME_LIST *plist, int n_phonemes, int resume, FILE *f_mbrola);
int MbrolaGenerate(PHONEME_LIST *phoneme_list, int *n_ph, int resume);
+1 -1
View File
@@ -869,7 +869,7 @@ voice_t *LoadVoice(const char *vname, int control)
name2[0] = 0;
sscanf(p, "%s %s %d", name1, name2, &srate);
if (LoadMbrolaTable(name1, name2, &srate) != EE_OK)
if (LoadMbrolaTable(name1, name2, &srate) != ENS_OK)
fprintf(stderr, "mbrola voice not found\n");
voice->samplerate = srate;
}