mirror of
https://github.com/rhasspy/espeak-ng.git
synced 2026-11-06 07:03:12 +00:00
Use the error context API in espeak_ng_CompileIntonation.
This commit is contained in:
+10
-1
@@ -586,8 +586,17 @@ int main(int argc, char **argv)
|
||||
return EXIT_SUCCESS;
|
||||
}
|
||||
case 0x10f: // --compile-intonations
|
||||
{
|
||||
espeak_ng_InitializePath(data_path);
|
||||
return (espeak_ng_CompileIntonation(stdout) == ENS_OK) ? EXIT_SUCCESS : EXIT_FAILURE;
|
||||
espeak_ng_ERROR_CONTEXT context = NULL;
|
||||
espeak_ng_STATUS result = espeak_ng_CompileIntonation(stdout, &context);
|
||||
if (result != ENS_OK) {
|
||||
espeak_ng_PrintStatusCodeMessage(result, stderr, context);
|
||||
espeak_ng_ClearErrorContext(&context);
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
return EXIT_SUCCESS;
|
||||
}
|
||||
case 0x110: // --compile-phonemes
|
||||
espeak_ng_InitializePath(data_path);
|
||||
return (espeak_ng_CompilePhonemeData(22050, stdout) == ENS_OK) ? EXIT_SUCCESS : EXIT_FAILURE;
|
||||
|
||||
@@ -151,7 +151,8 @@ espeak_ng_CompilePhonemeData(long rate,
|
||||
FILE *log);
|
||||
|
||||
ESPEAK_NG_API espeak_ng_STATUS
|
||||
espeak_ng_CompileIntonation(FILE *log);
|
||||
espeak_ng_CompileIntonation(FILE *log,
|
||||
espeak_ng_ERROR_CONTEXT *context);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
||||
@@ -33,6 +33,7 @@
|
||||
#include "speak_lib.h"
|
||||
#include "espeak_ng.h"
|
||||
|
||||
#include "error.h"
|
||||
#include "speech.h"
|
||||
#include "phoneme.h"
|
||||
#include "synthesize.h"
|
||||
@@ -2783,7 +2784,7 @@ int LookupEnvelopeName(const char *name)
|
||||
|
||||
#pragma GCC visibility push(default)
|
||||
|
||||
espeak_ng_STATUS espeak_ng_CompileIntonation(FILE *log)
|
||||
espeak_ng_STATUS espeak_ng_CompileIntonation(FILE *log, espeak_ng_ERROR_CONTEXT *context)
|
||||
{
|
||||
if (!log) log = stderr;
|
||||
|
||||
@@ -2812,11 +2813,10 @@ espeak_ng_STATUS espeak_ng_CompileIntonation(FILE *log)
|
||||
sprintf(buf, "%s/../phsource/intonation.txt", path_home);
|
||||
if ((f_in = fopen(buf, "r")) == NULL) {
|
||||
sprintf(buf, "%s/../phsource/intonation", path_home);
|
||||
if ((f_in = fopen_log(f_errors, buf, "r")) == NULL) {
|
||||
if ((f_in = fopen(buf, "r")) == NULL) {
|
||||
int error = errno;
|
||||
fprintf(log, "Can't read file: %s\n", buf);
|
||||
fclose(f_errors);
|
||||
return error;
|
||||
return create_file_error_context(context, error, buf);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2860,20 +2860,19 @@ espeak_ng_STATUS espeak_ng_CompileIntonation(FILE *log)
|
||||
|
||||
tune_data = (TUNE *)calloc(sizeof(TUNE), n_tune_names);
|
||||
if (tune_data == NULL) {
|
||||
fprintf(f_errors, "Failed to allocate data for tunes\n");
|
||||
fclose(f_in);
|
||||
fclose(f_errors);
|
||||
return ENOMEM;
|
||||
}
|
||||
|
||||
sprintf(buf, "%s/intonations", path_home);
|
||||
f_out = fopen_log(f_errors, buf, "wb");
|
||||
f_out = fopen(buf, "wb");
|
||||
if (f_out == NULL) {
|
||||
int error = errno;
|
||||
fclose(f_in);
|
||||
fclose(f_errors);
|
||||
free(tune_data);
|
||||
return error;
|
||||
return create_file_error_context(context, error, buf);
|
||||
}
|
||||
|
||||
while (!feof(f_in)) {
|
||||
|
||||
+10
-1
@@ -573,8 +573,17 @@ int main(int argc, char **argv)
|
||||
return EXIT_SUCCESS;
|
||||
}
|
||||
case 0x10f: // --compile-intonations
|
||||
{
|
||||
espeak_ng_InitializePath(data_path);
|
||||
return (espeak_ng_CompileIntonation(stdout) == ENS_OK) ? EXIT_SUCCESS : EXIT_FAILURE;
|
||||
espeak_ng_ERROR_CONTEXT context = NULL;
|
||||
espeak_ng_STATUS result = espeak_ng_CompileIntonation(stdout, &context);
|
||||
if (result != ENS_OK) {
|
||||
espeak_ng_PrintStatusCodeMessage(result, stderr, context);
|
||||
espeak_ng_ClearErrorContext(&context);
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
return EXIT_SUCCESS;
|
||||
}
|
||||
case 0x110: // --compile-phonemes
|
||||
espeak_ng_InitializePath(data_path);
|
||||
return (espeak_ng_CompilePhonemeData(22050, stdout) == ENS_OK) ? EXIT_SUCCESS : EXIT_FAILURE;
|
||||
|
||||
Reference in New Issue
Block a user