From 88eab88d8ac0edadfae890dd9edf136fbbd522af Mon Sep 17 00:00:00 2001 From: "Reece H. Dunn" Date: Thu, 2 May 2013 16:45:41 +0100 Subject: [PATCH] SpeechSynthesis.java: further simplify the setVoice method. This renames `setVoiceByProperties` to the more consise `setVoice` and removes the name parameter as this is not used -- the voice is set by the language and gender parameters only. --- android/jni/jni/eSpeakService.cpp | 16 ++++++---------- .../com/reecedunn/espeak/SpeechSynthesis.java | 6 +++--- android/src/com/reecedunn/espeak/TtsService.java | 2 +- 3 files changed, 10 insertions(+), 14 deletions(-) diff --git a/android/jni/jni/eSpeakService.cpp b/android/jni/jni/eSpeakService.cpp index 9d55155e..673fb73d 100644 --- a/android/jni/jni/eSpeakService.cpp +++ b/android/jni/jni/eSpeakService.cpp @@ -241,24 +241,20 @@ JNICALL Java_com_reecedunn_espeak_SpeechSynthesis_nativeGetAvailableVoices( } JNIEXPORT jboolean -JNICALL Java_com_reecedunn_espeak_SpeechSynthesis_nativeSetVoiceByProperties( - JNIEnv *env, jobject object, jstring name, jstring languages, jint gender) { - const char *c_name = name ? env->GetStringUTFChars(name, NULL) : NULL; - const char *c_languages = languages ? env->GetStringUTFChars(languages, NULL) : NULL; +JNICALL Java_com_reecedunn_espeak_SpeechSynthesis_nativeSetVoice( + JNIEnv *env, jobject object, jstring language, jint gender) { + const char *c_language = language ? env->GetStringUTFChars(language, NULL) : NULL; - if (DEBUG) LOGV("%s(name=%s, languages=%s)", __FUNCTION__, c_name, c_languages); + if (DEBUG) LOGV("%s(language=%s, gender=%d)", __FUNCTION__, c_language, gender); espeak_VOICE voice_select; memset(&voice_select, 0, sizeof(espeak_VOICE)); - - voice_select.name = c_name; - voice_select.languages = c_languages; + voice_select.languages = c_language; voice_select.gender = (int) gender; const espeak_ERROR result = espeak_SetVoiceByProperties(&voice_select); - if (c_name) env->ReleaseStringUTFChars(name, c_name); - if (c_languages) env->ReleaseStringUTFChars(languages, c_languages); + if (c_language) env->ReleaseStringUTFChars(language, c_language); switch (result) { case EE_OK: return JNI_TRUE; diff --git a/android/src/com/reecedunn/espeak/SpeechSynthesis.java b/android/src/com/reecedunn/espeak/SpeechSynthesis.java index 6546e8af..c515a577 100644 --- a/android/src/com/reecedunn/espeak/SpeechSynthesis.java +++ b/android/src/com/reecedunn/espeak/SpeechSynthesis.java @@ -169,8 +169,8 @@ public class SpeechSynthesis { return voices; } - public void setVoiceByProperties(String name, String languages, int gender) { - nativeSetVoiceByProperties(name, languages, gender); + public void setVoice(String language, int gender) { + nativeSetVoice(language, gender); } public void setRate(int rate) { @@ -300,7 +300,7 @@ public class SpeechSynthesis { private native final String[] nativeGetAvailableVoices(); - private native final boolean nativeSetVoiceByProperties(String name, String languages, int gender); + private native final boolean nativeSetVoice(String language, int gender); private native final boolean nativeSetRate(int rate); diff --git a/android/src/com/reecedunn/espeak/TtsService.java b/android/src/com/reecedunn/espeak/TtsService.java index 3a97695a..2bdacc32 100644 --- a/android/src/com/reecedunn/espeak/TtsService.java +++ b/android/src/com/reecedunn/espeak/TtsService.java @@ -221,7 +221,7 @@ public class TtsService extends TextToSpeechService { mCallback.start(mEngine.getSampleRate(), mEngine.getAudioFormat(), mEngine.getChannelCount()); - mEngine.setVoiceByProperties(null, mMatchingVoice.name, gender); + mEngine.setVoice(mMatchingVoice.name, gender); mEngine.setRate(rate); mEngine.setPitch(pitch); mEngine.synthesize(text, text.startsWith("