/* SPDX-License-Identifier: LGPL-2.1-or-later */ /* * Copyright (C) 2018, Google Inc. * * camera_manager.h - Camera management */ #ifndef __LIBCAMERA_CAMERA_MANAGER_H__ #define __LIBCAMERA_CAMERA_MANAGER_H__ #include #include #include #include #include #include #include namespace libcamera { class Camera; class CameraManager : public Object, public Extensible { LIBCAMERA_DECLARE_PRIVATE() public: CameraManager(); ~CameraManager(); int start(); void stop(); std::vector> cameras() const; std::shared_ptr get(const std::string &name); std::shared_ptr get(dev_t devnum); void addCamera(std::shared_ptr camera, const std::vector &devnums); void removeCamera(std::shared_ptr camera); static const std::string &version() { return version_; } Signal> cameraAdded; Signal> cameraRemoved; private: LIBCAMERA_DISABLE_COPY(CameraManager) static const std::string version_; static CameraManager *self_; }; } /* namespace libcamera */ #endif /* __LIBCAMERA_CAMERA_MANAGER_H__ */