Index: chrome/browser/speech/extension_api/tts_engine_extension_api.cc |
diff --git a/chrome/browser/speech/extension_api/tts_engine_extension_api.cc b/chrome/browser/speech/extension_api/tts_engine_extension_api.cc |
index 4c9b8d55efb89dc177fcb9e011085dee6364687b..624c7ee4c56c6a33cfed8db484f514bf68eace3f 100644 |
--- a/chrome/browser/speech/extension_api/tts_engine_extension_api.cc |
+++ b/chrome/browser/speech/extension_api/tts_engine_extension_api.cc |
@@ -25,6 +25,8 @@ namespace constants = tts_extension_api_constants; |
namespace tts_engine_events { |
const char kOnSpeak[] = "ttsEngine.onSpeak"; |
const char kOnStop[] = "ttsEngine.onStop"; |
+const char kOnPause[] = "ttsEngine.onPause"; |
+const char kOnResume[] = "ttsEngine.onResume"; |
}; // namespace tts_engine_events |
void GetExtensionVoices(Profile* profile, std::vector<VoiceData>* out_voices) { |
@@ -131,6 +133,24 @@ void ExtensionTtsEngineStop(Utterance* utterance) { |
DispatchEventToExtension(utterance->extension_id(), event.Pass()); |
} |
+void ExtensionTtsEnginePause(Utterance* utterance) { |
+ scoped_ptr<ListValue> args(new ListValue()); |
+ scoped_ptr<extensions::Event> event(new extensions::Event( |
+ tts_engine_events::kOnPause, args.Pass())); |
+ event->restrict_to_profile = utterance->profile(); |
+ extensions::ExtensionSystem::Get(utterance->profile())->event_router()-> |
+ DispatchEventToExtension(utterance->extension_id(), event.Pass()); |
+} |
+ |
+void ExtensionTtsEngineResume(Utterance* utterance) { |
+ scoped_ptr<ListValue> args(new ListValue()); |
+ scoped_ptr<extensions::Event> event(new extensions::Event( |
+ tts_engine_events::kOnResume, args.Pass())); |
+ event->restrict_to_profile = utterance->profile(); |
+ extensions::ExtensionSystem::Get(utterance->profile())->event_router()-> |
+ DispatchEventToExtension(utterance->extension_id(), event.Pass()); |
not at google - send to devlin
2013/05/13 14:46:53
Consider sending a warning to the console of the t
dmazzoni
2013/05/14 16:50:27
You were thinking of UIThreadExtensionFunction::Wr
|
+} |
+ |
bool ExtensionTtsEngineSendTtsEventFunction::RunImpl() { |
int utterance_id; |
std::string error_message; |
@@ -192,6 +212,12 @@ bool ExtensionTtsEngineSendTtsEventFunction::RunImpl() { |
event->GetString(constants::kErrorMessageKey, &error_message); |
controller->OnTtsEvent( |
utterance_id, TTS_EVENT_ERROR, char_index, error_message); |
+ } else if (event_type == constants::kEventTypePause) { |
+ controller->OnTtsEvent( |
+ utterance_id, TTS_EVENT_PAUSE, char_index, std::string()); |
+ } else if (event_type == constants::kEventTypeResume) { |
+ controller->OnTtsEvent( |
+ utterance_id, TTS_EVENT_RESUME, char_index, std::string()); |
} else { |
EXTENSION_FUNCTION_VALIDATE(false); |
} |