Index: content/browser/renderer_host/media/mojo_service_launched_video_capture_device.h |
diff --git a/content/browser/renderer_host/media/mojo_service_launched_video_capture_device.h b/content/browser/renderer_host/media/mojo_service_launched_video_capture_device.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..c9ebe5e6fce956d93521b6d7a45965482c8a53be |
--- /dev/null |
+++ b/content/browser/renderer_host/media/mojo_service_launched_video_capture_device.h |
@@ -0,0 +1,57 @@ |
+// Copyright 2017 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. |
+ |
+#ifndef CONTENT_BROWSER_RENDERER_HOST_MEDIA_MOJO_SERVICE_LAUNCHED_VIDEO_CAPTURE_DEVICE_H_ |
+#define CONTENT_BROWSER_RENDERER_HOST_MEDIA_MOJO_SERVICE_LAUNCHED_VIDEO_CAPTURE_DEVICE_H_ |
+ |
+#include "content/browser/renderer_host/media/video_capture_provider.h" |
+#include "services/video_capture/public/interfaces/device.mojom.h" |
+ |
+namespace content { |
+ |
+// Implementation of LaunchedVideoCaptureDevice that uses the "video_capture" |
+// Mojo service. |
+class MojoServiceLaunchedVideoCaptureDevice |
+ : public LaunchedVideoCaptureDevice { |
+ public: |
+ MojoServiceLaunchedVideoCaptureDevice(video_capture::mojom::DevicePtr device); |
+ ~MojoServiceLaunchedVideoCaptureDevice() override; |
+ |
+ // LaunchedVideoCaptureDevice implementation: |
+ void GetPhotoCapabilities( |
+ media::VideoCaptureDevice::GetPhotoCapabilitiesCallback callback) |
+ const override; |
+ void SetPhotoOptions( |
+ media::mojom::PhotoSettingsPtr settings, |
+ media::VideoCaptureDevice::SetPhotoOptionsCallback callback) override; |
+ void TakePhoto( |
+ media::VideoCaptureDevice::TakePhotoCallback callback) override; |
+ void MaybeSuspendDevice() override; |
+ void ResumeDevice() override; |
+ void RequestRefreshFrame() override; |
+ |
+ void SetDesktopCaptureWindowIdAsync(gfx::NativeViewId window_id, |
+ base::OnceClosure done_cb) override; |
+ |
+ void OnUtilizationReport(int frame_feedback_id, double utilization) override; |
+ |
+ private: |
+ void OnGetPhotoCapabilitiesResponse( |
+ media::VideoCaptureDevice::GetPhotoCapabilitiesCallback callback, |
+ media::mojom::PhotoCapabilitiesPtr capabilities) const; |
+ void OnSetPhotoOptionsResponse( |
+ media::VideoCaptureDevice::SetPhotoOptionsCallback callback, |
+ bool success); |
+ void OnTakePhotoResponse( |
+ media::VideoCaptureDevice::TakePhotoCallback callback, |
+ media::mojom::BlobPtr blob); |
+ void OnLostConnectionToDevice(); |
+ |
+ video_capture::mojom::DevicePtr device_; |
+ base::ThreadChecker thread_checker_; |
+}; |
+ |
+} // namespace content |
+ |
+#endif // CONTENT_BROWSER_RENDERER_HOST_MEDIA_MOJO_SERVICE_LAUNCHED_VIDEO_CAPTURE_DEVICE_H_ |