| Index: chrome/browser/speech/extension_api/tts_extension_api.cc
|
| diff --git a/chrome/browser/speech/extension_api/tts_extension_api.cc b/chrome/browser/speech/extension_api/tts_extension_api.cc
|
| index 117bf7324030448712175af2fb24027acb04b579..413742116f7e562508577abc1a1c34d74eeacbe6 100644
|
| --- a/chrome/browser/speech/extension_api/tts_extension_api.cc
|
| +++ b/chrome/browser/speech/extension_api/tts_extension_api.cc
|
| @@ -40,6 +40,10 @@ const char *TtsEventTypeToString(TtsEventType event_type) {
|
| return constants::kEventTypeCancelled;
|
| case TTS_EVENT_ERROR:
|
| return constants::kEventTypeError;
|
| + case TTS_EVENT_PAUSE:
|
| + return constants::kEventTypePause;
|
| + case TTS_EVENT_RESUME:
|
| + return constants::kEventTypeResume;
|
| default:
|
| NOTREACHED();
|
| return constants::kEventTypeError;
|
| @@ -63,6 +67,10 @@ TtsEventType TtsEventTypeFromString(const std::string& str) {
|
| return TTS_EVENT_CANCELLED;
|
| if (str == constants::kEventTypeError)
|
| return TTS_EVENT_ERROR;
|
| + if (str == constants::kEventTypePause)
|
| + return TTS_EVENT_PAUSE;
|
| + if (str == constants::kEventTypeResume)
|
| + return TTS_EVENT_RESUME;
|
|
|
| NOTREACHED();
|
| return TTS_EVENT_ERROR;
|
| @@ -274,6 +282,16 @@ bool TtsStopSpeakingFunction::RunImpl() {
|
| return true;
|
| }
|
|
|
| +bool TtsPauseFunction::RunImpl() {
|
| + TtsController::GetInstance()->Pause();
|
| + return true;
|
| +}
|
| +
|
| +bool TtsResumeFunction::RunImpl() {
|
| + TtsController::GetInstance()->Resume();
|
| + return true;
|
| +}
|
| +
|
| bool TtsIsSpeakingFunction::RunImpl() {
|
| SetResult(Value::CreateBooleanValue(
|
| TtsController::GetInstance()->IsSpeaking()));
|
| @@ -301,35 +319,8 @@ bool TtsGetVoicesFunction::RunImpl() {
|
| ListValue* event_types = new ListValue();
|
| for (std::set<TtsEventType>::iterator iter = voice.events.begin();
|
| iter != voice.events.end(); ++iter) {
|
| - const char* event_name_constant = NULL;
|
| - switch (*iter) {
|
| - case TTS_EVENT_START:
|
| - event_name_constant = constants::kEventTypeStart;
|
| - break;
|
| - case TTS_EVENT_END:
|
| - event_name_constant = constants::kEventTypeEnd;
|
| - break;
|
| - case TTS_EVENT_WORD:
|
| - event_name_constant = constants::kEventTypeWord;
|
| - break;
|
| - case TTS_EVENT_SENTENCE:
|
| - event_name_constant = constants::kEventTypeSentence;
|
| - break;
|
| - case TTS_EVENT_MARKER:
|
| - event_name_constant = constants::kEventTypeMarker;
|
| - break;
|
| - case TTS_EVENT_INTERRUPTED:
|
| - event_name_constant = constants::kEventTypeInterrupted;
|
| - break;
|
| - case TTS_EVENT_CANCELLED:
|
| - event_name_constant = constants::kEventTypeCancelled;
|
| - break;
|
| - case TTS_EVENT_ERROR:
|
| - event_name_constant = constants::kEventTypeError;
|
| - break;
|
| - }
|
| - if (event_name_constant)
|
| - event_types->Append(Value::CreateStringValue(event_name_constant));
|
| + const char* event_name_constant = TtsEventTypeToString(*iter);
|
| + event_types->Append(Value::CreateStringValue(event_name_constant));
|
| }
|
| result_voice->Set(constants::kEventTypesKey, event_types);
|
|
|
| @@ -353,6 +344,8 @@ TtsAPI::TtsAPI(Profile* profile) {
|
| registry->RegisterFunction<TtsIsSpeakingFunction>();
|
| registry->RegisterFunction<TtsSpeakFunction>();
|
| registry->RegisterFunction<TtsStopSpeakingFunction>();
|
| + registry->RegisterFunction<TtsPauseFunction>();
|
| + registry->RegisterFunction<TtsResumeFunction>();
|
| }
|
|
|
| TtsAPI::~TtsAPI() {
|
|
|