diff options
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 |