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