Index: chrome/browser/speech/tts_controller.cc |
diff --git a/chrome/browser/speech/tts_controller.cc b/chrome/browser/speech/tts_controller.cc |
index d7fb66e1e63bd4c78bd6ff20acc8081211aa6e57..73b094e64930de976b4e84f578efdb64a89f8094 100644 |
--- a/chrome/browser/speech/tts_controller.cc |
+++ b/chrome/browser/speech/tts_controller.cc |
@@ -156,6 +156,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); |
@@ -168,6 +169,7 @@ void TtsController::SpeakNow(Utterance* utterance) { |
current_utterance_ = NULL; |
SpeakNextUtterance(); |
} |
+#endif |
} else { |
GetPlatformImpl()->clear_error(); |
bool success = GetPlatformImpl()->Speak( |
@@ -197,7 +199,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(); |
@@ -230,8 +234,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()) |
@@ -353,3 +359,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); |
+} |
+ |