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

Side by Side Diff: chrome/browser/media/media_capture_devices_dispatcher.cc

Issue 11573066: Add a method to tab_utils.h to find out whether a tab is playing audio. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: review Created 7 years, 10 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/media/media_capture_devices_dispatcher.h" 5 #include "chrome/browser/media/media_capture_devices_dispatcher.h"
6 6
7 #include "base/prefs/pref_service.h" 7 #include "base/prefs/pref_service.h"
8 #include "chrome/browser/media/audio_stream_indicator.h"
8 #include "chrome/browser/media/media_stream_capture_indicator.h" 9 #include "chrome/browser/media/media_stream_capture_indicator.h"
9 #include "chrome/browser/prefs/pref_registry_syncable.h" 10 #include "chrome/browser/prefs/pref_registry_syncable.h"
10 #include "chrome/browser/prefs/scoped_user_pref_update.h" 11 #include "chrome/browser/prefs/scoped_user_pref_update.h"
11 #include "chrome/browser/profiles/profile.h" 12 #include "chrome/browser/profiles/profile.h"
12 #include "chrome/common/pref_names.h" 13 #include "chrome/common/pref_names.h"
13 #include "content/public/browser/browser_thread.h" 14 #include "content/public/browser/browser_thread.h"
14 #include "content/public/browser/media_devices_monitor.h" 15 #include "content/public/browser/media_devices_monitor.h"
15 #include "content/public/common/media_stream_request.h" 16 #include "content/public/common/media_stream_request.h"
16 17
17 using content::BrowserThread; 18 using content::BrowserThread;
(...skipping 19 matching lines...) Expand all
37 38
38 } // namespace 39 } // namespace
39 40
40 41
41 MediaCaptureDevicesDispatcher* MediaCaptureDevicesDispatcher::GetInstance() { 42 MediaCaptureDevicesDispatcher* MediaCaptureDevicesDispatcher::GetInstance() {
42 return Singleton<MediaCaptureDevicesDispatcher>::get(); 43 return Singleton<MediaCaptureDevicesDispatcher>::get();
43 } 44 }
44 45
45 MediaCaptureDevicesDispatcher::MediaCaptureDevicesDispatcher() 46 MediaCaptureDevicesDispatcher::MediaCaptureDevicesDispatcher()
46 : devices_enumerated_(false), 47 : devices_enumerated_(false),
47 media_stream_capture_indicator_(new MediaStreamCaptureIndicator()) {} 48 media_stream_capture_indicator_(new MediaStreamCaptureIndicator()),
49 audio_stream_indicator_(new AudioStreamIndicator()) {}
48 50
49 MediaCaptureDevicesDispatcher::~MediaCaptureDevicesDispatcher() {} 51 MediaCaptureDevicesDispatcher::~MediaCaptureDevicesDispatcher() {}
50 52
51 void MediaCaptureDevicesDispatcher::RegisterUserPrefs( 53 void MediaCaptureDevicesDispatcher::RegisterUserPrefs(
52 PrefService* user_prefs, 54 PrefService* user_prefs,
53 PrefRegistrySyncable* registry) { 55 PrefRegistrySyncable* registry) {
54 // TODO(joi): Get rid of the need for PrefService param above. 56 // TODO(joi): Get rid of the need for PrefService param above.
55 if (!user_prefs->FindPreference(prefs::kDefaultAudioCaptureDevice)) { 57 if (!user_prefs->FindPreference(prefs::kDefaultAudioCaptureDevice)) {
56 registry->RegisterStringPref(prefs::kDefaultAudioCaptureDevice, 58 registry->RegisterStringPref(prefs::kDefaultAudioCaptureDevice,
57 std::string(), 59 std::string(),
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
142 if (device) 144 if (device)
143 devices->push_back(*device); 145 devices->push_back(*device);
144 } 146 }
145 } 147 }
146 148
147 scoped_refptr<MediaStreamCaptureIndicator> 149 scoped_refptr<MediaStreamCaptureIndicator>
148 MediaCaptureDevicesDispatcher::GetMediaStreamCaptureIndicator() { 150 MediaCaptureDevicesDispatcher::GetMediaStreamCaptureIndicator() {
149 return media_stream_capture_indicator_; 151 return media_stream_capture_indicator_;
150 } 152 }
151 153
154 scoped_refptr<AudioStreamIndicator>
155 MediaCaptureDevicesDispatcher::GetAudioStreamIndicator() {
156 return audio_stream_indicator_;
157 }
158
152 void MediaCaptureDevicesDispatcher::OnCaptureDevicesOpened( 159 void MediaCaptureDevicesDispatcher::OnCaptureDevicesOpened(
153 int render_process_id, 160 int render_process_id,
154 int render_view_id, 161 int render_view_id,
155 const content::MediaStreamDevices& devices) { 162 const content::MediaStreamDevices& devices) {
156 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); 163 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
157 media_stream_capture_indicator_->CaptureDevicesOpened(render_process_id, 164 media_stream_capture_indicator_->CaptureDevicesOpened(render_process_id,
158 render_view_id, 165 render_view_id,
159 devices); 166 devices);
160 } 167 }
161 168
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
195 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); 202 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
196 BrowserThread::PostTask( 203 BrowserThread::PostTask(
197 BrowserThread::UI, FROM_HERE, 204 BrowserThread::UI, FROM_HERE,
198 base::Bind( 205 base::Bind(
199 &MediaCaptureDevicesDispatcher::UpdateMediaRequestStateOnUIThread, 206 &MediaCaptureDevicesDispatcher::UpdateMediaRequestStateOnUIThread,
200 base::Unretained(this), render_process_id, render_view_id, device, 207 base::Unretained(this), render_process_id, render_view_id, device,
201 state)); 208 state));
202 209
203 } 210 }
204 211
212 void MediaCaptureDevicesDispatcher::OnAudioStreamPlayingChanged(
213 int render_process_id, int render_view_id, int stream_id, bool playing) {
214 audio_stream_indicator_->UpdateWebContentsStatus(render_process_id,
215 render_view_id,
216 stream_id,
217 playing);
218 }
219
205 void MediaCaptureDevicesDispatcher::UpdateAudioDevicesOnUIThread( 220 void MediaCaptureDevicesDispatcher::UpdateAudioDevicesOnUIThread(
206 const content::MediaStreamDevices& devices) { 221 const content::MediaStreamDevices& devices) {
207 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 222 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
208 devices_enumerated_ = true; 223 devices_enumerated_ = true;
209 audio_devices_ = devices; 224 audio_devices_ = devices;
210 FOR_EACH_OBSERVER(Observer, observers_, 225 FOR_EACH_OBSERVER(Observer, observers_,
211 OnUpdateAudioDevices(audio_devices_)); 226 OnUpdateAudioDevices(audio_devices_));
212 } 227 }
213 228
214 void MediaCaptureDevicesDispatcher::UpdateVideoDevicesOnUIThread( 229 void MediaCaptureDevicesDispatcher::UpdateVideoDevicesOnUIThread(
215 const content::MediaStreamDevices& devices){ 230 const content::MediaStreamDevices& devices){
216 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 231 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
217 devices_enumerated_ = true; 232 devices_enumerated_ = true;
218 video_devices_ = devices; 233 video_devices_ = devices;
219 FOR_EACH_OBSERVER(Observer, observers_, 234 FOR_EACH_OBSERVER(Observer, observers_,
220 OnUpdateVideoDevices(video_devices_)); 235 OnUpdateVideoDevices(video_devices_));
221 } 236 }
222 237
223 void MediaCaptureDevicesDispatcher::UpdateMediaRequestStateOnUIThread( 238 void MediaCaptureDevicesDispatcher::UpdateMediaRequestStateOnUIThread(
224 int render_process_id, 239 int render_process_id,
225 int render_view_id, 240 int render_view_id,
226 const content::MediaStreamDevice& device, 241 const content::MediaStreamDevice& device,
227 content::MediaRequestState state) { 242 content::MediaRequestState state) {
228 FOR_EACH_OBSERVER(Observer, observers_, 243 FOR_EACH_OBSERVER(Observer, observers_,
229 OnRequestUpdate(render_process_id, 244 OnRequestUpdate(render_process_id,
230 render_view_id, 245 render_view_id,
231 device, 246 device,
232 state)); 247 state));
233 } 248 }
OLDNEW
« no previous file with comments | « chrome/browser/media/media_capture_devices_dispatcher.h ('k') | chrome/browser/ui/tabs/tab_utils.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698