| /* |
| * Copyright 2016 The ChromiumOS Authors |
| * Use of this source code is governed by a BSD-style license that can be |
| * found in the LICENSE file. |
| */ |
| |
| #ifndef CAMERA_HAL_ADAPTER_CAMERA_MODULE_DELEGATE_H_ |
| #define CAMERA_HAL_ADAPTER_CAMERA_MODULE_DELEGATE_H_ |
| |
| #include "camera/mojo/camera3.mojom.h" |
| #include "camera/mojo/camera_common.mojom.h" |
| #include "camera/mojo/cros_camera_service.mojom.h" |
| #include "common/utils/cros_camera_mojo_utils.h" |
| |
| namespace cros { |
| |
| class CameraHalAdapter; |
| |
| class CameraModuleDelegate final |
| : public internal::MojoReceiver<mojom::CameraModule> { |
| public: |
| CameraModuleDelegate(CameraHalAdapter* camera_hal_adapter, |
| scoped_refptr<base::SingleThreadTaskRunner> task_runner, |
| mojom::CameraClientType camera_client_type); |
| |
| CameraModuleDelegate(const CameraModuleDelegate&) = delete; |
| CameraModuleDelegate& operator=(const CameraModuleDelegate&) = delete; |
| |
| ~CameraModuleDelegate(); |
| |
| private: |
| void OpenDevice( |
| int32_t camera_id, |
| mojo::PendingReceiver<mojom::Camera3DeviceOps> device_ops_receiver, |
| OpenDeviceCallback callback) final; |
| |
| void GetNumberOfCameras(GetNumberOfCamerasCallback callback) final; |
| |
| void GetCameraInfo(int32_t camera_id, GetCameraInfoCallback callback) final; |
| |
| // TODO(b/169324225): Deprecated. Use SetCallbacksAssociated instead. |
| void SetCallbacks(mojo::PendingRemote<mojom::CameraModuleCallbacks> callbacks, |
| SetCallbacksCallback callback) final; |
| |
| void SetTorchMode(int32_t camera_id, |
| bool enabled, |
| SetTorchModeCallback callback) final; |
| |
| void Init(InitCallback callback) final; |
| |
| void GetVendorTagOps( |
| mojo::PendingReceiver<mojom::VendorTagOps> vendor_tag_ops_receiver, |
| GetVendorTagOpsCallback callback) final; |
| |
| void SetCallbacksAssociated( |
| mojo::PendingAssociatedRemote<mojom::CameraModuleCallbacks> callbacks, |
| SetCallbacksAssociatedCallback callback) final; |
| |
| CameraHalAdapter* camera_hal_adapter_; |
| mojom::CameraClientType camera_client_type_; |
| }; |
| |
| } // namespace cros |
| |
| #endif // CAMERA_HAL_ADAPTER_CAMERA_MODULE_DELEGATE_H_ |