| 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 |