| 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 "content/renderer/media/user_media_client_impl.h" | 5 #include "content/renderer/media/user_media_client_impl.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 | 8 |
| 9 #include <utility> | 9 #include <utility> |
| 10 #include <vector> | 10 #include <vector> |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 57 | 57 |
| 58 void CopyBlinkRequestToStreamControls(const blink::WebUserMediaRequest& request, | 58 void CopyBlinkRequestToStreamControls(const blink::WebUserMediaRequest& request, |
| 59 StreamControls* controls) { | 59 StreamControls* controls) { |
| 60 if (request.isNull()) { | 60 if (request.isNull()) { |
| 61 return; | 61 return; |
| 62 } | 62 } |
| 63 if (!request.audioConstraints().isNull()) { | 63 if (!request.audioConstraints().isNull()) { |
| 64 const blink::WebMediaTrackConstraintSet& audio_basic = | 64 const blink::WebMediaTrackConstraintSet& audio_basic = |
| 65 request.audioConstraints().basic(); | 65 request.audioConstraints().basic(); |
| 66 CopyFirstString(audio_basic.mediaStreamSource.exact(), | 66 CopyFirstString(audio_basic.mediaStreamSource.exact(), |
| 67 &(controls->audio.stream_source)); | 67 &controls->audio.stream_source); |
| 68 CopyVector(audio_basic.deviceId.exact(), &(controls->audio.device_ids)); | 68 CopyVector(audio_basic.deviceId.exact(), &(controls->audio.device_ids)); |
| 69 // Optionals. They may be either in ideal or in advanced.exact. | 69 // Optionals. They may be either in ideal or in advanced.exact. |
| 70 // TODO(hta): Get alternatives only mentioned in advanced array. | |
| 71 CopyVector(audio_basic.deviceId.ideal(), | 70 CopyVector(audio_basic.deviceId.ideal(), |
| 72 &controls->audio.alternate_device_ids); | 71 &controls->audio.alternate_device_ids); |
| 73 | 72 for (const auto& constraint : request.audioConstraints().advanced()) { |
| 73 CopyVector(constraint.deviceId.exact(), |
| 74 &controls->audio.alternate_device_ids); |
| 75 CopyVector(constraint.deviceId.ideal(), |
| 76 &controls->audio.alternate_device_ids); |
| 77 } |
| 74 if (audio_basic.hotwordEnabled.hasExact()) { | 78 if (audio_basic.hotwordEnabled.hasExact()) { |
| 75 controls->hotword_enabled = audio_basic.hotwordEnabled.exact(); | 79 controls->hotword_enabled = audio_basic.hotwordEnabled.exact(); |
| 76 } else { | 80 } else { |
| 77 for (const auto& audio_advanced : request.audioConstraints().advanced()) { | 81 for (const auto& audio_advanced : request.audioConstraints().advanced()) { |
| 78 if (audio_advanced.hotwordEnabled.hasExact()) { | 82 if (audio_advanced.hotwordEnabled.hasExact()) { |
| 79 controls->hotword_enabled = audio_advanced.hotwordEnabled.exact(); | 83 controls->hotword_enabled = audio_advanced.hotwordEnabled.exact(); |
| 80 break; | 84 break; |
| 81 } | 85 } |
| 82 } | 86 } |
| 83 } | 87 } |
| 84 } | 88 } |
| 85 if (!request.videoConstraints().isNull()) { | 89 if (!request.videoConstraints().isNull()) { |
| 86 const blink::WebMediaTrackConstraintSet& video_basic = | 90 const blink::WebMediaTrackConstraintSet& video_basic = |
| 87 request.videoConstraints().basic(); | 91 request.videoConstraints().basic(); |
| 88 CopyFirstString(video_basic.mediaStreamSource.exact(), | 92 CopyFirstString(video_basic.mediaStreamSource.exact(), |
| 89 &(controls->video.stream_source)); | 93 &(controls->video.stream_source)); |
| 90 CopyVector(video_basic.deviceId.exact(), &(controls->video.device_ids)); | 94 CopyVector(video_basic.deviceId.exact(), &(controls->video.device_ids)); |
| 91 CopyVector(video_basic.deviceId.ideal(), | 95 CopyVector(video_basic.deviceId.ideal(), |
| 92 &(controls->video.alternate_device_ids)); | 96 &(controls->video.alternate_device_ids)); |
| 97 for (const auto& constraint : request.videoConstraints().advanced()) { |
| 98 CopyVector(constraint.deviceId.exact(), |
| 99 &controls->video.alternate_device_ids); |
| 100 CopyVector(constraint.deviceId.ideal(), |
| 101 &controls->video.alternate_device_ids); |
| 102 } |
| 93 } | 103 } |
| 94 } | 104 } |
| 95 | 105 |
| 96 static int g_next_request_id = 0; | 106 static int g_next_request_id = 0; |
| 97 | 107 |
| 98 } // namespace | 108 } // namespace |
| 99 | 109 |
| 100 struct UserMediaClientImpl::MediaDevicesRequestInfo { | 110 struct UserMediaClientImpl::MediaDevicesRequestInfo { |
| 101 MediaDevicesRequestInfo(const blink::WebMediaDevicesRequest& request, | 111 MediaDevicesRequestInfo(const blink::WebMediaDevicesRequest& request, |
| 102 int audio_input_request_id, | 112 int audio_input_request_id, |
| (...skipping 1032 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1135 return; | 1145 return; |
| 1136 } | 1146 } |
| 1137 } | 1147 } |
| 1138 } | 1148 } |
| 1139 | 1149 |
| 1140 bool UserMediaClientImpl::UserMediaRequestInfo::HasPendingSources() const { | 1150 bool UserMediaClientImpl::UserMediaRequestInfo::HasPendingSources() const { |
| 1141 return !sources_waiting_for_callback_.empty(); | 1151 return !sources_waiting_for_callback_.empty(); |
| 1142 } | 1152 } |
| 1143 | 1153 |
| 1144 } // namespace content | 1154 } // namespace content |
| OLD | NEW |