Chromium Code Reviews| Index: services/video_capture/video_capture_device_factory_impl.cc |
| diff --git a/services/video_capture/video_capture_device_factory_impl.cc b/services/video_capture/video_capture_device_factory_impl.cc |
| index b37cd1c76317b62655ea711ee5876a2aad2491f3..35276701faf9397dca0bd72b611fb8066243e908 100644 |
| --- a/services/video_capture/video_capture_device_factory_impl.cc |
| +++ b/services/video_capture/video_capture_device_factory_impl.cc |
| @@ -2,14 +2,70 @@ |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| +#include <sstream> |
| + |
| #include "base/logging.h" |
| #include "services/video_capture/video_capture_device_factory_impl.h" |
| +namespace { |
| +static const char kFakeDeviceDisplayName[] = "Fake Video Capture Device"; |
| +static const char kFakeDeviceId[] = "FakeDeviceId"; |
| +static const char kFakeModelId[] = "FakeModelId"; |
| +} |
| + |
| namespace video_capture { |
| +VideoCaptureDeviceFactoryImpl::DeviceEntry::DeviceEntry( |
| + mojom::VideoCaptureDeviceDescriptorPtr descriptor, |
| + std::unique_ptr<VideoCaptureDeviceAccessImpl> bindable_target) |
| + : descriptor_(std::move(descriptor)) { |
| + device_access_ = std::move(bindable_target); |
| +} |
| + |
| +VideoCaptureDeviceFactoryImpl::DeviceEntry::~DeviceEntry() = default; |
|
mcasas
2016/08/12 23:38:37
empty lines after methods, here and in l.39
chfremer
2016/08/15 20:10:35
Done.
|
| +VideoCaptureDeviceFactoryImpl::DeviceEntry::DeviceEntry( |
| + VideoCaptureDeviceFactoryImpl::DeviceEntry&& other) = default; |
| + |
| +VideoCaptureDeviceFactoryImpl::DeviceEntry& |
| +VideoCaptureDeviceFactoryImpl::DeviceEntry::operator=( |
| + VideoCaptureDeviceFactoryImpl::DeviceEntry&& other) = default; |
| + |
| +mojom::VideoCaptureDeviceDescriptorPtr |
| +VideoCaptureDeviceFactoryImpl::DeviceEntry::MakeDescriptorCopy() const { |
| + return descriptor_.Clone(); |
| +} |
| + |
| +VideoCaptureDeviceFactoryImpl::VideoCaptureDeviceFactoryImpl() |
| + : fake_device_count_(0) {} |
| +VideoCaptureDeviceFactoryImpl::~VideoCaptureDeviceFactoryImpl() = default; |
| + |
| +mojom::VideoCaptureDeviceDescriptorPtr |
| +VideoCaptureDeviceFactoryImpl::AddFakeVideoCaptureDevice() { |
| + auto fake_device_descriptor = mojom::VideoCaptureDeviceDescriptor::New(); |
| + std::ostringstream display_name_oss; |
| + display_name_oss << kFakeDeviceDisplayName << " (" << fake_device_count_ |
| + << ")"; |
| + fake_device_descriptor->display_name = display_name_oss.str(); |
| + std::ostringstream device_id_oss; |
| + device_id_oss << kFakeDeviceId << "_" << fake_device_count_; |
| + fake_device_descriptor->device_id = device_id_oss.str(); |
|
mcasas
2016/08/12 23:38:37
Use base::StringPrintf (which, also works magicall
chfremer
2016/08/15 20:10:35
Done.
|
| + fake_device_descriptor->model_id = kFakeModelId; |
| + fake_device_descriptor->capture_api = mojom::VideoCaptureApi::UNKNOWN; |
| + fake_device_descriptor->transport_type = |
| + mojom::VideoCaptureTransportType::OTHER_TRANSPORT; |
| + devices_.emplace_back(fake_device_descriptor->Clone(), |
| + base::WrapUnique(new VideoCaptureDeviceAccessImpl())); |
|
mcasas
2016/08/12 23:38:37
Per recent discussion in chromium-dev, prefer base
chfremer
2016/08/15 20:10:35
Done.
|
| + |
| + fake_device_count_ += 1; |
|
mcasas
2016/08/12 23:38:37
fake_device_count_++;
chfremer
2016/08/15 20:10:35
Done.
|
| + return fake_device_descriptor; |
| +} |
| + |
| void VideoCaptureDeviceFactoryImpl::EnumerateDeviceDescriptors( |
| const EnumerateDeviceDescriptorsCallback& callback) { |
| std::vector<mojom::VideoCaptureDeviceDescriptorPtr> descriptors; |
| + for (const auto& entry : devices_) { |
| + descriptors.push_back(entry.MakeDescriptorCopy()); |
| + } |
|
mcasas
2016/08/12 23:38:37
nit: no {} for one-line bodies.
chfremer
2016/08/15 20:10:34
Done.
|
| callback.Run(std::move(descriptors)); |
| } |
| @@ -19,9 +75,10 @@ void VideoCaptureDeviceFactoryImpl::GetSupportedFormats( |
| NOTIMPLEMENTED(); |
| } |
| -void VideoCaptureDeviceFactoryImpl::CreateDevice( |
| +void VideoCaptureDeviceFactoryImpl::GetDeviceAccess( |
| mojom::VideoCaptureDeviceDescriptorPtr device_descriptor, |
| - mojom::VideoCaptureDeviceRequest device_request) { |
| + mojom::VideoCaptureDeviceAccessRequest access_request, |
| + const GetDeviceAccessCallback& callback) { |
| NOTIMPLEMENTED(); |
|
mcasas
2016/08/12 23:38:37
Don't we need to do some
callback.Run(mojom::Devic
chfremer
2016/08/15 20:10:35
Done.
|
| } |