From 93898d7960f714c86b0db2e1cea12cfb82f59bc1 Mon Sep 17 00:00:00 2001 From: "Reece H. Dunn" Date: Sat, 2 Jan 2016 17:32:32 +0000 Subject: [PATCH] Create an espeak-ng version of espeak_SetParameter. --- src/include/espeak-ng/espeak_ng.h | 5 +++++ src/libespeak-ng/espeak_api.c | 5 +++++ src/libespeak-ng/espeak_command.h | 2 +- src/libespeak-ng/setlengths.c | 6 ++++-- src/libespeak-ng/speech.c | 19 +++++++------------ src/libespeak-ng/synthesize.h | 2 +- 6 files changed, 23 insertions(+), 16 deletions(-) diff --git a/src/include/espeak-ng/espeak_ng.h b/src/include/espeak-ng/espeak_ng.h index c923fccd..38c9a95b 100644 --- a/src/include/espeak-ng/espeak_ng.h +++ b/src/include/espeak-ng/espeak_ng.h @@ -64,6 +64,11 @@ espeak_ng_InitializeOutput(espeak_ng_OUTPUT_MODE output_mode, ESPEAK_NG_API int espeak_ng_GetSampleRate(void); +ESPEAK_NG_API espeak_ng_STATUS +espeak_ng_SetParameter(espeak_PARAMETER parameter, + int value, + int relative); + ESPEAK_NG_API espeak_ng_STATUS espeak_ng_Synthesize(const void *text, size_t size, diff --git a/src/libespeak-ng/espeak_api.c b/src/libespeak-ng/espeak_api.c index b6c7697d..0114e69b 100644 --- a/src/libespeak-ng/espeak_api.c +++ b/src/libespeak-ng/espeak_api.c @@ -131,6 +131,11 @@ ESPEAK_API espeak_ERROR espeak_Char(wchar_t character) return status_to_espeak_error(espeak_ng_SpeakCharacter(character)); } +ESPEAK_API espeak_ERROR espeak_SetParameter(espeak_PARAMETER parameter, int value, int relative) +{ + return status_to_espeak_error(espeak_ng_SetParameter(parameter, value, relative)); +} + ESPEAK_API void espeak_CompileDictionary(const char *path, FILE *log, int flags) { espeak_ng_CompileDictionary(path, dictionary_name, log, flags); diff --git a/src/libespeak-ng/espeak_command.h b/src/libespeak-ng/espeak_command.h index aefe9d79..61d6c9c6 100644 --- a/src/libespeak-ng/espeak_command.h +++ b/src/libespeak-ng/espeak_command.h @@ -143,7 +143,7 @@ void sync_espeak_SetPunctuationList(const wchar_t *punctlist); void sync_espeak_SetParameter(espeak_PARAMETER parameter, int value, int relative); int sync_espeak_SetVoiceByName(const char *name); int sync_espeak_SetVoiceByProperties(espeak_VOICE *voice_selector); -void SetParameter(int parameter, int value, int relative); +espeak_ng_STATUS SetParameter(int parameter, int value, int relative); int sync_espeak_terminated_msg(unsigned int unique_identifier, void *user_data); diff --git a/src/libespeak-ng/setlengths.c b/src/libespeak-ng/setlengths.c index 2222c089..1f8b802e 100644 --- a/src/libespeak-ng/setlengths.c +++ b/src/libespeak-ng/setlengths.c @@ -19,6 +19,7 @@ #include "config.h" +#include #include #include #include @@ -369,7 +370,7 @@ void SetSpeed(int control) #endif -void SetParameter(int parameter, int value, int relative) +espeak_ng_STATUS SetParameter(int parameter, int value, int relative) { // parameter: reset-all, amp, pitch, speed, linelength, expression, capitals, number grouping // relative 0=absolute 1=relative @@ -418,8 +419,9 @@ void SetParameter(int parameter, int value, int relative) option_tone_flags = new_value; break; default: - break; + return EINVAL; } + return ENS_OK; } static void DoEmbedded2(int *embix) diff --git a/src/libespeak-ng/speech.c b/src/libespeak-ng/speech.c index 64cde648..bf931bcc 100644 --- a/src/libespeak-ng/speech.c +++ b/src/libespeak-ng/speech.c @@ -747,25 +747,20 @@ ESPEAK_API int espeak_GetParameter(espeak_PARAMETER parameter, int current) return param_defaults[parameter]; } -ESPEAK_API espeak_ERROR espeak_SetParameter(espeak_PARAMETER parameter, int value, int relative) +ESPEAK_NG_API espeak_ng_STATUS espeak_ng_SetParameter(espeak_PARAMETER parameter, int value, int relative) { #ifdef USE_ASYNC - espeak_ERROR a_error; - - if (my_mode & ENOUTPUT_MODE_SYNCHRONOUS) { - SetParameter(parameter, value, relative); - return EE_OK; - } + if (my_mode & ENOUTPUT_MODE_SYNCHRONOUS) + return SetParameter(parameter, value, relative); t_espeak_command *c = create_espeak_parameter(parameter, value, relative); - a_error = status_to_espeak_error(fifo_add_command(c)); - if (a_error != EE_OK) + espeak_ng_STATUS status = fifo_add_command(c); + if (status != EE_OK) delete_espeak_command(c); - return a_error; + return status; #else - SetParameter(parameter, value, relative); - return EE_OK; + return SetParameter(parameter, value, relative); #endif } diff --git a/src/libespeak-ng/synthesize.h b/src/libespeak-ng/synthesize.h index 13f3f057..218057d9 100644 --- a/src/libespeak-ng/synthesize.h +++ b/src/libespeak-ng/synthesize.h @@ -543,7 +543,7 @@ 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); -void SetParameter(int parameter, int value, int relative); +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); int MbrolaFill(int length, int resume, int amplitude);