diff options
author | Laurent Pinchart <laurent.pinchart@ideasonboard.com> | 2019-01-05 12:58:20 +0200 |
---|---|---|
committer | Laurent Pinchart <laurent.pinchart@ideasonboard.com> | 2019-01-08 16:23:16 +0200 |
commit | 8b0de29c416c81be2d98b73effe6c7315b1fc1e1 (patch) | |
tree | 8713f726e6ce9051c34920879e374c829dc36f6d /include | |
parent | f3829b5745be5ee448394da28b24943a807321bb (diff) |
libcamera: camera_manager: Make the class a singleton
There can only be a single camera manager instance in the application.
Creating it as a singleton helps avoiding mistakes. It also allows the
camera manager to be used as a storage of global data, such as the
future event dispatcher.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>
Reviewed-by: Jacopo Mondi <jacopo@jmondi.org>
Diffstat (limited to 'include')
-rw-r--r-- | include/libcamera/camera_manager.h | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/include/libcamera/camera_manager.h b/include/libcamera/camera_manager.h index 2768a5bd..e14da0f8 100644 --- a/include/libcamera/camera_manager.h +++ b/include/libcamera/camera_manager.h @@ -19,15 +19,19 @@ class PipelineHandler; class CameraManager { public: - CameraManager(); - int start(); void stop(); std::vector<std::string> list() const; Camera *get(const std::string &name); + static CameraManager *instance(); + private: + CameraManager(); + CameraManager(const CameraManager &) = delete; + void operator=(const CameraManager &) = delete; + DeviceEnumerator *enumerator_; std::vector<PipelineHandler *> pipes_; }; |