blob: ed504be387b22e489a25a75bee61fb16a7f578f6 [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.
*/
#ifndef CAMERA_COMMON_LIBCAMERA_CONNECTOR_CAMERA_MODULE_CALLBACKS_H_
#define CAMERA_COMMON_LIBCAMERA_CONNECTOR_CAMERA_MODULE_CALLBACKS_H_
#include <base/callback.h>
#include <mojo/public/cpp/bindings/associated_binding.h>
#include "mojo/camera_common.mojom.h"
namespace cros {
class CameraModuleCallbacks final : public mojom::CameraModuleCallbacks {
public:
using DeviceStatusCallback = base::Callback<void(int32_t, bool)>;
explicit CameraModuleCallbacks(DeviceStatusCallback device_status_callback);
// Resets the current associated binding |camera_module_callbacks_|, creates a
// new associated CameraModuleCallbacks pointer info, binds the request and
// returns the associated pointer info.
mojom::CameraModuleCallbacksAssociatedPtrInfo GetModuleCallbacks();
void CameraDeviceStatusChange(int32_t camera_id,
mojom::CameraDeviceStatus new_status) override;
void TorchModeStatusChange(int32_t camera_id,
mojom::TorchModeStatus new_status) override;
private:
mojo::AssociatedBinding<mojom::CameraModuleCallbacks>
camera_module_callbacks_;
DeviceStatusCallback device_status_callback_;
};
} // namespace cros
#endif // CAMERA_COMMON_LIBCAMERA_CONNECTOR_CAMERA_MODULE_CALLBACKS_H_