| /* |
| * Copyright 2016 The Chromium OS 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 "hal_adapter/camera_module_delegate.h" |
| |
| #include <utility> |
| |
| #include "cros-camera/common.h" |
| #include "hal_adapter/camera_hal_adapter.h" |
| |
| namespace cros { |
| |
| CameraModuleDelegate::CameraModuleDelegate( |
| CameraHalAdapter* camera_hal_adapter, |
| scoped_refptr<base::SingleThreadTaskRunner> task_runner, |
| mojom::CameraClientType camera_client_type) |
| : internal::MojoBinding<mojom::CameraModule>(task_runner), |
| camera_hal_adapter_(camera_hal_adapter), |
| camera_client_type_(camera_client_type) {} |
| |
| CameraModuleDelegate::~CameraModuleDelegate() {} |
| |
| void CameraModuleDelegate::OpenDevice( |
| int32_t camera_id, |
| mojom::Camera3DeviceOpsRequest device_ops_request, |
| OpenDeviceCallback callback) { |
| VLOGF_ENTER(); |
| DCHECK(task_runner_->BelongsToCurrentThread()); |
| mojom::Camera3DeviceOpsPtr device_ops; |
| std::move(callback).Run(camera_hal_adapter_->OpenDevice( |
| camera_id, std::move(device_ops_request), camera_client_type_)); |
| } |
| |
| void CameraModuleDelegate::GetNumberOfCameras( |
| GetNumberOfCamerasCallback callback) { |
| VLOGF_ENTER(); |
| DCHECK(task_runner_->BelongsToCurrentThread()); |
| std::move(callback).Run(camera_hal_adapter_->GetNumberOfCameras()); |
| } |
| |
| void CameraModuleDelegate::GetCameraInfo(int32_t camera_id, |
| GetCameraInfoCallback callback) { |
| VLOGF_ENTER(); |
| DCHECK(task_runner_->BelongsToCurrentThread()); |
| mojom::CameraInfoPtr camera_info; |
| int32_t result = camera_hal_adapter_->GetCameraInfo(camera_id, &camera_info); |
| std::move(callback).Run(result, std::move(camera_info)); |
| } |
| |
| void CameraModuleDelegate::SetCallbacks( |
| mojom::CameraModuleCallbacksPtr callbacks, SetCallbacksCallback callback) { |
| VLOGF_ENTER(); |
| DCHECK(task_runner_->BelongsToCurrentThread()); |
| std::move(callback).Run( |
| camera_hal_adapter_->SetCallbacks(std::move(callbacks))); |
| } |
| |
| void CameraModuleDelegate::SetTorchMode(int32_t camera_id, |
| bool enabled, |
| SetTorchModeCallback callback) { |
| VLOGF_ENTER(); |
| DCHECK(task_runner_->BelongsToCurrentThread()); |
| std::move(callback).Run( |
| camera_hal_adapter_->SetTorchMode(camera_id, enabled)); |
| } |
| |
| void CameraModuleDelegate::Init(InitCallback callback) { |
| VLOGF_ENTER(); |
| DCHECK(task_runner_->BelongsToCurrentThread()); |
| std::move(callback).Run(camera_hal_adapter_->Init()); |
| } |
| |
| void CameraModuleDelegate::GetVendorTagOps( |
| mojom::VendorTagOpsRequest vendor_tag_ops_request, |
| GetVendorTagOpsCallback callback) { |
| VLOGF_ENTER(); |
| DCHECK(task_runner_->BelongsToCurrentThread()); |
| camera_hal_adapter_->GetVendorTagOps(std::move(vendor_tag_ops_request)); |
| std::move(callback).Run(); |
| } |
| |
| void CameraModuleDelegate::SetCallbacksAssociated( |
| mojom::CameraModuleCallbacksAssociatedPtrInfo callbacks_info, |
| SetCallbacksAssociatedCallback callback) { |
| VLOGF_ENTER(); |
| DCHECK(task_runner_->BelongsToCurrentThread()); |
| std::move(callback).Run( |
| camera_hal_adapter_->SetCallbacksAssociated(std::move(callbacks_info))); |
| } |
| |
| } // namespace cros |