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

Side by Side Diff: chrome/browser/speech/speech_input_extension_manager.cc

Issue 8818012: Remove the AudioManager singleton. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Set svn eol properties for a couple of files Created 9 years 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/speech/speech_input_extension_manager.h" 5 #include "chrome/browser/speech/speech_input_extension_manager.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/json/json_writer.h" 8 #include "base/json/json_writer.h"
9 #include "base/utf_string_conversions.h" 9 #include "base/utf_string_conversions.h"
10 #include "base/values.h" 10 #include "base/values.h"
11 #include "chrome/browser/extensions/extension_event_router.h" 11 #include "chrome/browser/extensions/extension_event_router.h"
12 #include "chrome/browser/extensions/extension_service.h" 12 #include "chrome/browser/extensions/extension_service.h"
13 #include "chrome/browser/prefs/pref_service.h" 13 #include "chrome/browser/prefs/pref_service.h"
14 #include "chrome/browser/profiles/profile.h" 14 #include "chrome/browser/profiles/profile.h"
15 #include "chrome/browser/profiles/profile_dependency_manager.h" 15 #include "chrome/browser/profiles/profile_dependency_manager.h"
16 #include "chrome/browser/profiles/profile_keyed_service.h" 16 #include "chrome/browser/profiles/profile_keyed_service.h"
17 #include "chrome/browser/profiles/profile_keyed_service_factory.h" 17 #include "chrome/browser/profiles/profile_keyed_service_factory.h"
18 #include "chrome/browser/speech/speech_input_extension_notification.h" 18 #include "chrome/browser/speech/speech_input_extension_notification.h"
19 #include "chrome/common/chrome_notification_types.h" 19 #include "chrome/common/chrome_notification_types.h"
20 #include "chrome/common/extensions/extension.h" 20 #include "chrome/common/extensions/extension.h"
21 #include "chrome/common/pref_names.h" 21 #include "chrome/common/pref_names.h"
22 #include "content/browser/resource_context.h"
22 #include "content/public/browser/browser_thread.h" 23 #include "content/public/browser/browser_thread.h"
23 #include "content/public/browser/notification_service.h" 24 #include "content/public/browser/notification_service.h"
24 #include "content/public/common/speech_input_result.h" 25 #include "content/public/common/speech_input_result.h"
25 26
26 using content::BrowserThread; 27 using content::BrowserThread;
27 using namespace speech_input; 28 using speech_input::SpeechRecognizer;
28 29
29 namespace { 30 namespace {
30 31
31 const char kErrorNoRecordingDeviceFound[] = "noRecordingDeviceFound"; 32 const char kErrorNoRecordingDeviceFound[] = "noRecordingDeviceFound";
32 const char kErrorRecordingDeviceInUse[] = "recordingDeviceInUse"; 33 const char kErrorRecordingDeviceInUse[] = "recordingDeviceInUse";
33 const char kErrorUnableToStart[] = "unableToStart"; 34 const char kErrorUnableToStart[] = "unableToStart";
34 const char kErrorRequestDenied[] = "requestDenied"; 35 const char kErrorRequestDenied[] = "requestDenied";
35 const char kErrorRequestInProgress[] = "requestInProgress"; 36 const char kErrorRequestInProgress[] = "requestInProgress";
36 const char kErrorInvalidOperation[] = "invalidOperation"; 37 const char kErrorInvalidOperation[] = "invalidOperation";
37 38
(...skipping 29 matching lines...) Expand all
67 SpeechInputExtensionManager* manager() const { return manager_.get(); } 68 SpeechInputExtensionManager* manager() const { return manager_.get(); }
68 69
69 private: 70 private:
70 // Methods from ProfileKeyedService. 71 // Methods from ProfileKeyedService.
71 virtual void Shutdown() OVERRIDE { 72 virtual void Shutdown() OVERRIDE {
72 manager()->ShutdownOnUIThread(); 73 manager()->ShutdownOnUIThread();
73 } 74 }
74 75
75 scoped_refptr<SpeechInputExtensionManager> manager_; 76 scoped_refptr<SpeechInputExtensionManager> manager_;
76 }; 77 };
77
78 } 78 }
79 79
80 // Factory for SpeechInputExtensionManagers as profile keyed services. 80 // Factory for SpeechInputExtensionManagers as profile keyed services.
81 class SpeechInputExtensionManager::Factory : public ProfileKeyedServiceFactory { 81 class SpeechInputExtensionManager::Factory : public ProfileKeyedServiceFactory {
82 public: 82 public:
83 static void Initialize(); 83 static void Initialize();
84 static Factory* GetInstance(); 84 static Factory* GetInstance();
85 85
86 SpeechInputExtensionManagerWrapper* GetForProfile(Profile* profile); 86 SpeechInputExtensionManagerWrapper* GetForProfile(Profile* profile);
87 87
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
144 speech_interface_(NULL) { 144 speech_interface_(NULL) {
145 registrar_.Add(this, chrome::NOTIFICATION_EXTENSION_UNLOADED, 145 registrar_.Add(this, chrome::NOTIFICATION_EXTENSION_UNLOADED,
146 content::Source<Profile>(profile_)); 146 content::Source<Profile>(profile_));
147 } 147 }
148 148
149 SpeechInputExtensionManager::~SpeechInputExtensionManager() { 149 SpeechInputExtensionManager::~SpeechInputExtensionManager() {
150 } 150 }
151 151
152 SpeechInputExtensionManager* SpeechInputExtensionManager::GetForProfile( 152 SpeechInputExtensionManager* SpeechInputExtensionManager::GetForProfile(
153 Profile* profile) { 153 Profile* profile) {
154 SpeechInputExtensionManagerWrapper *wrapper = 154 SpeechInputExtensionManagerWrapper* wrapper =
155 Factory::GetInstance()->GetForProfile(profile); 155 Factory::GetInstance()->GetForProfile(profile);
156 if (!wrapper) 156 if (!wrapper)
157 return NULL; 157 return NULL;
158 return wrapper->manager(); 158 return wrapper->manager();
159 } 159 }
160 160
161 void SpeechInputExtensionManager::InitializeFactory() { 161 void SpeechInputExtensionManager::InitializeFactory() {
162 Factory::Initialize(); 162 Factory::Initialize();
163 } 163 }
164 164
(...skipping 290 matching lines...) Expand 10 before | Expand all | Expand 10 after
455 ExtensionError details(extension_id, error); 455 ExtensionError details(extension_id, error);
456 content::NotificationService::current()->Notify( 456 content::NotificationService::current()->Notify(
457 chrome::NOTIFICATION_EXTENSION_SPEECH_INPUT_FAILED, 457 chrome::NOTIFICATION_EXTENSION_SPEECH_INPUT_FAILED,
458 content::Source<Profile>(profile_), 458 content::Source<Profile>(profile_),
459 content::Details<ExtensionError>(&details)); 459 content::Details<ExtensionError>(&details));
460 } 460 }
461 461
462 // Used for errors that are also reported via the onError event. 462 // Used for errors that are also reported via the onError event.
463 if (dispatch_event) { 463 if (dispatch_event) {
464 ListValue args; 464 ListValue args;
465 DictionaryValue *js_error = new DictionaryValue(); 465 DictionaryValue* js_error = new DictionaryValue();
466 args.Append(js_error); 466 args.Append(js_error);
467 js_error->SetString(kErrorCodeKey, error); 467 js_error->SetString(kErrorCodeKey, error);
468 std::string json_args; 468 std::string json_args;
469 base::JSONWriter::Write(&args, false, &json_args); 469 base::JSONWriter::Write(&args, false, &json_args);
470 DispatchEventToExtension(extension_id, 470 DispatchEventToExtension(extension_id,
471 kOnErrorEvent, json_args); 471 kOnErrorEvent, json_args);
472 } 472 }
473 } 473 }
474 474
475 bool SpeechInputExtensionManager::Start(const std::string& extension_id, 475 bool SpeechInputExtensionManager::Start(const std::string& extension_id,
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
539 base::Bind(&SpeechInputExtensionManager::DispatchError, this, 539 base::Bind(&SpeechInputExtensionManager::DispatchError, this,
540 std::string(kErrorRecordingDeviceInUse), false)); 540 std::string(kErrorRecordingDeviceInUse), false));
541 return; 541 return;
542 } 542 }
543 543
544 GetSpeechInputExtensionInterface()->StartRecording(this, context_getter, 544 GetSpeechInputExtensionInterface()->StartRecording(this, context_getter,
545 kSpeechCallerId, language, grammar, filter_profanities); 545 kSpeechCallerId, language, grammar, filter_profanities);
546 } 546 }
547 547
548 bool SpeechInputExtensionManager::HasAudioInputDevices() { 548 bool SpeechInputExtensionManager::HasAudioInputDevices() {
549 return AudioManager::GetAudioManager()->HasAudioInputDevices(); 549 return profile_->GetResourceContext().audio_manager()->HasAudioInputDevices();
550 } 550 }
551 551
552 bool SpeechInputExtensionManager::IsRecordingInProcess() { 552 bool SpeechInputExtensionManager::IsRecordingInProcess() {
553 // Thread-safe query. 553 // Thread-safe query.
554 return AudioManager::GetAudioManager()->IsRecordingInProcess(); 554 return profile_->GetResourceContext().audio_manager()->IsRecordingInProcess();
555 } 555 }
556 556
557 bool SpeechInputExtensionManager::IsRecording() { 557 bool SpeechInputExtensionManager::IsRecording() {
558 return GetSpeechInputExtensionInterface()->IsRecordingInProcess(); 558 return GetSpeechInputExtensionInterface()->IsRecordingInProcess();
559 } 559 }
560 560
561 void SpeechInputExtensionManager::StartRecording( 561 void SpeechInputExtensionManager::StartRecording(
562 speech_input::SpeechRecognizerDelegate* delegate, 562 speech_input::SpeechRecognizerDelegate* delegate,
563 net::URLRequestContextGetter* context_getter, int caller_id, 563 net::URLRequestContextGetter* context_getter, int caller_id,
564 const std::string& language, const std::string& grammar, 564 const std::string& language, const std::string& grammar,
565 bool filter_profanities) { 565 bool filter_profanities) {
566 DCHECK(!recognizer_); 566 DCHECK(!recognizer_);
567 recognizer_ = new SpeechRecognizer(delegate, caller_id, language, grammar, 567 recognizer_ = new SpeechRecognizer(delegate, caller_id, language, grammar,
568 context_getter, filter_profanities, "", ""); 568 context_getter, profile_->GetResourceContext().audio_manager(),
569 filter_profanities, "", "");
569 recognizer_->StartRecording(); 570 recognizer_->StartRecording();
570 } 571 }
571 572
572 bool SpeechInputExtensionManager::HasValidRecognizer() { 573 bool SpeechInputExtensionManager::HasValidRecognizer() {
573 // Conditional expression used to avoid a performance warning on windows. 574 // Conditional expression used to avoid a performance warning on windows.
574 return recognizer_ ? true : false; 575 return recognizer_ ? true : false;
575 } 576 }
576 577
577 bool SpeechInputExtensionManager::Stop(const std::string& extension_id, 578 bool SpeechInputExtensionManager::Stop(const std::string& extension_id,
578 std::string* error) { 579 std::string* error) {
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after
671 base::Bind(&SpeechInputExtensionManager::SetInputVolumeOnUIThread, 672 base::Bind(&SpeechInputExtensionManager::SetInputVolumeOnUIThread,
672 this, volume)); 673 this, volume));
673 } 674 }
674 675
675 void SpeechInputExtensionManager::SetInputVolumeOnUIThread( 676 void SpeechInputExtensionManager::SetInputVolumeOnUIThread(
676 float volume) { 677 float volume) {
677 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 678 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
678 DCHECK(notification_.get()); 679 DCHECK(notification_.get());
679 notification_->SetVUMeterVolume(volume); 680 notification_->SetVUMeterVolume(volume);
680 } 681 }
OLDNEW
« no previous file with comments | « chrome/browser/speech/speech_input_bubble_views.cc ('k') | chrome/test/base/testing_browser_process.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698