video_capture_device.cc revision d0247b1b59f9c528cb6df88b4f2b9afaf80d181e
1eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch// Copyright 2013 The Chromium Authors. All rights reserved. 2eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch// Use of this source code is governed by a BSD-style license that can be 3eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch// found in the LICENSE file. 4eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 5eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#include "media/video/capture/video_capture_device.h" 6d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)#include "base/strings/string_util.h" 7eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 8eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochnamespace media { 9eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 10558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdochconst std::string VideoCaptureDevice::Name::GetNameAndModel() const { 11d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) const std::string model_id = GetModel(); 12d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) if (model_id.empty()) 13d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) return device_name_; 14d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) const std::string suffix = " (" + model_id + ")"; 15d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) if (EndsWith(device_name_, suffix, true)) // |true| means case-sensitive. 16d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) return device_name_; 17d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) return device_name_ + suffix; 18558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch} 19558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch 20eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen MurdochVideoCaptureDevice::Name* 21eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen MurdochVideoCaptureDevice::Names::FindById(const std::string& id) { 22eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch for (iterator it = begin(); it != end(); ++it) { 23eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch if (it->id() == id) 24eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch return &(*it); 25eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch } 26eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch return NULL; 27eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch} 28eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 29d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)VideoCaptureDevice::~VideoCaptureDevice() {} 30d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) 31d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)VideoCaptureDevice1::VideoCaptureDevice1() {} 32d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) 33d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)VideoCaptureDevice1::~VideoCaptureDevice1() {} 34d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) 35d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)void VideoCaptureDevice1::AllocateAndStart( 36d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) const VideoCaptureCapability& capture_format, 37d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) scoped_ptr<EventHandler> client) { 38d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) client_ = client.Pass(); 39d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) Allocate(capture_format, client_.get()); 40d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) Start(); 41d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)} 42d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) 43d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)void VideoCaptureDevice1::StopAndDeAllocate() { 44d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) Stop(); 45d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) DeAllocate(); 46d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) client_.reset(); 47d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)}; 48d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) 49d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) 50eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch} // namespace media 51