| Index: chrome/browser/chromeos/accessibility/speech_monitor.cc
|
| diff --git a/chrome/browser/chromeos/accessibility/speech_monitor.cc b/chrome/browser/chromeos/accessibility/speech_monitor.cc
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..dabc8d74f5ea1bb65db21cb1e5652564b5e0c9e2
|
| --- /dev/null
|
| +++ b/chrome/browser/chromeos/accessibility/speech_monitor.cc
|
| @@ -0,0 +1,81 @@
|
| +// Copyright 2014 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +#include "chrome/browser/chromeos/accessibility/speech_monitor.h"
|
| +
|
| +namespace chromeos {
|
| +
|
| +namespace {
|
| +const char kChromeVoxEnabledMessage[] = "chrome vox spoken feedback is ready";
|
| +} // anonymous namespace
|
| +
|
| +SpeechMonitor::SpeechMonitor() {
|
| + TtsController::GetInstance()->SetPlatformImpl(this);
|
| +}
|
| +
|
| +SpeechMonitor::~SpeechMonitor() {
|
| + TtsController::GetInstance()->SetPlatformImpl(TtsPlatformImpl::GetInstance());
|
| +}
|
| +
|
| +std::string SpeechMonitor::GetNextUtterance() {
|
| + if (utterance_queue_.empty()) {
|
| + loop_runner_ = new content::MessageLoopRunner();
|
| + loop_runner_->Run();
|
| + loop_runner_ = NULL;
|
| + }
|
| + std::string result = utterance_queue_.front();
|
| + utterance_queue_.pop_front();
|
| + return result;
|
| +}
|
| +
|
| +bool SpeechMonitor::SkipChromeVoxEnabledMessage() {
|
| + return GetNextUtterance() == kChromeVoxEnabledMessage;
|
| +}
|
| +
|
| +bool SpeechMonitor::PlatformImplAvailable() {
|
| + return true;
|
| +}
|
| +
|
| +bool SpeechMonitor::Speak(
|
| + int utterance_id,
|
| + const std::string& utterance,
|
| + const std::string& lang,
|
| + const VoiceData& voice,
|
| + const UtteranceContinuousParameters& params) {
|
| + TtsController::GetInstance()->OnTtsEvent(
|
| + utterance_id,
|
| + TTS_EVENT_END,
|
| + static_cast<int>(utterance.size()),
|
| + std::string());
|
| + return true;
|
| +}
|
| +
|
| +bool SpeechMonitor::StopSpeaking() {
|
| + return true;
|
| +}
|
| +
|
| +bool SpeechMonitor::IsSpeaking() {
|
| + return false;
|
| +}
|
| +
|
| +void SpeechMonitor::GetVoices(std::vector<VoiceData>* out_voices) {
|
| + out_voices->push_back(VoiceData());
|
| + VoiceData& voice = out_voices->back();
|
| + voice.native = true;
|
| + voice.name = "SpeechMonitor";
|
| + voice.events.insert(TTS_EVENT_END);
|
| +}
|
| +
|
| +std::string SpeechMonitor::error() {
|
| + return "";
|
| +}
|
| +
|
| +void SpeechMonitor::WillSpeakUtteranceWithVoice(const Utterance* utterance,
|
| + const VoiceData& voice_data) {
|
| + utterance_queue_.push_back(utterance->text());
|
| + if (loop_runner_.get())
|
| + loop_runner_->Quit();
|
| +}
|
| +
|
| +} // namespace chromeos
|
|
|