| Index: chrome/browser/speech/tts_controller.cc
|
| diff --git a/chrome/browser/speech/tts_controller.cc b/chrome/browser/speech/tts_controller.cc
|
| index 74b45f411f4544518fba5dfc34edbbf6e71a7b7a..369914546cb1ca48b789076db9056137f76706b6 100644
|
| --- a/chrome/browser/speech/tts_controller.cc
|
| +++ b/chrome/browser/speech/tts_controller.cc
|
| @@ -157,6 +157,7 @@ void TtsController::SpeakNow(Utterance* utterance) {
|
| voice.native = true;
|
|
|
| if (!voice.native) {
|
| +#if !defined(OS_ANDROID)
|
| DCHECK(!voice.extension_id.empty());
|
| current_utterance_ = utterance;
|
| utterance->set_extension_id(voice.extension_id);
|
| @@ -169,6 +170,7 @@ void TtsController::SpeakNow(Utterance* utterance) {
|
| current_utterance_ = NULL;
|
| SpeakNextUtterance();
|
| }
|
| +#endif
|
| } else {
|
| GetPlatformImpl()->clear_error();
|
| bool success = GetPlatformImpl()->Speak(
|
| @@ -198,7 +200,9 @@ void TtsController::SpeakNow(Utterance* utterance) {
|
|
|
| void TtsController::Stop() {
|
| if (current_utterance_ && !current_utterance_->extension_id().empty()) {
|
| +#if !defined(OS_ANDROID)
|
| ExtensionTtsEngineStop(current_utterance_);
|
| +#endif
|
| } else {
|
| GetPlatformImpl()->clear_error();
|
| GetPlatformImpl()->StopSpeaking();
|
| @@ -231,8 +235,10 @@ void TtsController::OnTtsEvent(int utterance_id,
|
|
|
| void TtsController::GetVoices(Profile* profile,
|
| std::vector<VoiceData>* out_voices) {
|
| +#if !defined(OS_ANDROID)
|
| if (profile)
|
| GetExtensionVoices(profile, out_voices);
|
| +#endif
|
|
|
| TtsPlatformImpl* platform_impl = GetPlatformImpl();
|
| if (platform_impl && platform_impl->PlatformImplAvailable())
|
| @@ -354,3 +360,20 @@ int TtsController::GetMatchingVoice(
|
| return -1;
|
| }
|
|
|
| +void TtsController::VoicesChanged() {
|
| + for (std::set<VoicesChangedDelegate*>::iterator iter =
|
| + voices_changed_delegates_.begin();
|
| + iter != voices_changed_delegates_.end(); ++iter) {
|
| + (*iter)->OnVoicesChanged();
|
| + }
|
| +}
|
| +
|
| +void TtsController::AddVoicesChangedDelegate(VoicesChangedDelegate* delegate) {
|
| + voices_changed_delegates_.insert(delegate);
|
| +}
|
| +
|
| +void TtsController::RemoveVoicesChangedDelegate(
|
| + VoicesChangedDelegate* delegate) {
|
| + voices_changed_delegates_.erase(delegate);
|
| +}
|
| +
|
|
|