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