Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(304)

Unified Diff: services/video_capture/video_capture_device_factory_impl.cc

Issue 2244763002: Video Capture Mojo (1.4a.a): Add service configurator interface (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@MakeService
Patch Set: Removed interface and functionality for configuring multiple devices in fake factory. Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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

Powered by Google App Engine
This is Rietveld 408576698