summaryrefslogtreecommitdiffstats
path: root/packages/TtsService/src
diff options
context:
space:
mode:
authorJean-Michel Trivi <jmtrivi@google.com>2009-06-17 16:36:46 -0700
committerJean-Michel Trivi <jmtrivi@google.com>2009-06-17 17:59:50 -0700
commit605a66bd56f01713f240ee8bc1435512500498e0 (patch)
tree8cf3229ad721d751506a5a697aaeec1b826c2300 /packages/TtsService/src
parent07ca8c71f47ac8c61b3aef0210e44d2c48e62e48 (diff)
downloadframeworks_base-605a66bd56f01713f240ee8bc1435512500498e0.zip
frameworks_base-605a66bd56f01713f240ee8bc1435512500498e0.tar.gz
frameworks_base-605a66bd56f01713f240ee8bc1435512500498e0.tar.bz2
In the TTS service, read the default TTS settings from Settings.Secure.
Diffstat (limited to 'packages/TtsService/src')
-rwxr-xr-xpackages/TtsService/src/android/tts/TtsService.java66
1 files changed, 44 insertions, 22 deletions
diff --git a/packages/TtsService/src/android/tts/TtsService.java b/packages/TtsService/src/android/tts/TtsService.java
index f7dd0e8..b50add6 100755
--- a/packages/TtsService/src/android/tts/TtsService.java
+++ b/packages/TtsService/src/android/tts/TtsService.java
@@ -19,6 +19,7 @@ import android.speech.tts.ITts.Stub;
import android.speech.tts.ITtsCallback;
import android.app.Service;
+import android.content.ContentResolver;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
@@ -92,6 +93,10 @@ public class TtsService extends Service implements OnCompletionListener {
private static final String CATEGORY = "android.intent.category.TTS";
private static final String PKGNAME = "android.tts";
+ private static final int FALLBACK_TTS_DEFAULT_RATE = 100; // 1x
+ private static final int FALLBACK_TTS_DEFAULT_PITCH = 100;// 1x
+ private static final int FALLBACK_TTS_USE_DEFAULTS = 0;
+
final RemoteCallbackList<android.speech.tts.ITtsCallback> mCallbacks = new RemoteCallbackList<ITtsCallback>();
private Boolean mIsSpeaking;
@@ -101,7 +106,7 @@ public class TtsService extends Service implements OnCompletionListener {
private MediaPlayer mPlayer;
private TtsService mSelf;
- private SharedPreferences prefs;
+ private ContentResolver mResolver;
private final ReentrantLock speechQueueLock = new ReentrantLock();
private final ReentrantLock synthesizerLock = new ReentrantLock();
@@ -113,9 +118,7 @@ public class TtsService extends Service implements OnCompletionListener {
super.onCreate();
Log.i("TTS", "TTS starting");
- // TODO: Make this work when the settings are done in the main Settings
- // app.
- prefs = PreferenceManager.getDefaultSharedPreferences(this);
+ mResolver = getContentResolver();
String soLibPath = "/system/lib/libttspico.so";
nativeSynth = new SynthProxy(soLibPath);
@@ -129,10 +132,7 @@ public class TtsService extends Service implements OnCompletionListener {
mSpeechQueue = new ArrayList<SpeechItem>();
mPlayer = null;
- // TODO set default settings
- //setLanguage(prefs.getString("lang_pref", "en-rUS"));
- setLanguage("eng", "USA", "");
- setSpeechRate(Integer.parseInt(prefs.getString("rate_pref", "140")));
+ setDefaultSettings();
}
@Override
@@ -147,26 +147,48 @@ public class TtsService extends Service implements OnCompletionListener {
mCallbacks.kill();
}
+
+ private void setDefaultSettings() {
+
+ // TODO handle default language
+ setLanguage("eng", "USA", "");
+
+ // speech rate
+ setSpeechRate(getDefaultRate());
+
+ // TODO handle default pitch
+ }
+
+
+ private boolean isDefaultEnforced() {
+ return (android.provider.Settings.Secure.getInt(mResolver,
+ android.provider.Settings.Secure.TTS_USE_DEFAULTS, FALLBACK_TTS_USE_DEFAULTS)
+ == 1 );
+ }
+
+
+ private int getDefaultRate() {
+ return android.provider.Settings.Secure.getInt(mResolver,
+ android.provider.Settings.Secure.TTS_DEFAULT_RATE, FALLBACK_TTS_DEFAULT_RATE);
+ }
+
+
private void setSpeechRate(int rate) {
- 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
- // not allowed to change the defaults.
- rate = Integer.parseInt(prefs.getString("rate_pref", "140"));
+ if (isDefaultEnforced()) {
+ nativeSynth.setSpeechRate(getDefaultRate());
+ } else {
+ nativeSynth.setSpeechRate(rate);
}
- nativeSynth.setSpeechRate(rate);
}
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
- // not
- // allowed to change the defaults.
- lang = prefs.getString("lang_pref", "en-rUS");
- }
Log.v("TTS", "TtsService.setLanguage("+lang+", "+country+", "+variant+")");
- nativeSynth.setLanguage(lang, country, variant);
+ if (isDefaultEnforced()) {
+ nativeSynth.setLanguage(lang, country, variant);
+ } else {
+ // TODO handle default language
+ nativeSynth.setLanguage("eng", "USA", "");
+ }
}
/**