OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 "content/browser/renderer_host/media/media_stream_device_settings.h" | 5 #include "content/browser/renderer_host/media/media_stream_device_settings.h" |
6 | 6 |
7 #include "base/stl_util-inl.h" | 7 #include "base/stl_util-inl.h" |
8 #include "base/task.h" | 8 #include "base/task.h" |
9 #include "content/browser/browser_thread.h" | 9 #include "content/browser/browser_thread.h" |
10 #include "content/browser/renderer_host/media/media_stream_settings_requester.h" | 10 #include "content/browser/renderer_host/media/media_stream_settings_requester.h" |
(...skipping 26 matching lines...) Expand all Loading... |
37 }; | 37 }; |
38 | 38 |
39 MediaStreamDeviceSettings::MediaStreamDeviceSettings( | 39 MediaStreamDeviceSettings::MediaStreamDeviceSettings( |
40 SettingsRequester* requester) | 40 SettingsRequester* requester) |
41 : requester_(requester) { | 41 : requester_(requester) { |
42 DCHECK(requester_); | 42 DCHECK(requester_); |
43 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); | 43 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
44 } | 44 } |
45 | 45 |
46 MediaStreamDeviceSettings::~MediaStreamDeviceSettings() { | 46 MediaStreamDeviceSettings::~MediaStreamDeviceSettings() { |
47 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); | |
48 STLDeleteValues(&requests_); | 47 STLDeleteValues(&requests_); |
49 } | 48 } |
50 | 49 |
51 void MediaStreamDeviceSettings::RequestCaptureDeviceUsage( | 50 void MediaStreamDeviceSettings::RequestCaptureDeviceUsage( |
52 const std::string& label, int render_process_id, int render_view_id, | 51 const std::string& label, int render_process_id, int render_view_id, |
53 const StreamOptions& request_options, const std::string& security_origin) { | 52 const StreamOptions& request_options, const std::string& security_origin) { |
54 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); | 53 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
55 | 54 |
56 if (requests_.find(label) != requests_.end()) { | 55 if (requests_.find(label) != requests_.end()) { |
57 // Request with this id already exists. | 56 // Request with this id already exists. |
58 requester_->Error(label); | 57 requester_->SettingsError(label); |
59 return; | 58 return; |
60 } | 59 } |
61 | 60 |
62 // Create a new request. | 61 // Create a new request. |
63 requests_.insert(std::make_pair(label, new SettingsRequest(render_process_id, | 62 requests_.insert(std::make_pair(label, new SettingsRequest(render_process_id, |
64 render_view_id, | 63 render_view_id, |
65 security_origin, | 64 security_origin, |
66 request_options))); | 65 request_options))); |
67 // Ask for available devices. | 66 // Ask for available devices. |
68 if (request_options.audio) { | 67 if (request_options.audio) { |
69 requester_->GetDevices(label, kAudioCapture); | 68 requester_->GetDevices(label, kAudioCapture); |
70 } | 69 } |
71 if (request_options.video_option != StreamOptions::kNoCamera) { | 70 if (request_options.video_option != StreamOptions::kNoCamera) { |
72 requester_->GetDevices(label, kVideoCapture); | 71 requester_->GetDevices(label, kVideoCapture); |
73 } | 72 } |
74 } | 73 } |
75 | 74 |
76 void MediaStreamDeviceSettings::AvailableDevices( | 75 void MediaStreamDeviceSettings::AvailableDevices( |
77 const std::string& label, MediaStreamType stream_type, | 76 const std::string& label, MediaStreamType stream_type, |
78 const StreamDeviceInfoArray& devices) { | 77 const StreamDeviceInfoArray& devices) { |
79 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); | 78 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
80 | 79 |
81 SettingsRequests::iterator request_it = requests_.find(label); | 80 SettingsRequests::iterator request_it = requests_.find(label); |
82 if (request_it == requests_.end()) { | 81 if (request_it == requests_.end()) { |
83 // Request with this id doesn't exist. | 82 // Request with this id doesn't exist. |
84 requester_->Error(label); | 83 requester_->SettingsError(label); |
85 return; | 84 return; |
86 } | 85 } |
87 | 86 |
88 // Add the answer for the request. | 87 // Add the answer for the request. |
89 SettingsRequest* request = request_it->second; | 88 SettingsRequest* request = request_it->second; |
90 request->devices[stream_type] = devices; | 89 request->devices[stream_type] = devices; |
91 | 90 |
92 // Check if we're done. | 91 // Check if we're done. |
93 size_t num_media_requests = 0; | 92 size_t num_media_requests = 0; |
94 if (request->options.audio) { | 93 if (request->options.audio) { |
(...skipping 25 matching lines...) Expand all Loading... |
120 } | 119 } |
121 } | 120 } |
122 // Post result and delete request. | 121 // Post result and delete request. |
123 requester_->DevicesAccepted(label, devices_to_use); | 122 requester_->DevicesAccepted(label, devices_to_use); |
124 requests_.erase(request_it); | 123 requests_.erase(request_it); |
125 delete request; | 124 delete request; |
126 } | 125 } |
127 } | 126 } |
128 | 127 |
129 } // namespace media_stream | 128 } // namespace media_stream |
OLD | NEW |