Index: chrome/browser/speech/tts_controller.h |
diff --git a/chrome/browser/speech/tts_controller.h b/chrome/browser/speech/tts_controller.h |
index c8d1c10a4cf456421169892bce4b179ce896a20a..0962f67dfe88d324fcead32b749ca5a97c3276db 100644 |
--- a/chrome/browser/speech/tts_controller.h |
+++ b/chrome/browser/speech/tts_controller.h |
@@ -77,6 +77,29 @@ struct VoiceData { |
std::string native_voice_identifier; |
}; |
+// Interface that delegates TTS requests to user-installed extensions. |
+class TtsEngineDelegate { |
+ public: |
+ virtual ~TtsEngineDelegate() {} |
+ |
+ // Return a list of all available voices registered. |
+ virtual void GetVoices(Profile* profile, |
+ std::vector<VoiceData>* out_voices) = 0; |
+ |
+ // Speak the given utterance by sending an event to the given TTS engine. |
+ virtual void Speak(Utterance* utterance, const VoiceData& voice) = 0; |
+ |
+ // Stop speaking the given utterance by sending an event to the target |
+ // associated with this utterance. |
+ virtual void Stop(Utterance* utterance) = 0; |
+ |
+ // Pause in the middle of speaking this utterance. |
+ virtual void Pause(Utterance* utterance) = 0; |
+ |
+ // Resume speaking this utterance. |
+ virtual void Resume(Utterance* utterance) = 0; |
+}; |
+ |
// Class that wants to receive events on utterances. |
class UtteranceEventDelegate { |
public: |
@@ -297,6 +320,10 @@ class TtsController { |
// Remove delegate that wants to be notified when the set of voices changes. |
void RemoveVoicesChangedDelegate(VoicesChangedDelegate* delegate); |
+ // Set the delegate that processes TTS requests with user-installed |
+ // extensions. |
+ void SetTtsEngineDelegate(TtsEngineDelegate* delegate); |
+ |
// For unit testing. |
void SetPlatformImpl(TtsPlatformImpl* platform_impl); |
int QueueSize(); |
@@ -346,6 +373,9 @@ class TtsController { |
// dependency injection. |
TtsPlatformImpl* platform_impl_; |
+ // The delegate that processes TTS requests with user-installed extensions. |
+ TtsEngineDelegate* tts_engine_delegate_; |
+ |
DISALLOW_COPY_AND_ASSIGN(TtsController); |
}; |