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 3// found in the LICENSE file. 4 5#include "content/public/common/media_stream_request.h" 6 7#include "base/logging.h" 8 9namespace content { 10 11bool IsAudioInputMediaType(MediaStreamType type) { 12 return (type == MEDIA_DEVICE_AUDIO_CAPTURE || 13 type == content::MEDIA_TAB_AUDIO_CAPTURE || 14 type == content::MEDIA_LOOPBACK_AUDIO_CAPTURE); 15} 16 17bool IsVideoMediaType(MediaStreamType type) { 18 return (type == MEDIA_DEVICE_VIDEO_CAPTURE || 19 type == content::MEDIA_TAB_VIDEO_CAPTURE || 20 type == content::MEDIA_DESKTOP_VIDEO_CAPTURE); 21} 22 23MediaStreamDevice::MediaStreamDevice() 24 : type(MEDIA_NO_SERVICE), 25 video_facing(MEDIA_VIDEO_FACING_NONE) { 26} 27 28MediaStreamDevice::MediaStreamDevice( 29 MediaStreamType type, 30 const std::string& id, 31 const std::string& name) 32 : type(type), 33 id(id), 34 video_facing(MEDIA_VIDEO_FACING_NONE), 35 name(name) { 36#if defined(OS_ANDROID) 37 if (name.find("front") != std::string::npos) { 38 video_facing = MEDIA_VIDEO_FACING_USER; 39 } else if (name.find("back") != std::string::npos) { 40 video_facing = MEDIA_VIDEO_FACING_ENVIRONMENT; 41 } 42#endif 43} 44 45MediaStreamDevice::MediaStreamDevice( 46 MediaStreamType type, 47 const std::string& id, 48 const std::string& name, 49 int sample_rate, 50 int channel_layout, 51 int frames_per_buffer) 52 : type(type), 53 id(id), 54 video_facing(MEDIA_VIDEO_FACING_NONE), 55 name(name), 56 input(sample_rate, channel_layout, frames_per_buffer) { 57} 58 59MediaStreamDevice::~MediaStreamDevice() {} 60 61bool MediaStreamDevice::IsEqual(const MediaStreamDevice& second) const { 62 const AudioDeviceParameters& input_second = second.input; 63 return type == second.type && 64 name == second.name && 65 id == second.id && 66 input.sample_rate == input_second.sample_rate && 67 input.channel_layout == input_second.channel_layout; 68} 69 70MediaStreamDevices::MediaStreamDevices() {} 71 72MediaStreamDevices::MediaStreamDevices(size_t count, 73 const MediaStreamDevice& value) 74 : std::vector<MediaStreamDevice>(count, value) { 75} 76 77const MediaStreamDevice* MediaStreamDevices::FindById( 78 const std::string& device_id) const { 79 for (const_iterator iter = begin(); iter != end(); ++iter) { 80 if (iter->id == device_id) 81 return &(*iter); 82 } 83 return NULL; 84} 85 86MediaStreamRequest::MediaStreamRequest( 87 int render_process_id, 88 int render_view_id, 89 int page_request_id, 90 const GURL& security_origin, 91 bool user_gesture, 92 MediaStreamRequestType request_type, 93 const std::string& requested_audio_device_id, 94 const std::string& requested_video_device_id, 95 MediaStreamType audio_type, 96 MediaStreamType video_type) 97 : render_process_id(render_process_id), 98 render_view_id(render_view_id), 99 page_request_id(page_request_id), 100 security_origin(security_origin), 101 user_gesture(user_gesture), 102 request_type(request_type), 103 requested_audio_device_id(requested_audio_device_id), 104 requested_video_device_id(requested_video_device_id), 105 audio_type(audio_type), 106 video_type(video_type) { 107} 108 109MediaStreamRequest::~MediaStreamRequest() {} 110 111} // namespace content 112