Index: content/browser/speech/speech_recognition_manager_impl.cc |
diff --git a/content/browser/speech/speech_recognition_manager_impl.cc b/content/browser/speech/speech_recognition_manager_impl.cc |
index aff3f082b93f0588a600a9ed160a8ff7b3bf427a..e11d3cda68a2cc03f016a3450cab9378d9784d02 100644 |
--- a/content/browser/speech/speech_recognition_manager_impl.cc |
+++ b/content/browser/speech/speech_recognition_manager_impl.cc |
@@ -8,14 +8,15 @@ |
#include "content/browser/browser_main_loop.h" |
#include "content/browser/renderer_host/render_view_host_impl.h" |
#include "content/browser/speech/input_tag_speech_dispatcher_host.h" |
-#include "content/browser/speech/speech_recognizer_impl.h" |
#include "content/public/browser/browser_thread.h" |
#include "content/public/browser/content_browser_client.h" |
+#include "content/public/browser/speech_recognizer.h" |
#include "content/public/browser/render_view_host_delegate.h" |
#include "content/public/browser/resource_context.h" |
#include "content/public/browser/speech_recognition_manager_delegate.h" |
#include "content/public/browser/speech_recognition_preferences.h" |
#include "content/public/common/view_type.h" |
+#include "media/audio/audio_manager.h" |
using content::BrowserMainLoop; |
using content::BrowserThread; |
@@ -30,16 +31,17 @@ SpeechRecognitionManager* SpeechRecognitionManager::GetInstance() { |
namespace speech { |
struct SpeechRecognitionManagerImpl::SpeechRecognitionParams { |
- SpeechRecognitionParams(InputTagSpeechDispatcherHost* delegate, |
- int caller_id, |
- int render_process_id, |
- int render_view_id, |
- const gfx::Rect& element_rect, |
- const std::string& language, |
- const std::string& grammar, |
- const std::string& origin_url, |
- net::URLRequestContextGetter* context_getter, |
- content::SpeechRecognitionPreferences* recognition_prefs) |
+ SpeechRecognitionParams( |
+ InputTagSpeechDispatcherHost* delegate, |
+ int caller_id, |
+ int render_process_id, |
+ int render_view_id, |
+ const gfx::Rect& element_rect, |
+ const std::string& language, |
+ const std::string& grammar, |
+ const std::string& origin_url, |
+ net::URLRequestContextGetter* context_getter, |
+ content::SpeechRecognitionPreferences* recognition_prefs) |
: delegate(delegate), |
caller_id(caller_id), |
render_process_id(render_process_id), |
@@ -179,7 +181,7 @@ void SpeechRecognitionManagerImpl::ProceedStartingRecognition( |
Request* request = &requests_[params.caller_id]; |
request->delegate = params.delegate; |
- request->recognizer = new SpeechRecognizerImpl( |
+ request->recognizer = content::SpeechRecognizer::Create( |
this, params.caller_id, params.language, params.grammar, |
params.context_getter, params.recognition_prefs->FilterProfanities(), |
request_info_, can_report_metrics_ ? params.origin_url : ""); |
@@ -215,7 +217,7 @@ void SpeechRecognitionManagerImpl::StartRecognitionForRequest(int caller_id) { |
} else { |
recording_caller_id_ = caller_id; |
requests_[caller_id].is_active = true; |
- requests_[caller_id].recognizer->StartRecording(); |
+ requests_[caller_id].recognizer->StartRecognition(); |
if (delegate_) |
delegate_->ShowWarmUp(caller_id); |
} |
@@ -247,7 +249,7 @@ void SpeechRecognitionManagerImpl::FocusLostForRequest(int caller_id) { |
void SpeechRecognitionManagerImpl::CancelRecognition(int caller_id) { |
DCHECK(HasPendingRequest(caller_id)); |
if (requests_[caller_id].is_active) |
- requests_[caller_id].recognizer->CancelRecognition(); |
+ requests_[caller_id].recognizer->AbortRecognition(); |
requests_.erase(caller_id); |
if (recording_caller_id_ == caller_id) |
recording_caller_id_ = 0; |
@@ -274,17 +276,19 @@ void SpeechRecognitionManagerImpl::StopRecording(int caller_id) { |
if (!HasPendingRequest(caller_id)) |
return; |
- requests_[caller_id].recognizer->StopRecording(); |
+ requests_[caller_id].recognizer->StopAudioCapture(); |
} |
-void SpeechRecognitionManagerImpl::SetRecognitionResult( |
+// -------- SpeechRecognitionEventListener interface implementation. --------- |
+ |
+void SpeechRecognitionManagerImpl::OnRecognitionResult( |
int caller_id, const content::SpeechRecognitionResult& result) { |
DCHECK(HasPendingRequest(caller_id)); |
GetDelegate(caller_id)->SetRecognitionResult(caller_id, result); |
} |
-void SpeechRecognitionManagerImpl::DidCompleteRecording(int caller_id) { |
- DCHECK(recording_caller_id_ == caller_id); |
+void SpeechRecognitionManagerImpl::OnAudioEnd(int caller_id) { |
+ DCHECK_EQ(recording_caller_id_, caller_id); |
DCHECK(HasPendingRequest(caller_id)); |
recording_caller_id_ = 0; |
GetDelegate(caller_id)->DidCompleteRecording(caller_id); |
@@ -292,21 +296,22 @@ void SpeechRecognitionManagerImpl::DidCompleteRecording(int caller_id) { |
delegate_->ShowRecognizing(caller_id); |
} |
-void SpeechRecognitionManagerImpl::DidCompleteRecognition(int caller_id) { |
+void SpeechRecognitionManagerImpl::OnRecognitionEnd(int caller_id, |
+ bool success) { |
GetDelegate(caller_id)->DidCompleteRecognition(caller_id); |
requests_.erase(caller_id); |
if (delegate_) |
delegate_->DoClose(caller_id); |
} |
-void SpeechRecognitionManagerImpl::DidStartReceivingSpeech(int caller_id) { |
+void SpeechRecognitionManagerImpl::OnSoundStart(int caller_id) { |
} |
-void SpeechRecognitionManagerImpl::DidStopReceivingSpeech(int caller_id) { |
+void SpeechRecognitionManagerImpl::OnSoundEnd(int caller_id) { |
} |
-void SpeechRecognitionManagerImpl::OnRecognizerError( |
- int caller_id, content::SpeechRecognitionErrorCode error) { |
+void SpeechRecognitionManagerImpl::OnRecognitionError( |
+ int caller_id, const content::SpeechRecognitionErrorCode& error) { |
if (caller_id == recording_caller_id_) |
recording_caller_id_ = 0; |
requests_[caller_id].is_active = false; |
@@ -314,21 +319,24 @@ void SpeechRecognitionManagerImpl::OnRecognizerError( |
delegate_->ShowRecognizerError(caller_id, error); |
} |
-void SpeechRecognitionManagerImpl::DidStartReceivingAudio(int caller_id) { |
+void SpeechRecognitionManagerImpl::OnAudioStart(int caller_id) { |
DCHECK(HasPendingRequest(caller_id)); |
- DCHECK(recording_caller_id_ == caller_id); |
+ DCHECK_EQ(recording_caller_id_, caller_id); |
if (delegate_) |
delegate_->ShowRecording(caller_id); |
} |
-void SpeechRecognitionManagerImpl::DidCompleteEnvironmentEstimation( |
+void SpeechRecognitionManagerImpl::OnRecognitionStart(int caller_id) { |
+} |
+ |
+void SpeechRecognitionManagerImpl::OnEnvironmentEstimationComplete( |
int caller_id) { |
DCHECK(HasPendingRequest(caller_id)); |
- DCHECK(recording_caller_id_ == caller_id); |
+ DCHECK_EQ(recording_caller_id_, caller_id); |
} |
-void SpeechRecognitionManagerImpl::SetInputVolume(int caller_id, float volume, |
- float noise_volume) { |
+void SpeechRecognitionManagerImpl::OnAudioLevelsChanged( |
+ int caller_id, float volume, float noise_volume) { |
DCHECK(HasPendingRequest(caller_id)); |
DCHECK_EQ(recording_caller_id_, caller_id); |
if (delegate_) |