1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "chrome/browser/chromeos/accessibility/speech_monitor.h"
10 const char kChromeVoxEnabledMessage
[] = "chrome vox spoken feedback is ready";
11 } // anonymous namespace
13 SpeechMonitor::SpeechMonitor() {
14 TtsController::GetInstance()->SetPlatformImpl(this);
17 SpeechMonitor::~SpeechMonitor() {
18 TtsController::GetInstance()->SetPlatformImpl(TtsPlatformImpl::GetInstance());
21 std::string
SpeechMonitor::GetNextUtterance() {
22 if (utterance_queue_
.empty()) {
23 loop_runner_
= new content::MessageLoopRunner();
27 std::string result
= utterance_queue_
.front();
28 utterance_queue_
.pop_front();
32 bool SpeechMonitor::SkipChromeVoxEnabledMessage() {
34 if (utterance_queue_
.empty()) {
35 loop_runner_
= new content::MessageLoopRunner();
39 std::string result
= utterance_queue_
.front();
40 utterance_queue_
.pop_front();
41 if (result
== kChromeVoxEnabledMessage
)
47 bool SpeechMonitor::PlatformImplAvailable() {
51 bool SpeechMonitor::Speak(
53 const std::string
& utterance
,
54 const std::string
& lang
,
55 const VoiceData
& voice
,
56 const UtteranceContinuousParameters
& params
) {
57 TtsController::GetInstance()->OnTtsEvent(
60 static_cast<int>(utterance
.size()),
65 bool SpeechMonitor::StopSpeaking() {
69 bool SpeechMonitor::IsSpeaking() {
73 void SpeechMonitor::GetVoices(std::vector
<VoiceData
>* out_voices
) {
74 out_voices
->push_back(VoiceData());
75 VoiceData
& voice
= out_voices
->back();
77 voice
.name
= "SpeechMonitor";
78 voice
.events
.insert(TTS_EVENT_END
);
81 std::string
SpeechMonitor::error() {
85 void SpeechMonitor::WillSpeakUtteranceWithVoice(const Utterance
* utterance
,
86 const VoiceData
& voice_data
) {
87 VLOG(0) << "Speaking " << utterance
->text();
88 utterance_queue_
.push_back(utterance
->text());
89 if (loop_runner_
.get())
93 } // namespace chromeos