diff options
author | Laurent Pinchart <laurent.pinchart@ideasonboard.com> | 2021-07-23 02:57:44 +0300 |
---|---|---|
committer | Laurent Pinchart <laurent.pinchart@ideasonboard.com> | 2021-08-16 23:57:28 +0300 |
commit | 32b8832e38e5311dcbed5badfad3d69e5981ed95 (patch) | |
tree | d78355ef8ebb1a75248f11464723fd73fb52fe67 /include | |
parent | e77c8951e9ff91bf2bacf81791a882ccb3cee30b (diff) |
libcamera: camera: Pass Private pointer to Camera constructor
In order to allow subclassing Camera::Private in pipeline handlers, pass
the pointer to the private data to the Camera constructor, and to the
Camera::createCamera() function.
The Camera::Private id_ and streams_ members now need to be initialized
by the Camera constructor instead of the Camera::Private constructor, to
allow storage of the streams in a pipeline handler-specific subclass of
Camera::Private.
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.h | 4 | ||||
-rw-r--r-- | include/libcamera/internal/camera.h | 3 |
2 files changed, 3 insertions, 4 deletions
diff --git a/include/libcamera/camera.h b/include/libcamera/camera.h index b081907e..05cdab72 100644 --- a/include/libcamera/camera.h +++ b/include/libcamera/camera.h @@ -78,7 +78,7 @@ class Camera final : public Object, public std::enable_shared_from_this<Camera>, LIBCAMERA_DECLARE_PRIVATE() public: - static std::shared_ptr<Camera> create(PipelineHandler *pipe, + static std::shared_ptr<Camera> create(std::unique_ptr<Private> d, const std::string &id, const std::set<Stream *> &streams); @@ -107,7 +107,7 @@ public: private: LIBCAMERA_DISABLE_COPY(Camera) - Camera(PipelineHandler *pipe, const std::string &id, + Camera(std::unique_ptr<Private> d, const std::string &id, const std::set<Stream *> &streams); ~Camera(); diff --git a/include/libcamera/internal/camera.h b/include/libcamera/internal/camera.h index b60ed140..9ec8321a 100644 --- a/include/libcamera/internal/camera.h +++ b/include/libcamera/internal/camera.h @@ -26,8 +26,7 @@ class Camera::Private : public Extensible::Private LIBCAMERA_DECLARE_PUBLIC(Camera) public: - Private(PipelineHandler *pipe, const std::string &id, - const std::set<Stream *> &streams); + Private(PipelineHandler *pipe); ~Private(); private: |