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/media_stream_center.h" | 5 #include "content/renderer/media/media_stream_center.h" |
6 | 6 |
7 #include <string> | 7 #include <string> |
8 | 8 |
9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
10 #include "base/logging.h" | 10 #include "base/logging.h" |
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
79 case blink::WebMediaStreamSource::TypeVideo: | 79 case blink::WebMediaStreamSource::TypeVideo: |
80 CreateNativeVideoMediaStreamTrack(track); | 80 CreateNativeVideoMediaStreamTrack(track); |
81 break; | 81 break; |
82 } | 82 } |
83 } | 83 } |
84 | 84 |
85 } // namespace | 85 } // namespace |
86 | 86 |
87 MediaStreamCenter::MediaStreamCenter(blink::WebMediaStreamCenterClient* client, | 87 MediaStreamCenter::MediaStreamCenter(blink::WebMediaStreamCenterClient* client, |
88 PeerConnectionDependencyFactory* factory) | 88 PeerConnectionDependencyFactory* factory) |
89 : rtc_factory_(factory), next_request_id_(0) {} | 89 : rtc_factory_(factory) {} |
90 | 90 |
91 MediaStreamCenter::~MediaStreamCenter() {} | 91 MediaStreamCenter::~MediaStreamCenter() {} |
92 | 92 |
93 bool MediaStreamCenter::getMediaStreamTrackSources( | |
94 const blink::WebMediaStreamTrackSourcesRequest& request) { | |
95 int request_id = next_request_id_++; | |
96 requests_.insert(std::make_pair(request_id, request)); | |
97 RenderThread::Get()->Send(new MediaStreamHostMsg_GetSources( | |
98 request_id, | |
99 GURL(request.origin().utf8()))); | |
100 return true; | |
101 } | |
102 | |
103 void MediaStreamCenter::didCreateMediaStreamTrack( | 93 void MediaStreamCenter::didCreateMediaStreamTrack( |
104 const blink::WebMediaStreamTrack& track) { | 94 const blink::WebMediaStreamTrack& track) { |
105 DVLOG(1) << "MediaStreamCenter::didCreateMediaStreamTrack"; | 95 DVLOG(1) << "MediaStreamCenter::didCreateMediaStreamTrack"; |
106 CreateNativeMediaStreamTrack(track, rtc_factory_); | 96 CreateNativeMediaStreamTrack(track, rtc_factory_); |
107 } | 97 } |
108 | 98 |
109 void MediaStreamCenter::didEnableMediaStreamTrack( | 99 void MediaStreamCenter::didEnableMediaStreamTrack( |
110 const blink::WebMediaStreamTrack& track) { | 100 const blink::WebMediaStreamTrack& track) { |
111 MediaStreamTrack* native_track = | 101 MediaStreamTrack* native_track = |
112 MediaStreamTrack::GetTrack(track); | 102 MediaStreamTrack::GetTrack(track); |
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
196 } | 186 } |
197 | 187 |
198 bool MediaStreamCenter::didRemoveMediaStreamTrack( | 188 bool MediaStreamCenter::didRemoveMediaStreamTrack( |
199 const blink::WebMediaStream& stream, | 189 const blink::WebMediaStream& stream, |
200 const blink::WebMediaStreamTrack& track) { | 190 const blink::WebMediaStreamTrack& track) { |
201 DVLOG(1) << "MediaStreamCenter::didRemoveMediaStreamTrack"; | 191 DVLOG(1) << "MediaStreamCenter::didRemoveMediaStreamTrack"; |
202 MediaStream* native_stream = MediaStream::GetMediaStream(stream); | 192 MediaStream* native_stream = MediaStream::GetMediaStream(stream); |
203 return native_stream->RemoveTrack(track); | 193 return native_stream->RemoveTrack(track); |
204 } | 194 } |
205 | 195 |
206 bool MediaStreamCenter::OnControlMessageReceived(const IPC::Message& message) { | |
207 bool handled = true; | |
208 IPC_BEGIN_MESSAGE_MAP(MediaStreamCenter, message) | |
209 IPC_MESSAGE_HANDLER(MediaStreamMsg_GetSourcesACK, | |
210 OnGetSourcesComplete) | |
211 IPC_MESSAGE_UNHANDLED(handled = false) | |
212 IPC_END_MESSAGE_MAP() | |
213 return handled; | |
214 } | |
215 | |
216 void MediaStreamCenter::OnGetSourcesComplete( | |
217 int request_id, | |
218 const content::StreamDeviceInfoArray& devices) { | |
219 RequestMap::iterator request_it = requests_.find(request_id); | |
220 DCHECK(request_it != requests_.end()); | |
221 | |
222 blink::WebVector<blink::WebSourceInfo> sourceInfos(devices.size()); | |
223 for (size_t i = 0; i < devices.size(); ++i) { | |
224 const MediaStreamDevice& device = devices[i].device; | |
225 DCHECK(device.type == MEDIA_DEVICE_AUDIO_CAPTURE || | |
226 device.type == MEDIA_DEVICE_VIDEO_CAPTURE); | |
227 blink::WebSourceInfo::VideoFacingMode video_facing; | |
228 switch (device.video_facing) { | |
229 case MEDIA_VIDEO_FACING_USER: | |
230 video_facing = blink::WebSourceInfo::VideoFacingModeUser; | |
231 break; | |
232 case MEDIA_VIDEO_FACING_ENVIRONMENT: | |
233 video_facing = blink::WebSourceInfo::VideoFacingModeEnvironment; | |
234 break; | |
235 default: | |
236 video_facing = blink::WebSourceInfo::VideoFacingModeNone; | |
237 } | |
238 | |
239 sourceInfos[i] | |
240 .initialize(blink::WebString::fromUTF8(device.id), | |
241 device.type == MEDIA_DEVICE_AUDIO_CAPTURE | |
242 ? blink::WebSourceInfo::SourceKindAudio | |
243 : blink::WebSourceInfo::SourceKindVideo, | |
244 blink::WebString::fromUTF8(device.name), | |
245 video_facing); | |
246 } | |
247 request_it->second.requestSucceeded(sourceInfos); | |
248 } | |
249 | |
250 } // namespace content | 196 } // namespace content |
OLD | NEW |