summaryrefslogtreecommitdiffstats
path: root/packages
diff options
context:
space:
mode:
authorAndroid (Google) Code Review <android-gerrit@google.com>2009-06-17 10:36:43 -0700
committerAndroid (Google) Code Review <android-gerrit@google.com>2009-06-17 10:36:43 -0700
commita0a854d47f9dc38ce41505f973aea01842694fb5 (patch)
treedca33d8c019b357c80efc597fc746e39076e4e1c /packages
parent2cf3971ea4d22f8981ae71e6ba358f19e1628d09 (diff)
parent679d728f09eeab2f8b882e42f6e081db1ac74996 (diff)
downloadframeworks_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.cpp18
-rwxr-xr-xpackages/TtsService/src/android/tts/SynthProxy.java7
-rwxr-xr-xpackages/TtsService/src/android/tts/TtsService.java27
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);
}
/**