blob: 21801ee09dacbf54eaea25dd779c85f28a8fa2e6 [file] [log] [blame]
/*
* 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 "arc/common.h"
#include "hal_adapter/camera_hal_adapter.h"
namespace arc {
CameraModuleDelegate::CameraModuleDelegate(
CameraHalAdapter* camera_hal_adapter,
scoped_refptr<base::SingleThreadTaskRunner> task_runner)
: internal::MojoBinding<mojom::CameraModule>(task_runner),
camera_hal_adapter_(camera_hal_adapter) {}
CameraModuleDelegate::~CameraModuleDelegate() {}
void CameraModuleDelegate::OpenDevice(
int32_t device_id,
mojom::Camera3DeviceOpsRequest device_ops_request,
const OpenDeviceCallback& callback) {
VLOGF_ENTER();
DCHECK(task_runner_->BelongsToCurrentThread());
mojom::Camera3DeviceOpsPtr device_ops;
callback.Run(camera_hal_adapter_->OpenDevice(device_id,
std::move(device_ops_request)));
}
void CameraModuleDelegate::GetNumberOfCameras(
const GetNumberOfCamerasCallback& callback) {
VLOGF_ENTER();
DCHECK(task_runner_->BelongsToCurrentThread());
callback.Run(camera_hal_adapter_->GetNumberOfCameras());
}
void CameraModuleDelegate::GetCameraInfo(
int32_t device_id,
const GetCameraInfoCallback& callback) {
VLOGF_ENTER();
DCHECK(task_runner_->BelongsToCurrentThread());
mojom::CameraInfoPtr camera_info;
int32_t result = camera_hal_adapter_->GetCameraInfo(device_id, &camera_info);
callback.Run(result, std::move(camera_info));
}
void CameraModuleDelegate::SetCallbacks(
mojom::CameraModuleCallbacksPtr callbacks,
const SetCallbacksCallback& callback) {
VLOGF_ENTER();
DCHECK(task_runner_->BelongsToCurrentThread());
callback.Run(camera_hal_adapter_->SetCallbacks(std::move(callbacks)));
}
} // namespace arc