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