summaryrefslogtreecommitdiff
path: root/src/libcamera/include/pipeline_handler.h
diff options
context:
space:
mode:
authorJacopo Mondi <jacopo@jmondi.org>2019-01-24 09:39:46 +0100
committerJacopo Mondi <jacopo@jmondi.org>2019-01-25 14:22:08 +0100
commita6c8f58d9641e8c89cf5e80dc2605842da04e913 (patch)
tree84e010c6d06deea5a03316b20388d6c009b00b17 /src/libcamera/include/pipeline_handler.h
parent987bd370b0aa1778271fdac39a04ab35adfffb3a (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.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