diff options
author | Android (Google) Code Review <android-gerrit@google.com> | 2009-06-17 10:36:43 -0700 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2009-06-17 10:36:43 -0700 |
commit | a0a854d47f9dc38ce41505f973aea01842694fb5 (patch) | |
tree | dca33d8c019b357c80efc597fc746e39076e4e1c /packages | |
parent | 2cf3971ea4d22f8981ae71e6ba358f19e1628d09 (diff) | |
parent | 679d728f09eeab2f8b882e42f6e081db1ac74996 (diff) | |
download | frameworks_base-a0a854d47f9dc38ce41505f973aea01842694fb5.zip frameworks_base-a0a854d47f9dc38ce41505f973aea01842694fb5.tar.gz frameworks_base-a0a854d47f9dc38ce41505f973aea01842694fb5.tar.bz2 |
Merge change 4398 into donut
* changes:
Using Locale to specify language and country for a TTS language to load, rather than a String. Cleanup in doc for TextToSpeech, and addition of queue mode constants.
Diffstat (limited to 'packages')
-rw-r--r-- | packages/TtsService/jni/android_tts_SynthProxy.cpp | 18 | ||||
-rwxr-xr-x | packages/TtsService/src/android/tts/SynthProxy.java | 7 | ||||
-rwxr-xr-x | packages/TtsService/src/android/tts/TtsService.java | 27 |
3 files changed, 26 insertions, 26 deletions
diff --git a/packages/TtsService/jni/android_tts_SynthProxy.cpp b/packages/TtsService/jni/android_tts_SynthProxy.cpp index dfecfd8..54d038a 100644 --- a/packages/TtsService/jni/android_tts_SynthProxy.cpp +++ b/packages/TtsService/jni/android_tts_SynthProxy.cpp @@ -269,10 +269,10 @@ android_tts_SynthProxy_native_finalize(JNIEnv *env, jobject thiz, jint jniData) } } -// TODO update to use language, country, variant + static void android_tts_SynthProxy_setLanguage(JNIEnv *env, jobject thiz, jint jniData, - jstring language) + jstring language, jstring country, jstring variant) { if (jniData == 0) { LOGE("android_tts_SynthProxy_setLanguage(): invalid JNI data"); @@ -281,14 +281,16 @@ android_tts_SynthProxy_setLanguage(JNIEnv *env, jobject thiz, jint jniData, SynthProxyJniStorage* pSynthData = (SynthProxyJniStorage*)jniData; const char *langNativeString = env->GetStringUTFChars(language, 0); + const char *countryNativeString = env->GetStringUTFChars(country, 0); + const char *variantNativeString = env->GetStringUTFChars(variant, 0); // TODO check return codes if (pSynthData->mNativeSynthInterface) { - // TODO update to use language, country, variant - // commented out to not break the build - //pSynthData->mNativeSynthInterface->setLanguage(langNativeString, - // strlen(langNativeString)); + pSynthData->mNativeSynthInterface->setLanguage(langNativeString, countryNativeString, + variantNativeString); } env->ReleaseStringUTFChars(language, langNativeString); + env->ReleaseStringUTFChars(language, countryNativeString); + env->ReleaseStringUTFChars(language, variantNativeString); } @@ -496,6 +498,7 @@ android_tts_SynthProxy_getLanguage(JNIEnv *env, jobject thiz, jint jniData) return env->NewStringUTF(buf); } + JNIEXPORT int JNICALL android_tts_SynthProxy_getRate(JNIEnv *env, jobject thiz, jint jniData) { @@ -531,7 +534,7 @@ static JNINativeMethod gMethods[] = { (void*)android_tts_SynthProxy_synthesizeToFile }, { "native_setLanguage", - "(ILjava/lang/String;)V", + "(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V", (void*)android_tts_SynthProxy_setLanguage }, { "native_setSpeechRate", @@ -567,7 +570,6 @@ static JNINativeMethod gMethods[] = { #define SP_JNIDATA_FIELD_NAME "mJniData" #define SP_POSTSPEECHSYNTHESIZED_METHOD_NAME "postNativeSpeechSynthesizedInJava" -// TODO: verify this is the correct path static const char* const kClassPathName = "android/tts/SynthProxy"; jint JNI_OnLoad(JavaVM* vm, void* reserved) diff --git a/packages/TtsService/src/android/tts/SynthProxy.java b/packages/TtsService/src/android/tts/SynthProxy.java index e065f40..364dc58 100755 --- a/packages/TtsService/src/android/tts/SynthProxy.java +++ b/packages/TtsService/src/android/tts/SynthProxy.java @@ -70,8 +70,8 @@ public class SynthProxy { /** * Sets the language */ - public void setLanguage(String language) { - native_setLanguage(mJniData, language); + public void setLanguage(String language, String country, String variant) { + native_setLanguage(mJniData, language, country, variant); } /** @@ -141,7 +141,8 @@ public class SynthProxy { private native final void native_synthesizeToFile(int jniData, String text, String filename); - private native final void native_setLanguage(int jniData, String language); + private native final void native_setLanguage(int jniData, String language, String country, + String variant); private native final void native_setSpeechRate(int jniData, int speechRate); diff --git a/packages/TtsService/src/android/tts/TtsService.java b/packages/TtsService/src/android/tts/TtsService.java index 8a64113..f7dd0e8 100755 --- a/packages/TtsService/src/android/tts/TtsService.java +++ b/packages/TtsService/src/android/tts/TtsService.java @@ -129,7 +129,9 @@ public class TtsService extends Service implements OnCompletionListener { mSpeechQueue = new ArrayList<SpeechItem>(); mPlayer = null; - setLanguage(prefs.getString("lang_pref", "en-rUS")); + // TODO set default settings + //setLanguage(prefs.getString("lang_pref", "en-rUS")); + setLanguage("eng", "USA", ""); setSpeechRate(Integer.parseInt(prefs.getString("rate_pref", "140"))); } @@ -155,7 +157,7 @@ public class TtsService extends Service implements OnCompletionListener { nativeSynth.setSpeechRate(rate); } - private void setLanguage(String lang) { + private void setLanguage(String lang, String country, String variant) { if (prefs.getBoolean("override_pref", false)) { // This is set to the default here so that the preview in the prefs // activity will show the change without a restart, even if apps are @@ -163,7 +165,8 @@ public class TtsService extends Service implements OnCompletionListener { // allowed to change the defaults. lang = prefs.getString("lang_pref", "en-rUS"); } - nativeSynth.setLanguage(lang); + Log.v("TTS", "TtsService.setLanguage("+lang+", "+country+", "+variant+")"); + nativeSynth.setLanguage(lang, country, variant); } /** @@ -683,20 +686,14 @@ public class TtsService extends Service implements OnCompletionListener { } /** - * Sets the speech rate for the TTS. Note that this will only have an - * effect on synthesized speech; it will not affect pre-recorded speech. + * Sets the speech rate for the TTS, which affects the synthesized voice. * - * @param language - * Language values are based on the Android conventions for - * localization as described in the Android platform - * documentation on internationalization. This implies that - * language data is specified in the format xx-rYY, where xx - * is a two letter ISO 639-1 language code in lowercase and - * rYY is a two letter ISO 3166-1-alpha-2 language code in - * uppercase preceded by a lowercase "r". + * @param lang the three letter ISO language code. + * @param country the three letter ISO country code. + * @param variant the variant code associated with the country and language pair. */ - public void setLanguage(String language) { - mSelf.setLanguage(language); + public void setLanguage(String lang, String country, String variant) { + mSelf.setLanguage(lang, country, variant); } /** |