OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef CHROME_BROWSER_EXTENSIONS_EXTENSION_TTS_API_CONTROLLER_H_ | 5 #ifndef CHROME_BROWSER_EXTENSIONS_EXTENSION_TTS_API_CONTROLLER_H_ |
6 #define CHROME_BROWSER_EXTENSIONS_EXTENSION_TTS_API_CONTROLLER_H_ | 6 #define CHROME_BROWSER_EXTENSIONS_EXTENSION_TTS_API_CONTROLLER_H_ |
7 | 7 |
8 #include <queue> | 8 #include <queue> |
9 #include <set> | 9 #include <set> |
10 #include <string> | 10 #include <string> |
11 | 11 |
12 #include "base/memory/singleton.h" | 12 #include "base/memory/singleton.h" |
13 #include "base/scoped_ptr.h" | 13 #include "base/scoped_ptr.h" |
14 #include "googleurl/src/gurl.h" | 14 #include "googleurl/src/gurl.h" |
15 | 15 |
16 class DictionaryValue; | |
17 class Extension; | 16 class Extension; |
18 class ExtensionTtsPlatformImpl; | 17 class ExtensionTtsPlatformImpl; |
| 18 class Profile; |
| 19 |
| 20 namespace base { |
| 21 class DictionaryValue; |
19 class ListValue; | 22 class ListValue; |
20 class Profile; | |
21 class Value; | 23 class Value; |
22 | 24 } |
23 | 25 |
24 // Events sent back from the TTS engine indicating the progress. | 26 // Events sent back from the TTS engine indicating the progress. |
25 enum TtsEventType { | 27 enum TtsEventType { |
26 TTS_EVENT_START, | 28 TTS_EVENT_START, |
27 TTS_EVENT_END, | 29 TTS_EVENT_END, |
28 TTS_EVENT_WORD, | 30 TTS_EVENT_WORD, |
29 TTS_EVENT_SENTENCE, | 31 TTS_EVENT_SENTENCE, |
30 TTS_EVENT_MARKER, | 32 TTS_EVENT_MARKER, |
31 TTS_EVENT_INTERRUPTED, | 33 TTS_EVENT_INTERRUPTED, |
32 TTS_EVENT_CANCELLED, | 34 TTS_EVENT_CANCELLED, |
(...skipping 27 matching lines...) Expand all Loading... |
60 int char_index, | 62 int char_index, |
61 const std::string& error_message); | 63 const std::string& error_message); |
62 | 64 |
63 // Finish an utterance without sending an event to the delegate. | 65 // Finish an utterance without sending an event to the delegate. |
64 void Finish(); | 66 void Finish(); |
65 | 67 |
66 // Getters and setters for the text to speak and other speech options. | 68 // Getters and setters for the text to speak and other speech options. |
67 void set_text(const std::string& text) { text_ = text; } | 69 void set_text(const std::string& text) { text_ = text; } |
68 const std::string& text() const { return text_; } | 70 const std::string& text() const { return text_; } |
69 | 71 |
70 void set_options(const Value* options); | 72 void set_options(const base::Value* options); |
71 const Value* options() const { return options_.get(); } | 73 const base::Value* options() const { return options_.get(); } |
72 | 74 |
73 void set_src_extension_id(const std::string& src_extension_id) { | 75 void set_src_extension_id(const std::string& src_extension_id) { |
74 src_extension_id_ = src_extension_id; | 76 src_extension_id_ = src_extension_id; |
75 } | 77 } |
76 const std::string& src_extension_id() { return src_extension_id_; } | 78 const std::string& src_extension_id() { return src_extension_id_; } |
77 | 79 |
78 void set_src_id(int src_id) { src_id_ = src_id; } | 80 void set_src_id(int src_id) { src_id_ = src_id; } |
79 int src_id() { return src_id_; } | 81 int src_id() { return src_id_; } |
80 | 82 |
81 void set_src_url(const GURL& src_url) { src_url_ = src_url; } | 83 void set_src_url(const GURL& src_url) { src_url_ = src_url; } |
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
144 | 146 |
145 // The id of the next utterance, so we can associate requests with | 147 // The id of the next utterance, so we can associate requests with |
146 // responses. | 148 // responses. |
147 static int next_utterance_id_; | 149 static int next_utterance_id_; |
148 | 150 |
149 // The text to speak. | 151 // The text to speak. |
150 std::string text_; | 152 std::string text_; |
151 | 153 |
152 // The full options arg passed to tts.speak, which may include fields | 154 // The full options arg passed to tts.speak, which may include fields |
153 // other than the ones we explicitly parse, below. | 155 // other than the ones we explicitly parse, below. |
154 scoped_ptr<Value> options_; | 156 scoped_ptr<base::Value> options_; |
155 | 157 |
156 // The extension ID of the extension that called speak() and should | 158 // The extension ID of the extension that called speak() and should |
157 // receive events. | 159 // receive events. |
158 std::string src_extension_id_; | 160 std::string src_extension_id_; |
159 | 161 |
160 // The source extension's ID of this utterance, so that it can associate | 162 // The source extension's ID of this utterance, so that it can associate |
161 // events with the appropriate callback. | 163 // events with the appropriate callback. |
162 int src_id_; | 164 int src_id_; |
163 | 165 |
164 // The URL of the page where the source extension called speak. | 166 // The URL of the page where the source extension called speak. |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
205 // the callback function, and in addition, completion and error events | 207 // the callback function, and in addition, completion and error events |
206 // trigger finishing the current utterance and starting the next one, if | 208 // trigger finishing the current utterance and starting the next one, if |
207 // any. | 209 // any. |
208 void OnTtsEvent(int utterance_id, | 210 void OnTtsEvent(int utterance_id, |
209 TtsEventType event_type, | 211 TtsEventType event_type, |
210 int char_index, | 212 int char_index, |
211 const std::string& error_message); | 213 const std::string& error_message); |
212 | 214 |
213 // Return a list of all available voices, including the native voice, | 215 // Return a list of all available voices, including the native voice, |
214 // if supported, and all voices registered by extensions. | 216 // if supported, and all voices registered by extensions. |
215 ListValue* GetVoices(Profile* profile); | 217 base::ListValue* GetVoices(Profile* profile); |
216 | 218 |
217 // For unit testing. | 219 // For unit testing. |
218 void SetPlatformImpl(ExtensionTtsPlatformImpl* platform_impl); | 220 void SetPlatformImpl(ExtensionTtsPlatformImpl* platform_impl); |
219 int QueueSize(); | 221 int QueueSize(); |
220 | 222 |
221 private: | 223 private: |
222 ExtensionTtsController(); | 224 ExtensionTtsController(); |
223 virtual ~ExtensionTtsController(); | 225 virtual ~ExtensionTtsController(); |
224 | 226 |
225 // Get the platform TTS implementation (or injected mock). | 227 // Get the platform TTS implementation (or injected mock). |
(...skipping 21 matching lines...) Expand all Loading... |
247 std::queue<Utterance*> utterance_queue_; | 249 std::queue<Utterance*> utterance_queue_; |
248 | 250 |
249 // A pointer to the platform implementation of text-to-speech, for | 251 // A pointer to the platform implementation of text-to-speech, for |
250 // dependency injection. | 252 // dependency injection. |
251 ExtensionTtsPlatformImpl* platform_impl_; | 253 ExtensionTtsPlatformImpl* platform_impl_; |
252 | 254 |
253 DISALLOW_COPY_AND_ASSIGN(ExtensionTtsController); | 255 DISALLOW_COPY_AND_ASSIGN(ExtensionTtsController); |
254 }; | 256 }; |
255 | 257 |
256 #endif // CHROME_BROWSER_EXTENSIONS_EXTENSION_TTS_API_CONTROLLER_H_ | 258 #endif // CHROME_BROWSER_EXTENSIONS_EXTENSION_TTS_API_CONTROLLER_H_ |
OLD | NEW |