Index: chrome/browser/extensions/extension_tts_api.h |
=================================================================== |
--- chrome/browser/extensions/extension_tts_api.h (revision 62145) |
+++ chrome/browser/extensions/extension_tts_api.h (working copy) |
@@ -8,6 +8,46 @@ |
#include "chrome/browser/extensions/extension_function.h" |
#include "chrome/browser/extensions/extension_tts_api_util.h" |
+// Abstract class that defines the native platform TTS interface. |
+class ExtensionTtsPlatformImpl { |
+ public: |
+ static ExtensionTtsPlatformImpl* GetInstance(); |
+ |
+ // Speak the given utterance with the given parameters if possible, |
+ // and return true on success. Utterance will always be nonempty. |
+ // If the user does not specify the other values, language and gender |
+ // will be empty strings, and rate, pitch, and volume will be -1.0. |
+ virtual bool Speak( |
+ const std::string& utterance, |
+ const std::string& language, |
+ const std::string& gender, |
+ double rate, |
+ double pitch, |
+ double volume) = 0; |
+ |
+ // Stop speaking immediately and return true on success. |
+ virtual bool StopSpeaking() = 0; |
+ |
+ // Return true if the synthesis engine is currently speaking. |
+ virtual bool IsSpeaking() = 0; |
+ |
+ virtual std::string error() { return error_; } |
+ virtual void clear_error() { error_ = std::string(); } |
+ virtual void set_error(const std::string& error) { error_ = error; } |
+ |
+ protected: |
+ ExtensionTtsPlatformImpl() {} |
+ virtual ~ExtensionTtsPlatformImpl() {} |
+ |
+ std::string error_; |
+ |
+ DISALLOW_COPY_AND_ASSIGN(ExtensionTtsPlatformImpl); |
+}; |
+ |
+// |
+// Extension API function definitions |
+// |
+ |
class ExtensionTtsSpeakFunction : public SyncExtensionFunction { |
~ExtensionTtsSpeakFunction() {} |
virtual bool RunImpl(); |