Browse Source

Make LoadMbrolaTable return espeak_ng_STATUS.

master
Reece H. Dunn 9 years ago
parent
commit
e69f0f41f0

+ 2
- 0
src/include/espeak-ng/espeak_ng.h 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
src/libespeak-ng/synth_mbrola.c 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
src/libespeak-ng/synthesize.h 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
src/libespeak-ng/voices.c 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;
}

Loading…
Cancel
Save