summaryrefslogtreecommitdiffstats
path: root/core/java/android/speech
diff options
context:
space:
mode:
authorCharles Chen <clchen@google.com>2009-07-15 10:44:41 -0700
committerCharles Chen <clchen@google.com>2009-07-15 10:46:33 -0700
commit904dfa588431ff7c99c337d7797f5bef9ac12ce3 (patch)
tree848fdf1f4709aa8790cc7310bdcf9f0570276c47 /core/java/android/speech
parent83fa3565896ed19846f6498c00de3cc9a29b1a57 (diff)
downloadframeworks_base-904dfa588431ff7c99c337d7797f5bef9ac12ce3.zip
frameworks_base-904dfa588431ff7c99c337d7797f5bef9ac12ce3.tar.gz
frameworks_base-904dfa588431ff7c99c337d7797f5bef9ac12ce3.tar.bz2
Adding missing addEarcon method. Not having this was a bug as
this method is needed to add earcons; otherwise, there is nothing for playEarcon to play.
Diffstat (limited to 'core/java/android/speech')
-rwxr-xr-xcore/java/android/speech/tts/TextToSpeech.java103
1 files changed, 103 insertions, 0 deletions
diff --git a/core/java/android/speech/tts/TextToSpeech.java b/core/java/android/speech/tts/TextToSpeech.java
index db9f8d8..4794fe1 100755
--- a/core/java/android/speech/tts/TextToSpeech.java
+++ b/core/java/android/speech/tts/TextToSpeech.java
@@ -450,6 +450,109 @@ public class TextToSpeech {
/**
+ * Adds a mapping between a string of text and a sound resource in a
+ * package.
+ *
+ * @see #TTS.playEarcon(String earcon, int queueMode, String[] params)
+ *
+ * @param earcon The name of the earcon
+ * Example: <b><code>"[tick]"</code></b><br/>
+ *
+ * @param packagename
+ * Pass the packagename of the application that contains the
+ * resource. If the resource is in your own application (this is
+ * the most common case), then put the packagename of your
+ * application here.<br/>
+ * Example: <b>"com.google.marvin.compass"</b><br/>
+ * The packagename can be found in the AndroidManifest.xml of
+ * your application.
+ * <p>
+ * <code>&lt;manifest xmlns:android=&quot;...&quot;
+ * package=&quot;<b>com.google.marvin.compass</b>&quot;&gt;</code>
+ * </p>
+ *
+ * @param resourceId
+ * Example: <b><code>R.raw.tick_snd</code></b>
+ *
+ * @return Code indicating success or failure. See TTS_ERROR and TTS_SUCCESS.
+ */
+ public int addEarcon(String earcon, String packagename, int resourceId) {
+ synchronized(mStartLock) {
+ if (!mStarted) {
+ return TTS_ERROR;
+ }
+ try {
+ mITts.addEarcon(mPackageName, earcon, packagename, resourceId);
+ return TTS_SUCCESS;
+ } catch (RemoteException e) {
+ // TTS died; restart it.
+ Log.e("TextToSpeech.java - addEarcon", "RemoteException");
+ e.printStackTrace();
+ mStarted = false;
+ initTts();
+ } catch (NullPointerException e) {
+ // TTS died; restart it.
+ Log.e("TextToSpeech.java - addEarcon", "NullPointerException");
+ e.printStackTrace();
+ mStarted = false;
+ initTts();
+ } catch (IllegalStateException e) {
+ // TTS died; restart it.
+ Log.e("TextToSpeech.java - addEarcon", "IllegalStateException");
+ e.printStackTrace();
+ mStarted = false;
+ initTts();
+ }
+ return TTS_ERROR;
+ }
+ }
+
+
+ /**
+ * Adds a mapping between a string of text and a sound file. Using this, it
+ * is possible to add custom earcons.
+ *
+ * @param earcon
+ * The name of the earcon
+ * @param filename
+ * The full path to the sound file (for example:
+ * "/sdcard/mysounds/tick.wav")
+ *
+ * @return Code indicating success or failure. See TTS_ERROR and TTS_SUCCESS.
+ */
+ public int addEarcon(String earcon, String filename) {
+ synchronized (mStartLock) {
+ if (!mStarted) {
+ return TTS_ERROR;
+ }
+ try {
+ mITts.addEarconFile(mPackageName, earcon, filename);
+ return TTS_SUCCESS;
+ } catch (RemoteException e) {
+ // TTS died; restart it.
+ Log.e("TextToSpeech.java - addEarcon", "RemoteException");
+ e.printStackTrace();
+ mStarted = false;
+ initTts();
+ } catch (NullPointerException e) {
+ // TTS died; restart it.
+ Log.e("TextToSpeech.java - addEarcon", "NullPointerException");
+ e.printStackTrace();
+ mStarted = false;
+ initTts();
+ } catch (IllegalStateException e) {
+ // TTS died; restart it.
+ Log.e("TextToSpeech.java - addEarcon", "IllegalStateException");
+ e.printStackTrace();
+ mStarted = false;
+ initTts();
+ }
+ return TTS_ERROR;
+ }
+ }
+
+
+ /**
* Speaks the string using the specified queuing strategy and speech
* parameters. Note that the speech parameters are not universally supported
* by all engines and will be treated as a hint. The TTS library will try to