summaryrefslogtreecommitdiff
path: root/src/libcamera/include/pipeline_handler.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/libcamera/include/pipeline_handler.h')
-rw-r--r--src/libcamera/include/pipeline_handler.h18
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