Index: services/video_capture/video_capture_service.h |
diff --git a/services/video_capture/video_capture_service.h b/services/video_capture/video_capture_service.h |
index 4d85457ce9b59d069255f91259c5b14c89f1dfa4..d7dfbdb27bb6019a21325f70b30fdbba960ec791 100644 |
--- a/services/video_capture/video_capture_service.h |
+++ b/services/video_capture/video_capture_service.h |
@@ -2,22 +2,28 @@ |
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
-#ifndef SERVICES_VIDEO_CAPTURE_VIDEO_CAPTURE_SERVICE_H_ |
-#define SERVICES_VIDEO_CAPTURE_VIDEO_CAPTURE_SERVICE_H_ |
+#ifndef SERVICES_VIDEO_CAPTURE_SERVICE_H_ |
+#define SERVICES_VIDEO_CAPTURE_SERVICE_H_ |
#include <memory> |
#include "mojo/public/cpp/bindings/binding_set.h" |
#include "services/shell/public/cpp/service.h" |
+#include "services/video_capture/public/interfaces/service_configurator.mojom.h" |
#include "services/video_capture/public/interfaces/video_capture_device_factory.mojom.h" |
-#include "services/video_capture/video_capture_device_factory_impl.h" |
namespace video_capture { |
+class VideoCaptureDeviceFactoryImpl; |
+class ServiceConfiguratorImpl; |
+ |
// Exposes a single internal instance of VideoCaptureDeviceFactoryImpl |
-// through a Mojo Shell Service. |
+// through a Mojo Shell Service. Additionally exposes an instance of |
+// ServiceConfiguratorImpl that can be used to configure the |
+// VideoCaptureDeviceFactoryImpl instance. |
class VideoCaptureService |
: public shell::Service, |
+ public shell::InterfaceFactory<mojom::ServiceConfigurator>, |
public shell::InterfaceFactory<mojom::VideoCaptureDeviceFactory> { |
public: |
VideoCaptureService(); |
@@ -27,15 +33,21 @@ class VideoCaptureService |
bool OnConnect(const shell::Identity& remote_identity, |
shell::InterfaceRegistry* registry) override; |
+ // shell::InterfaceFactory<mojom::ServiceConfigurator>: |
+ void Create(const shell::Identity& remote_identity, |
+ mojom::ServiceConfiguratorRequest request) override; |
+ |
// shell::InterfaceFactory<mojom::VideoCaptureDeviceFactory>: |
void Create(const shell::Identity& remote_identity, |
mojom::VideoCaptureDeviceFactoryRequest request) override; |
private: |
- mojo::BindingSet<mojom::VideoCaptureDeviceFactory> bindings_; |
- VideoCaptureDeviceFactoryImpl device_factory_; |
+ mojo::BindingSet<mojom::ServiceConfigurator> configurator_bindings_; |
+ mojo::BindingSet<mojom::VideoCaptureDeviceFactory> factory_bindings_; |
+ std::unique_ptr<VideoCaptureDeviceFactoryImpl> device_factory_; |
+ std::unique_ptr<ServiceConfiguratorImpl> configurator_; |
}; |
} // namespace video_capture |
-#endif // SERVICES_VIDEO_CAPTURE_VIDEO_CAPTURE_SERVICE_H_ |
+#endif // SERVICES_VIDEO_CAPTURE_SERVICE_H_ |