Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1833)

Unified Diff: content/browser/speech/speech_input_dispatcher_host.cc

Issue 9568002: Renamed speech input implementation from to speech_recognition_*. The namespace has been renamed fr… (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Rebased from master. Created 8 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/browser/speech/speech_input_dispatcher_host.cc
diff --git a/content/browser/speech/speech_input_dispatcher_host.cc b/content/browser/speech/speech_input_dispatcher_host.cc
deleted file mode 100644
index 38839690188fea0b2e5ca0fa494a14109b52a511..0000000000000000000000000000000000000000
--- a/content/browser/speech/speech_input_dispatcher_host.cc
+++ /dev/null
@@ -1,239 +0,0 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "content/browser/speech/speech_input_dispatcher_host.h"
-
-#include "base/lazy_instance.h"
-#include "content/browser/speech/speech_input_manager_impl.h"
-#include "content/browser/speech/speech_recognizer_impl.h"
-#include "content/common/speech_input_messages.h"
-#include "content/public/browser/speech_input_preferences.h"
-
-using content::BrowserThread;
-
-namespace speech_input {
-
-//----------------------------- SpeechInputCallers -----------------------------
-
-// A singleton class to map the tuple
-// (render-process-id, render-view-id, requestid) to a single ID which is passed
-// through rest of the speech code.
-class SpeechInputDispatcherHost::SpeechInputCallers {
- public:
- // Creates a new ID for a given tuple.
- int CreateId(int render_process_id, int render_view_id, int request_id);
-
- // Returns the ID for a tuple assuming the ID was created earlier.
- int GetId(int render_process_id, int render_view_id, int request_id);
-
- // Removes the ID and associated tuple from the map.
- void RemoveId(int id);
-
- // Getters for the various tuple elements for the given ID.
- int render_process_id(int id);
- int render_view_id(int id);
- int request_id(int id);
-
- private:
- struct CallerInfo {
- int render_process_id;
- int render_view_id;
- int request_id;
- };
- friend struct base::DefaultLazyInstanceTraits<SpeechInputCallers>;
-
- SpeechInputCallers();
-
- std::map<int, CallerInfo> callers_;
- int next_id_;
-};
-
-static base::LazyInstance<SpeechInputDispatcherHost::SpeechInputCallers>
- g_speech_input_callers = LAZY_INSTANCE_INITIALIZER;
-
-SpeechInputDispatcherHost::SpeechInputCallers::SpeechInputCallers()
- : next_id_(1) {
-}
-
-int SpeechInputDispatcherHost::SpeechInputCallers::GetId(int render_process_id,
- int render_view_id,
- int request_id) {
- for (std::map<int, CallerInfo>::iterator it = callers_.begin();
- it != callers_.end(); it++) {
- const CallerInfo& item = it->second;
- if (item.render_process_id == render_process_id &&
- item.render_view_id == render_view_id &&
- item.request_id == request_id) {
- return it->first;
- }
- }
-
- // Not finding an entry here is valid since a cancel/stop may have been issued
- // by the renderer and before it received our response the user may have
- // clicked the button to stop again. The caller of this method should take
- // care of this case.
- return 0;
-}
-
-int SpeechInputDispatcherHost::SpeechInputCallers::CreateId(
- int render_process_id,
- int render_view_id,
- int request_id) {
- CallerInfo info;
- info.render_process_id = render_process_id;
- info.render_view_id = render_view_id;
- info.request_id = request_id;
- callers_[next_id_] = info;
- return next_id_++;
-}
-
-void SpeechInputDispatcherHost::SpeechInputCallers::RemoveId(int id) {
- callers_.erase(id);
-}
-
-int SpeechInputDispatcherHost::SpeechInputCallers::render_process_id(int id) {
- return callers_[id].render_process_id;
-}
-
-int SpeechInputDispatcherHost::SpeechInputCallers::render_view_id(int id) {
- return callers_[id].render_view_id;
-}
-
-int SpeechInputDispatcherHost::SpeechInputCallers::request_id(int id) {
- return callers_[id].request_id;
-}
-
-//-------------------------- SpeechInputDispatcherHost -------------------------
-
-SpeechInputManagerImpl* SpeechInputDispatcherHost::manager_;
-
-void SpeechInputDispatcherHost::set_manager(SpeechInputManagerImpl* manager) {
- manager_ = manager;
-}
-
-SpeechInputDispatcherHost::SpeechInputDispatcherHost(
- int render_process_id,
- net::URLRequestContextGetter* context_getter,
- content::SpeechInputPreferences* speech_input_preferences,
- AudioManager* audio_manager)
- : render_process_id_(render_process_id),
- may_have_pending_requests_(false),
- context_getter_(context_getter),
- speech_input_preferences_(speech_input_preferences),
- audio_manager_(audio_manager) {
- // This is initialized by Browser. Do not add any non-trivial
- // initialization here, instead do it lazily when required (e.g. see the
- // method |manager()|) or add an Init() method.
-}
-
-SpeechInputDispatcherHost::~SpeechInputDispatcherHost() {
- // If the renderer crashed for some reason or if we didn't receive a proper
- // Cancel/Stop call for an existing session, cancel such active sessions now.
- // We first check if this dispatcher received any speech IPC requst so that
- // we don't end up creating the speech input manager for web pages which don't
- // use speech input.
- if (may_have_pending_requests_)
- manager()->CancelAllRequestsWithDelegate(this);
-}
-
-SpeechInputManagerImpl* SpeechInputDispatcherHost::manager() {
- if (manager_)
- return manager_;
-#if defined(ENABLE_INPUT_SPEECH)
- return SpeechInputManagerImpl::GetInstance();
-#else
- return NULL;
-#endif
-}
-
-bool SpeechInputDispatcherHost::OnMessageReceived(
- const IPC::Message& message, bool* message_was_ok) {
- DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
- bool handled = true;
- IPC_BEGIN_MESSAGE_MAP_EX(SpeechInputDispatcherHost, message,
- *message_was_ok)
- IPC_MESSAGE_HANDLER(SpeechInputHostMsg_StartRecognition,
- OnStartRecognition)
- IPC_MESSAGE_HANDLER(SpeechInputHostMsg_CancelRecognition,
- OnCancelRecognition)
- IPC_MESSAGE_HANDLER(SpeechInputHostMsg_StopRecording,
- OnStopRecording)
- IPC_MESSAGE_UNHANDLED(handled = false)
- IPC_END_MESSAGE_MAP()
- if (handled)
- may_have_pending_requests_ = true;
- return handled;
-}
-
-void SpeechInputDispatcherHost::OnStartRecognition(
- const SpeechInputHostMsg_StartRecognition_Params &params) {
- DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
- int caller_id = g_speech_input_callers.Get().CreateId(
- render_process_id_, params.render_view_id, params.request_id);
- manager()->StartRecognition(this, caller_id,
- render_process_id_,
- params.render_view_id, params.element_rect,
- params.language, params.grammar,
- params.origin_url,
- context_getter_.get(),
- speech_input_preferences_.get());
-}
-
-void SpeechInputDispatcherHost::OnCancelRecognition(int render_view_id,
- int request_id) {
- int caller_id = g_speech_input_callers.Get().GetId(
- render_process_id_, render_view_id, request_id);
- if (caller_id) {
- manager()->CancelRecognition(caller_id);
- // Request sequence ended so remove mapping.
- g_speech_input_callers.Get().RemoveId(caller_id);
- }
-}
-
-void SpeechInputDispatcherHost::OnStopRecording(int render_view_id,
- int request_id) {
- int caller_id = g_speech_input_callers.Get().GetId(
- render_process_id_, render_view_id, request_id);
- if (caller_id)
- manager()->StopRecording(caller_id);
-}
-
-void SpeechInputDispatcherHost::SetRecognitionResult(
- int caller_id, const content::SpeechInputResult& result) {
- VLOG(1) << "SpeechInputDispatcherHost::SetRecognitionResult enter";
- DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
- int caller_render_view_id =
- g_speech_input_callers.Get().render_view_id(caller_id);
- int caller_request_id = g_speech_input_callers.Get().request_id(caller_id);
- Send(new SpeechInputMsg_SetRecognitionResult(caller_render_view_id,
- caller_request_id,
- result));
- VLOG(1) << "SpeechInputDispatcherHost::SetRecognitionResult exit";
-}
-
-void SpeechInputDispatcherHost::DidCompleteRecording(int caller_id) {
- VLOG(1) << "SpeechInputDispatcherHost::DidCompleteRecording enter";
- DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
- int caller_render_view_id =
- g_speech_input_callers.Get().render_view_id(caller_id);
- int caller_request_id = g_speech_input_callers.Get().request_id(caller_id);
- Send(new SpeechInputMsg_RecordingComplete(caller_render_view_id,
- caller_request_id));
- VLOG(1) << "SpeechInputDispatcherHost::DidCompleteRecording exit";
-}
-
-void SpeechInputDispatcherHost::DidCompleteRecognition(int caller_id) {
- VLOG(1) << "SpeechInputDispatcherHost::DidCompleteRecognition enter";
- DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
- int caller_render_view_id =
- g_speech_input_callers.Get().render_view_id(caller_id);
- int caller_request_id = g_speech_input_callers.Get().request_id(caller_id);
- Send(new SpeechInputMsg_RecognitionComplete(caller_render_view_id,
- caller_request_id));
- // Request sequence ended, so remove mapping.
- g_speech_input_callers.Get().RemoveId(caller_id);
- VLOG(1) << "SpeechInputDispatcherHost::DidCompleteRecognition exit";
-}
-
-} // namespace speech_input
« no previous file with comments | « content/browser/speech/speech_input_dispatcher_host.h ('k') | content/browser/speech/speech_input_manager_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698