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); |
+} |
+ |