diff options
author | Laurent Pinchart <laurent.pinchart@ideasonboard.com> | 2021-06-28 01:02:44 +0300 |
---|---|---|
committer | Laurent Pinchart <laurent.pinchart@ideasonboard.com> | 2021-07-12 19:59:22 +0300 |
commit | d6d4710d047528a60c5e436c9bd0b29301c40f3c (patch) | |
tree | 70edba7df2d281c4c643d40a7bc52ec7636d3f2f /include/libcamera/framebuffer.h | |
parent | 689811d87a182807ad98b6f4310ea201d4a11c8f (diff) |
libcamera: framebuffer: Make FrameBuffer class Extensible
Implement the D-Pointer design pattern in the FrameBuffer class to allow
changing internal data without affecting the public ABI.
Move the request_ field and the setRequest() function to the
FrameBuffer::Private class. This allows hiding the setRequest() function
from the public API, removing one todo item. More fields may be moved
later.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Jacopo Mondi <jacopo@jmondi.org>
Reviewed-by: Umang Jain <umang.jain@ideasonboard.com>
Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Diffstat (limited to 'include/libcamera/framebuffer.h')
-rw-r--r-- | include/libcamera/framebuffer.h | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/include/libcamera/framebuffer.h b/include/libcamera/framebuffer.h index baf22a46..28307890 100644 --- a/include/libcamera/framebuffer.h +++ b/include/libcamera/framebuffer.h @@ -35,8 +35,10 @@ struct FrameMetadata { std::vector<Plane> planes; }; -class FrameBuffer final +class FrameBuffer final : public Extensible { + LIBCAMERA_DECLARE_PRIVATE() + public: struct Plane { FileDescriptor fd; @@ -47,8 +49,7 @@ public: const std::vector<Plane> &planes() const { return planes_; } - Request *request() const { return request_; } - void setRequest(Request *request) { request_ = request; } + Request *request() const; const FrameMetadata &metadata() const { return metadata_; } unsigned int cookie() const { return cookie_; } @@ -63,7 +64,6 @@ private: std::vector<Plane> planes_; - Request *request_; FrameMetadata metadata_; unsigned int cookie_; |