Browse Source

Make LoadSpect return an espeak_ng_STATUS code.

master
Reece H. Dunn 9 years ago
parent
commit
32655d264d
2 changed files with 16 additions and 13 deletions
  1. 14
    13
      src/libespeak-ng/compiledata.c
  2. 2
    0
      src/libespeak-ng/spect.c

+ 14
- 13
src/libespeak-ng/compiledata.c View File

@@ -1063,11 +1063,10 @@ int CompileVowelTransition(int which)
return 0;
}

int LoadSpect(const char *path, int control)
espeak_ng_STATUS LoadSpect(const char *path, int control, int *addr)
{
SpectSeq *spectseq;
int peak;
int displ;
int frame;
int n_frames;
int ix;
@@ -1087,16 +1086,15 @@ int LoadSpect(const char *path, int control)

// create SpectSeq and import data
spectseq = SpectSeqCreate();
if (spectseq == NULL) {
error("Failed to create SpectSeq");
return 0;
}
if (spectseq == NULL)
return ENOMEM;

snprintf(filename, sizeof(filename), "%s/../phsource/%s", path_home, path);
if (LoadSpectSeq(spectseq, filename) != ENS_OK) {
espeak_ng_STATUS status = LoadSpectSeq(spectseq, filename);
if (status != ENS_OK) {
error("Bad vowel file: '%s'", path);
SpectSeqDestroy(spectseq);
return 0;
return status;
}

// do we need additional klatt data ?
@@ -1107,7 +1105,7 @@ int LoadSpect(const char *path, int control)
}
}

displ = ftell(f_phdata);
*addr = ftell(f_phdata);

seq_out.n_frames = 0;
seq_out.sqflags = 0;
@@ -1235,7 +1233,7 @@ int LoadSpect(const char *path, int control)
}

SpectSeqDestroy(spectseq);
return displ;
return ENS_OK;
}

static int LoadWavefile(FILE *f, const char *fname)
@@ -1529,8 +1527,9 @@ static espeak_ng_STATUS LoadDataFile(const char *path, int control, int *addr)
id = Read4Bytes(f);
rewind(f);

espeak_ng_STATUS status = ENS_OK;
if (id == 0x43455053) {
*addr = LoadSpect(path, control);
status = LoadSpect(path, control, addr);
type_code = 'S';
} else if (id == 0x46464952) {
*addr = LoadWavefile(f, path);
@@ -1544,11 +1543,13 @@ static espeak_ng_STATUS LoadDataFile(const char *path, int control, int *addr)
} else {
error("File not SPEC or RIFF: %s", path);
*addr = -1;
fclose(f);
return ENS_UNSUPPORTED_PHON_FORMAT;
status = ENS_UNSUPPORTED_PHON_FORMAT;
}
fclose(f);

if (status != ENS_OK)
return status;

if (*addr > 0)
fprintf(f_phcontents, "%c 0x%.5x %s\n", type_code, *addr & 0x7fffff, path);
}

+ 2
- 0
src/libespeak-ng/spect.c View File

@@ -225,6 +225,8 @@ double GetFrameRms(SpectFrame *frame, int seq_amplitude)
SpectSeq *SpectSeqCreate()
{
SpectSeq *spect = malloc(sizeof(SpectSeq));
if (!spect)
return NULL;

spect->numframes = 0;
spect->frames = NULL;

Loading…
Cancel
Save