|
|
@@ -1381,16 +1381,18 @@ static int LoadWavefile(FILE *f, const char *fname) |
|
|
|
return displ | 0x800000; // set bit 23 to indicate a wave file rather than a spectrum |
|
|
|
} |
|
|
|
|
|
|
|
static int LoadEnvelope(FILE *f, const char *fname) |
|
|
|
static espeak_ng_STATUS LoadEnvelope(FILE *f, const char *fname, int *displ) |
|
|
|
{ |
|
|
|
int displ; |
|
|
|
char buf[128]; |
|
|
|
|
|
|
|
displ = ftell(f_phdata); |
|
|
|
if (displ) |
|
|
|
*displ = ftell(f_phdata); |
|
|
|
|
|
|
|
if (fseek(f, 12, SEEK_SET) == -1) |
|
|
|
return errno; |
|
|
|
|
|
|
|
fseek(f, 12, SEEK_SET); |
|
|
|
if (fread(buf, 128, 1, f) == 0) |
|
|
|
error("Failed to read envelope: %s", fname); |
|
|
|
if (fread(buf, 128, 1, f) != 128) |
|
|
|
return errno; |
|
|
|
fwrite(buf, 128, 1, f_phdata); |
|
|
|
|
|
|
|
if (n_envelopes < N_ENVELOPES) { |
|
|
@@ -1399,7 +1401,7 @@ static int LoadEnvelope(FILE *f, const char *fname) |
|
|
|
n_envelopes++; |
|
|
|
} |
|
|
|
|
|
|
|
return displ; |
|
|
|
return ENS_OK; |
|
|
|
} |
|
|
|
|
|
|
|
// Generate a hash code from the specified string |
|
|
@@ -1535,7 +1537,7 @@ static espeak_ng_STATUS LoadDataFile(const char *path, int control, int *addr) |
|
|
|
*addr = LoadWavefile(f, path); |
|
|
|
type_code = 'W'; |
|
|
|
} else if (id == 0x43544950) { |
|
|
|
*addr = LoadEnvelope(f, path); |
|
|
|
status = LoadEnvelope(f, path, addr); |
|
|
|
type_code = 'E'; |
|
|
|
} else if (id == 0x45564E45) { |
|
|
|
*addr = LoadEnvelope2(f, path); |