summaryrefslogtreecommitdiff
path: root/include/libcamera/internal
diff options
context:
space:
mode:
authorLaurent Pinchart <laurent.pinchart@ideasonboard.com>2021-06-28 01:02:44 +0300
committerLaurent Pinchart <laurent.pinchart@ideasonboard.com>2021-07-12 19:59:22 +0300
commitd6d4710d047528a60c5e436c9bd0b29301c40f3c (patch)
tree70edba7df2d281c4c643d40a7bc52ec7636d3f2f /include/libcamera/internal
parent689811d87a182807ad98b6f4310ea201d4a11c8f (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/internal')
-rw-r--r--include/libcamera/internal/framebuffer.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/include/libcamera/internal/framebuffer.h b/include/libcamera/internal/framebuffer.h
index 0c76fc62..a11e895d 100644
--- a/include/libcamera/internal/framebuffer.h
+++ b/include/libcamera/internal/framebuffer.h
@@ -47,6 +47,19 @@ public:
MappedFrameBuffer(const FrameBuffer *buffer, int flags);
};
+class FrameBuffer::Private : public Extensible::Private
+{
+ LIBCAMERA_DECLARE_PUBLIC(FrameBuffer)
+
+public:
+ Private(FrameBuffer *buffer);
+
+ void setRequest(Request *request) { request_ = request; }
+
+private:
+ Request *request_;
+};
+
} /* namespace libcamera */
#endif /* __LIBCAMERA_INTERNAL_FRAMEBUFFER_H__ */