blob: af462f852d6a708a2ddcbee693f9761815ada804 [file] [log] [blame]
/*
* Copyright 2020 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 "cros-camera/common.h"
#include <utility>
#include "common/libcamera_connector/camera_module_callbacks.h"
namespace cros {
CameraModuleCallbacks::CameraModuleCallbacks(
DeviceStatusCallback device_status_callback)
: camera_module_callbacks_(this),
device_status_callback_(std::move(device_status_callback)) {}
mojom::CameraModuleCallbacksAssociatedPtrInfo
CameraModuleCallbacks::GetModuleCallbacks() {
mojom::CameraModuleCallbacksAssociatedPtrInfo
camera_module_callbacks_ptr_info;
mojom::CameraModuleCallbacksAssociatedRequest
camera_module_callbacks_request =
mojo::MakeRequest(&camera_module_callbacks_ptr_info);
if (camera_module_callbacks_.is_bound()) {
camera_module_callbacks_.Close();
}
camera_module_callbacks_.Bind(std::move(camera_module_callbacks_request));
return camera_module_callbacks_ptr_info;
}
void CameraModuleCallbacks::CameraDeviceStatusChange(
int32_t camera_id, mojom::CameraDeviceStatus new_status) {
LOGF(INFO) << "Camera " << camera_id << " status changed: " << new_status;
switch (new_status) {
case mojom::CameraDeviceStatus::CAMERA_DEVICE_STATUS_PRESENT:
device_status_callback_.Run(camera_id, true);
break;
case mojom::CameraDeviceStatus::CAMERA_DEVICE_STATUS_NOT_PRESENT:
device_status_callback_.Run(camera_id, false);
break;
default:
NOTREACHED() << "Unexpected new device status: " << new_status;
}
}
void CameraModuleCallbacks::TorchModeStatusChange(
int32_t camera_id, mojom::TorchModeStatus new_status) {
// We don't need to do anything for torch mode status change for now.
}
} // namespace cros