Chromium Code Reviews| Index: content/browser/renderer_host/media/video_capture_device_entry.cc |
| diff --git a/content/browser/renderer_host/media/video_capture_device_entry.cc b/content/browser/renderer_host/media/video_capture_device_entry.cc |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..787edd2820533c8dacec14bf64c757e4bc85274a |
| --- /dev/null |
| +++ b/content/browser/renderer_host/media/video_capture_device_entry.cc |
| @@ -0,0 +1,123 @@ |
| +// Copyright 2016 The Chromium Authors. All rights reserved. |
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +#include "content/browser/renderer_host/media/video_capture_device_entry.h" |
| + |
| +namespace { |
| + |
| +// Counter used for identifying a DeviceRequest to start a capture device. |
| +static int g_device_start_id = 0; |
| +} |
| + |
| +namespace content { |
| + |
| +VideoCaptureDeviceEntry::VideoCaptureDeviceEntry( |
| + const std::string& id, |
| + MediaStreamType stream_type, |
| + const media::VideoCaptureParams& params, |
| + std::unique_ptr<BuildableVideoCaptureDevice> buildable_device) |
| + : serial_id_(g_device_start_id++), |
| + id_(id), |
| + stream_type_(stream_type), |
| + parameters_(params), |
| + buildable_device_(std::move(buildable_device)) {} |
| + |
| +VideoCaptureDeviceEntry::~VideoCaptureDeviceEntry() = default; |
| + |
| +void VideoCaptureDeviceEntry::CreateAndStartDeviceAsync( |
|
miu
2017/03/11 01:13:22
It looks like every method in this class is just a
chfremer
2017/03/13 22:02:03
I agree that this class, now that all interesting
|
| + const media::VideoCaptureParams& params, |
| + BuildableDeviceCallbacks* callbacks, |
| + std::unique_ptr<Ownership> context_reference) { |
| + buildable_device_->CreateAndStartDeviceAsync( |
| + this, &controller_, params, callbacks, std::move(context_reference)); |
| +} |
| + |
| +void VideoCaptureDeviceEntry::ReleaseDeviceAsync( |
| + std::unique_ptr<Ownership> context_reference) { |
| + buildable_device_->ReleaseDeviceAsync(&controller_, |
| + std::move(context_reference)); |
| +} |
| + |
| +void VideoCaptureDeviceEntry::OnLog(const std::string& message) { |
| + controller_.OnLog(message); |
| +} |
| + |
| +void VideoCaptureDeviceEntry::OnError() { |
| + controller_.OnError(); |
| +} |
| + |
| +bool VideoCaptureDeviceEntry::HasDevice() const { |
| + return buildable_device_->HasDevice(); |
| +} |
| + |
| +bool VideoCaptureDeviceEntry::CorrespondsToController( |
| + const VideoCaptureController* controller) const { |
| + return &controller_ == controller; |
| +} |
| + |
| +bool VideoCaptureDeviceEntry::HasActiveClient() { |
| + return controller_.HasActiveClient(); |
| +} |
| + |
| +bool VideoCaptureDeviceEntry::HasPausedClient() { |
| + return controller_.HasPausedClient(); |
| +} |
| + |
| +void VideoCaptureDeviceEntry::AddClient( |
| + VideoCaptureControllerID id, |
| + VideoCaptureControllerEventHandler* event_handler, |
| + media::VideoCaptureSessionId session_id, |
| + const media::VideoCaptureParams& params) { |
| + controller_.AddClient(id, event_handler, session_id, params); |
| +} |
| + |
| +void VideoCaptureDeviceEntry::StopSession(int session_id) { |
| + controller_.StopSession(session_id); |
| +} |
| + |
| +base::WeakPtr<VideoCaptureController> |
| +VideoCaptureDeviceEntry::GetControllerWeakPtrForIOThread() { |
| + return controller_.GetWeakPtrForIOThread(); |
| +} |
| + |
| +media::VideoCaptureFormat VideoCaptureDeviceEntry::GetVideoCaptureFormat() { |
| + return controller_.GetVideoCaptureFormat(); |
| +} |
| + |
| +void VideoCaptureDeviceEntry::GetPhotoCapabilities( |
| + media::VideoCaptureDevice::GetPhotoCapabilitiesCallback callback) const { |
| + buildable_device_->GetPhotoCapabilities(std::move(callback)); |
| +} |
| + |
| +void VideoCaptureDeviceEntry::SetPhotoOptions( |
| + media::mojom::PhotoSettingsPtr settings, |
| + media::VideoCaptureDevice::SetPhotoOptionsCallback callback) { |
| + buildable_device_->SetPhotoOptions(std::move(settings), std::move(callback)); |
| +} |
| + |
| +void VideoCaptureDeviceEntry::TakePhoto( |
| + media::VideoCaptureDevice::TakePhotoCallback callback) { |
| + buildable_device_->TakePhoto(std::move(callback)); |
| +} |
| + |
| +void VideoCaptureDeviceEntry::MaybeSuspend() { |
| + buildable_device_->MaybeSuspendDevice(); |
| +} |
| + |
| +void VideoCaptureDeviceEntry::Resume() { |
| + buildable_device_->ResumeDevice(); |
| +} |
| + |
| +void VideoCaptureDeviceEntry::RequestRefreshFrame() { |
| + buildable_device_->RequestRefreshFrame(); |
| +} |
| + |
| +void VideoCaptureDeviceEntry::SetDesktopCaptureWindowIdAsync( |
| + gfx::NativeViewId window_id, |
| + std::unique_ptr<Ownership> context_reference) { |
| + buildable_device_->SetDesktopCaptureWindowIdAsync( |
| + window_id, std::move(context_reference)); |
| +} |
| + |
| +} // namespace content |