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 045441537a9d483f907dcf02bf269efddd06a3df..f634368ee29481a7a9db7fa19768ed7b8365844e 100644 |
--- a/services/video_capture/video_capture_device_factory_impl.cc |
+++ b/services/video_capture/video_capture_device_factory_impl.cc |
@@ -2,15 +2,49 @@ |
// 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 "base/strings/stringprintf.h" |
#include "services/video_capture/video_capture_device_factory_impl.h" |
namespace video_capture { |
+VideoCaptureDeviceFactoryImpl::DeviceEntry::DeviceEntry( |
+ mojom::VideoCaptureDeviceDescriptorPtr descriptor, |
+ std::unique_ptr<VideoCaptureDeviceImpl> bindable_target) |
+ : descriptor_(std::move(descriptor)), device_(std::move(bindable_target)) {} |
+ |
+VideoCaptureDeviceFactoryImpl::DeviceEntry::~DeviceEntry() = default; |
+ |
+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() = default; |
+ |
+VideoCaptureDeviceFactoryImpl::~VideoCaptureDeviceFactoryImpl() = default; |
+ |
+void VideoCaptureDeviceFactoryImpl::AddDevice( |
+ mojom::VideoCaptureDeviceDescriptorPtr descriptor, |
+ std::unique_ptr<VideoCaptureDeviceImpl> device) { |
+ devices_.emplace_back(std::move(descriptor), std::move(device)); |
+} |
+ |
void VideoCaptureDeviceFactoryImpl::EnumerateDeviceDescriptors( |
const EnumerateDeviceDescriptorsCallback& callback) { |
- std::vector<mojom::VideoCaptureDeviceDescriptorPtr> empty_descriptors; |
- callback.Run(std::move(empty_descriptors)); |
+ std::vector<mojom::VideoCaptureDeviceDescriptorPtr> descriptors; |
+ for (const auto& entry : devices_) |
+ descriptors.push_back(entry.MakeDescriptorCopy()); |
+ callback.Run(std::move(descriptors)); |
} |
void VideoCaptureDeviceFactoryImpl::GetSupportedFormats( |
@@ -21,8 +55,9 @@ void VideoCaptureDeviceFactoryImpl::GetSupportedFormats( |
void VideoCaptureDeviceFactoryImpl::CreateDevice( |
mojom::VideoCaptureDeviceDescriptorPtr device_descriptor, |
- mojom::VideoCaptureDeviceRequest device_request) { |
- NOTIMPLEMENTED(); |
+ mojom::VideoCaptureDeviceRequest request, |
+ const CreateDeviceCallback& callback) { |
+ callback.Run(mojom::DeviceAccessResultCode::SUCCESS); |
} |
} // namespace video_capture |