1168fc36b549a3bdda30fa40b0da0379a23b062c9Srinivas Visvanathanpackage com.android.car.messenger.tts; 2168fc36b549a3bdda30fa40b0da0379a23b062c9Srinivas Visvanathan 3168fc36b549a3bdda30fa40b0da0379a23b062c9Srinivas Visvanathanimport android.content.Context; 4168fc36b549a3bdda30fa40b0da0379a23b062c9Srinivas Visvanathanimport android.os.Bundle; 5168fc36b549a3bdda30fa40b0da0379a23b062c9Srinivas Visvanathanimport android.speech.tts.TextToSpeech; 6168fc36b549a3bdda30fa40b0da0379a23b062c9Srinivas Visvanathanimport android.speech.tts.UtteranceProgressListener; 7168fc36b549a3bdda30fa40b0da0379a23b062c9Srinivas Visvanathan 8168fc36b549a3bdda30fa40b0da0379a23b062c9Srinivas Visvanathan/** 9168fc36b549a3bdda30fa40b0da0379a23b062c9Srinivas Visvanathan * Interface for TTS Engine that closely matches {@link TextToSpeech}; facilitates mocking/faking. 10168fc36b549a3bdda30fa40b0da0379a23b062c9Srinivas Visvanathan */ 11168fc36b549a3bdda30fa40b0da0379a23b062c9Srinivas Visvanathanpublic interface TTSEngine { 12168fc36b549a3bdda30fa40b0da0379a23b062c9Srinivas Visvanathan /** 13168fc36b549a3bdda30fa40b0da0379a23b062c9Srinivas Visvanathan * Initializes engine. 14168fc36b549a3bdda30fa40b0da0379a23b062c9Srinivas Visvanathan * 15168fc36b549a3bdda30fa40b0da0379a23b062c9Srinivas Visvanathan * @param context Context to use. 16168fc36b549a3bdda30fa40b0da0379a23b062c9Srinivas Visvanathan * @param initListener Listener to monitor initialization result. 17168fc36b549a3bdda30fa40b0da0379a23b062c9Srinivas Visvanathan */ 18168fc36b549a3bdda30fa40b0da0379a23b062c9Srinivas Visvanathan void initialize(Context context, TextToSpeech.OnInitListener initListener); 19168fc36b549a3bdda30fa40b0da0379a23b062c9Srinivas Visvanathan 20168fc36b549a3bdda30fa40b0da0379a23b062c9Srinivas Visvanathan /** 21168fc36b549a3bdda30fa40b0da0379a23b062c9Srinivas Visvanathan * @return Whether engine is already initialized. 22168fc36b549a3bdda30fa40b0da0379a23b062c9Srinivas Visvanathan */ 23168fc36b549a3bdda30fa40b0da0379a23b062c9Srinivas Visvanathan boolean isInitialized(); 24168fc36b549a3bdda30fa40b0da0379a23b062c9Srinivas Visvanathan 25168fc36b549a3bdda30fa40b0da0379a23b062c9Srinivas Visvanathan /** 26168fc36b549a3bdda30fa40b0da0379a23b062c9Srinivas Visvanathan * @see TextToSpeech#setOnUtteranceProgressListener(UtteranceProgressListener) 27168fc36b549a3bdda30fa40b0da0379a23b062c9Srinivas Visvanathan */ 28168fc36b549a3bdda30fa40b0da0379a23b062c9Srinivas Visvanathan void setOnUtteranceProgressListener(UtteranceProgressListener progressListener); 29168fc36b549a3bdda30fa40b0da0379a23b062c9Srinivas Visvanathan 30168fc36b549a3bdda30fa40b0da0379a23b062c9Srinivas Visvanathan /** 31168fc36b549a3bdda30fa40b0da0379a23b062c9Srinivas Visvanathan * @see TextToSpeech#speak(CharSequence, int, Bundle, String) 32168fc36b549a3bdda30fa40b0da0379a23b062c9Srinivas Visvanathan */ 33168fc36b549a3bdda30fa40b0da0379a23b062c9Srinivas Visvanathan int speak(CharSequence text, int queueMode, Bundle params, String utteranceId); 34168fc36b549a3bdda30fa40b0da0379a23b062c9Srinivas Visvanathan 35168fc36b549a3bdda30fa40b0da0379a23b062c9Srinivas Visvanathan /** 36168fc36b549a3bdda30fa40b0da0379a23b062c9Srinivas Visvanathan * @see TextToSpeech#stop() 37168fc36b549a3bdda30fa40b0da0379a23b062c9Srinivas Visvanathan */ 38168fc36b549a3bdda30fa40b0da0379a23b062c9Srinivas Visvanathan void stop(); 39168fc36b549a3bdda30fa40b0da0379a23b062c9Srinivas Visvanathan 40168fc36b549a3bdda30fa40b0da0379a23b062c9Srinivas Visvanathan /** 414a5024d82db356bc7c6e0848c80f4f0d7e213a0eSrinivas Visvanathan * @return Whether TTS is playing out currently. 424a5024d82db356bc7c6e0848c80f4f0d7e213a0eSrinivas Visvanathan */ 434a5024d82db356bc7c6e0848c80f4f0d7e213a0eSrinivas Visvanathan boolean isSpeaking(); 444a5024d82db356bc7c6e0848c80f4f0d7e213a0eSrinivas Visvanathan 454a5024d82db356bc7c6e0848c80f4f0d7e213a0eSrinivas Visvanathan /** 46168fc36b549a3bdda30fa40b0da0379a23b062c9Srinivas Visvanathan * Un-initialize engine and release resources. 47168fc36b549a3bdda30fa40b0da0379a23b062c9Srinivas Visvanathan * {@link #initialize(Context, TextToSpeech.OnInitListener)} will need to be called again before 48168fc36b549a3bdda30fa40b0da0379a23b062c9Srinivas Visvanathan * using this engine. 49168fc36b549a3bdda30fa40b0da0379a23b062c9Srinivas Visvanathan */ 50168fc36b549a3bdda30fa40b0da0379a23b062c9Srinivas Visvanathan void shutdown(); 51168fc36b549a3bdda30fa40b0da0379a23b062c9Srinivas Visvanathan} 52