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

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/rewrite 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 "chrome/browser/media/audio_stream_indicator.h"
7 #include "chrome/browser/media/media_stream_capture_indicator.h" 8 #include "chrome/browser/media/media_stream_capture_indicator.h"
8 #include "chrome/browser/prefs/scoped_user_pref_update.h" 9 #include "chrome/browser/prefs/scoped_user_pref_update.h"
9 #include "chrome/browser/profiles/profile.h" 10 #include "chrome/browser/profiles/profile.h"
10 #include "chrome/common/pref_names.h" 11 #include "chrome/common/pref_names.h"
11 #include "content/public/browser/browser_thread.h" 12 #include "content/public/browser/browser_thread.h"
12 #include "content/public/browser/media_devices_monitor.h" 13 #include "content/public/browser/media_devices_monitor.h"
13 #include "content/public/common/media_stream_request.h" 14 #include "content/public/common/media_stream_request.h"
14 15
15 using content::BrowserThread; 16 using content::BrowserThread;
16 using content::MediaStreamDevices; 17 using content::MediaStreamDevices;
(...skipping 18 matching lines...) Expand all
35 36
36 } // namespace 37 } // namespace
37 38
38 39
39 MediaCaptureDevicesDispatcher* MediaCaptureDevicesDispatcher::GetInstance() { 40 MediaCaptureDevicesDispatcher* MediaCaptureDevicesDispatcher::GetInstance() {
40 return Singleton<MediaCaptureDevicesDispatcher>::get(); 41 return Singleton<MediaCaptureDevicesDispatcher>::get();
41 } 42 }
42 43
43 MediaCaptureDevicesDispatcher::MediaCaptureDevicesDispatcher() 44 MediaCaptureDevicesDispatcher::MediaCaptureDevicesDispatcher()
44 : devices_enumerated_(false), 45 : devices_enumerated_(false),
45 media_stream_capture_indicator_(new MediaStreamCaptureIndicator()) {} 46 media_stream_capture_indicator_(new MediaStreamCaptureIndicator()),
47 audio_stream_indicator_(new AudioStreamIndicator()) {}
46 48
47 MediaCaptureDevicesDispatcher::~MediaCaptureDevicesDispatcher() {} 49 MediaCaptureDevicesDispatcher::~MediaCaptureDevicesDispatcher() {}
48 50
49 void MediaCaptureDevicesDispatcher::RegisterUserPrefs( 51 void MediaCaptureDevicesDispatcher::RegisterUserPrefs(
50 PrefServiceSyncable* user_prefs) { 52 PrefServiceSyncable* user_prefs) {
51 if (!user_prefs->FindPreference(prefs::kDefaultAudioCaptureDevice)) { 53 if (!user_prefs->FindPreference(prefs::kDefaultAudioCaptureDevice)) {
52 user_prefs->RegisterStringPref(prefs::kDefaultAudioCaptureDevice, 54 user_prefs->RegisterStringPref(prefs::kDefaultAudioCaptureDevice,
53 std::string(), 55 std::string(),
54 PrefServiceSyncable::UNSYNCABLE_PREF); 56 PrefServiceSyncable::UNSYNCABLE_PREF);
55 } 57 }
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
138 if (device) 140 if (device)
139 devices->push_back(*device); 141 devices->push_back(*device);
140 } 142 }
141 } 143 }
142 144
143 scoped_refptr<MediaStreamCaptureIndicator> 145 scoped_refptr<MediaStreamCaptureIndicator>
144 MediaCaptureDevicesDispatcher::GetMediaStreamCaptureIndicator() { 146 MediaCaptureDevicesDispatcher::GetMediaStreamCaptureIndicator() {
145 return media_stream_capture_indicator_; 147 return media_stream_capture_indicator_;
146 } 148 }
147 149
150 scoped_refptr<AudioStreamIndicator>
151 MediaCaptureDevicesDispatcher::GetAudioStreamIndicator() {
152 return audio_stream_indicator_;
153 }
154
148 void MediaCaptureDevicesDispatcher::OnCaptureDevicesOpened( 155 void MediaCaptureDevicesDispatcher::OnCaptureDevicesOpened(
149 int render_process_id, 156 int render_process_id,
150 int render_view_id, 157 int render_view_id,
151 const content::MediaStreamDevices& devices) { 158 const content::MediaStreamDevices& devices) {
152 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); 159 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
153 media_stream_capture_indicator_->CaptureDevicesOpened(render_process_id, 160 media_stream_capture_indicator_->CaptureDevicesOpened(render_process_id,
154 render_view_id, 161 render_view_id,
155 devices); 162 devices);
156 } 163 }
157 164
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
191 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); 198 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
192 BrowserThread::PostTask( 199 BrowserThread::PostTask(
193 BrowserThread::UI, FROM_HERE, 200 BrowserThread::UI, FROM_HERE,
194 base::Bind( 201 base::Bind(
195 &MediaCaptureDevicesDispatcher::UpdateMediaRequestStateOnUIThread, 202 &MediaCaptureDevicesDispatcher::UpdateMediaRequestStateOnUIThread,
196 base::Unretained(this), render_process_id, render_view_id, device, 203 base::Unretained(this), render_process_id, render_view_id, device,
197 state)); 204 state));
198 205
199 } 206 }
200 207
208 void MediaCaptureDevicesDispatcher::OnAudioStreamPlayingChanged(
209 int render_process_id, int render_view_id, bool playing) {
210 audio_stream_indicator_->UpdateWebContentsStatus(render_process_id,
211 render_view_id,
212 playing);
213 }
214
201 void MediaCaptureDevicesDispatcher::UpdateAudioDevicesOnUIThread( 215 void MediaCaptureDevicesDispatcher::UpdateAudioDevicesOnUIThread(
202 const content::MediaStreamDevices& devices) { 216 const content::MediaStreamDevices& devices) {
203 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 217 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
204 devices_enumerated_ = true; 218 devices_enumerated_ = true;
205 audio_devices_ = devices; 219 audio_devices_ = devices;
206 FOR_EACH_OBSERVER(Observer, observers_, 220 FOR_EACH_OBSERVER(Observer, observers_,
207 OnUpdateAudioDevices(audio_devices_)); 221 OnUpdateAudioDevices(audio_devices_));
208 } 222 }
209 223
210 void MediaCaptureDevicesDispatcher::UpdateVideoDevicesOnUIThread( 224 void MediaCaptureDevicesDispatcher::UpdateVideoDevicesOnUIThread(
211 const content::MediaStreamDevices& devices){ 225 const content::MediaStreamDevices& devices){
212 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 226 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
213 devices_enumerated_ = true; 227 devices_enumerated_ = true;
214 video_devices_ = devices; 228 video_devices_ = devices;
215 FOR_EACH_OBSERVER(Observer, observers_, 229 FOR_EACH_OBSERVER(Observer, observers_,
216 OnUpdateVideoDevices(video_devices_)); 230 OnUpdateVideoDevices(video_devices_));
217 } 231 }
218 232
219 void MediaCaptureDevicesDispatcher::UpdateMediaRequestStateOnUIThread( 233 void MediaCaptureDevicesDispatcher::UpdateMediaRequestStateOnUIThread(
220 int render_process_id, 234 int render_process_id,
221 int render_view_id, 235 int render_view_id,
222 const content::MediaStreamDevice& device, 236 const content::MediaStreamDevice& device,
223 content::MediaRequestState state) { 237 content::MediaRequestState state) {
224 FOR_EACH_OBSERVER(Observer, observers_, 238 FOR_EACH_OBSERVER(Observer, observers_,
225 OnRequestUpdate(render_process_id, 239 OnRequestUpdate(render_process_id,
226 render_view_id, 240 render_view_id,
227 device, 241 device,
228 state)); 242 state));
229 } 243 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698