diff options
author | Jacopo Mondi <jacopo@jmondi.org> | 2019-01-24 09:39:46 +0100 |
---|---|---|
committer | Jacopo Mondi <jacopo@jmondi.org> | 2019-01-25 14:22:08 +0100 |
commit | a6c8f58d9641e8c89cf5e80dc2605842da04e913 (patch) | |
tree | 84e010c6d06deea5a03316b20388d6c009b00b17 /src/libcamera/include/pipeline_handler.h | |
parent | 987bd370b0aa1778271fdac39a04ab35adfffb3a (diff) |
libcamera: pipeline_handler: Add CameraData
Add class definition and methods to associate a Camera with specific data
in the pipeline_handler base class.
Reviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>
Signed-off-by: Jacopo Mondi <jacopo@jmondi.org>
Diffstat (limited to 'src/libcamera/include/pipeline_handler.h')
-rw-r--r-- | src/libcamera/include/pipeline_handler.h | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/libcamera/include/pipeline_handler.h b/src/libcamera/include/pipeline_handler.h index 804cce48..0db84217 100644 --- a/src/libcamera/include/pipeline_handler.h +++ b/src/libcamera/include/pipeline_handler.h @@ -18,6 +18,20 @@ class CameraManager; class DeviceEnumerator; class MediaDevice; +class Camera; +class CameraData +{ +public: + virtual ~CameraData() {} + +protected: + CameraData() {} + +private: + CameraData(const CameraData &) = delete; + void operator=(const CameraData &) = delete; +}; + class PipelineHandler : public std::enable_shared_from_this<PipelineHandler> { public: @@ -32,11 +46,15 @@ protected: void registerCamera(std::shared_ptr<Camera> camera); void hotplugMediaDevice(MediaDevice *media); + CameraData *cameraData(const Camera *camera); + void setCameraData(const Camera *camera, std::unique_ptr<CameraData> data); + private: virtual void disconnect(); void mediaDeviceDisconnected(MediaDevice *media); std::vector<std::weak_ptr<Camera>> cameras_; + std::map<const Camera *, std::unique_ptr<CameraData>> cameraData_; }; class PipelineHandlerFactory |