Browse Source

Use the error context API in espeak_ng_CompileDictionary.

master
Reece H. Dunn 9 years ago
parent
commit
a3f0795fb7

+ 8
- 2
src/espeak-ng.c View File



if (flag_compile) { if (flag_compile) {
// This must be done after the voice is set // This must be done after the voice is set
return (espeak_ng_CompileDictionary("", NULL, stderr, flag_compile & 0x1) == ENS_OK)
? EXIT_SUCCESS : EXIT_FAILURE;
espeak_ng_ERROR_CONTEXT context = NULL;
espeak_ng_STATUS result = espeak_ng_CompileDictionary("", NULL, stderr, flag_compile & 0x1, &context);
if (result != ENS_OK) {
espeak_ng_PrintStatusCodeMessage(result, stderr, context);
espeak_ng_ClearErrorContext(&context);
return EXIT_FAILURE;
}
return EXIT_SUCCESS;
} }


// set any non-default values of parameters. This must be done after espeak_Initialize() // set any non-default values of parameters. This must be done after espeak_Initialize()

+ 2
- 1
src/include/espeak-ng/espeak_ng.h View File

espeak_ng_CompileDictionary(const char *dsource, espeak_ng_CompileDictionary(const char *dsource,
const char *dict_name, const char *dict_name,
FILE *log, FILE *log,
int flags);
int flags,
espeak_ng_ERROR_CONTEXT *context);


ESPEAK_NG_API espeak_ng_STATUS ESPEAK_NG_API espeak_ng_STATUS
espeak_ng_CompileMbrolaVoice(const char *path, espeak_ng_CompileMbrolaVoice(const char *path,

+ 5
- 5
src/libespeak-ng/compiledict.c View File

} }


#pragma GCC visibility push(default) #pragma GCC visibility push(default)
ESPEAK_NG_API espeak_ng_STATUS espeak_ng_CompileDictionary(const char *dsource, const char *dict_name, FILE *log, int flags)
ESPEAK_NG_API espeak_ng_STATUS espeak_ng_CompileDictionary(const char *dsource, const char *dict_name, FILE *log, int flags, espeak_ng_ERROR_CONTEXT *context)
{ {
if (!log) log = stderr; if (!log) log = stderr;
if (!dict_name) dict_name = dictionary_name; if (!dict_name) dict_name = dictionary_name;
sprintf(fname_in, "%srules.txt", path); sprintf(fname_in, "%srules.txt", path);
if ((f_in = fopen(fname_in, "r")) == NULL) { if ((f_in = fopen(fname_in, "r")) == NULL) {
sprintf(fname_in, "%srules", path); sprintf(fname_in, "%srules", path);
if ((f_in = fopen_log(fname_in, "r")) == NULL)
return errno;
if ((f_in = fopen(fname_in, "r")) == NULL)
return create_file_error_context(context, errno, fname_in);
} }


sprintf(fname_out, "%s%c%s_dict", path_home, PATHSEP, dict_name); sprintf(fname_out, "%s%c%s_dict", path_home, PATHSEP, dict_name);
if ((f_out = fopen_log(fname_out, "wb+")) == NULL) {
if ((f_out = fopen(fname_out, "wb+")) == NULL) {
int error = errno; int error = errno;
fclose(f_in); fclose(f_in);
return error;
return create_file_error_context(context, errno, fname_out);
} }
sprintf(fname_temp, "%s%ctemp", path_home, PATHSEP); sprintf(fname_temp, "%s%ctemp", path_home, PATHSEP);



+ 6
- 1
src/libespeak-ng/espeak_api.c View File



ESPEAK_API void espeak_CompileDictionary(const char *path, FILE *log, int flags) ESPEAK_API void espeak_CompileDictionary(const char *path, FILE *log, int flags)
{ {
espeak_ng_CompileDictionary(path, dictionary_name, log, flags);
espeak_ng_ERROR_CONTEXT context = NULL;
espeak_ng_STATUS result = espeak_ng_CompileDictionary(path, dictionary_name, log, flags, &context);
if (result != ENS_OK) {
espeak_ng_PrintStatusCodeMessage(result, stderr, context);
espeak_ng_ClearErrorContext(&context);
}
} }


#pragma GCC visibility pop #pragma GCC visibility pop

+ 9
- 3
src/speak-ng.c View File

} }


if (flag_compile) { if (flag_compile) {
espeak_ng_ERROR_CONTEXT context = NULL;
#if defined(PLATFORM_DOS) || defined(PLATFORM_WINDOWS) #if defined(PLATFORM_DOS) || defined(PLATFORM_WINDOWS)
char path_dsource[sizeof(path_home)+20]; char path_dsource[sizeof(path_home)+20];
strcpy(path_dsource, path_home); strcpy(path_dsource, path_home);
path_dsource[strlen(path_home)-11] = 0; // remove "espeak-data" from the end path_dsource[strlen(path_home)-11] = 0; // remove "espeak-data" from the end
strcat(path_dsource, "dictsource\\"); strcat(path_dsource, "dictsource\\");


espeak_ng_STATUS status = espeak_ng_CompileDictionary(path_dsource, dictionary_name, NULL, flag_compile & 0x1);
espeak_ng_STATUS status = espeak_ng_CompileDictionary(path_dsource, dictionary_name, NULL, flag_compile & 0x1, &context);
#else #else
espeak_ng_STATUS status = espeak_ng_CompileDictionary(NULL, dictionary_name, NULL, flag_compile & 0x1);
espeak_ng_STATUS status = espeak_ng_CompileDictionary(NULL, dictionary_name, NULL, flag_compile & 0x1, &context);
#endif #endif
return (status == ENS_OK) ? EXIT_SUCCESS : EXIT_FAILURE;
if (status != ENS_OK) {
espeak_ng_PrintStatusCodeMessage(status, stderr, context);
espeak_ng_ClearErrorContext(&context);
return EXIT_FAILURE;
}
return EXIT_SUCCESS;
} }


SetParameter(espeakRATE, speed, 0); SetParameter(espeakRATE, speed, 0);

Loading…
Cancel
Save