OLD | NEW |
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 Loading... |
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 Loading... |
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 Loading... |
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 } |
OLD | NEW |