[libcamera-devel,12/12] android: mm: Provide helper macro for PIMPL
diff mbox series

Message ID 20210226132932.165484-13-jacopo@jmondi.org
State Superseded
Headers show
Series
  • android: Support memory backends
Related show

Commit Message

Jacopo Mondi Feb. 26, 2021, 1:29 p.m. UTC
Each memory backend has to declare a CameraBuffer class implementation
that bridges the API calls to each CameraBufferImpl implementation.

As the code is likely the same for most (if not all) backends, provide
a convenience macro that expands to the CameraBuffer class declaration.

Signed-off-by: Jacopo Mondi <jacopo@jmondi.org>
---
 src/android/camera_buffer.h               | 31 +++++++++++++++++++
 src/android/mm/android_generic_buffer.cpp | 35 +---------------------
 src/android/mm/cros_cbm.cpp               | 36 +----------------------
 3 files changed, 33 insertions(+), 69 deletions(-)

Patch
diff mbox series

diff --git a/src/android/camera_buffer.h b/src/android/camera_buffer.h
index b251e4514864..e7f50a4622f9 100644
--- a/src/android/camera_buffer.h
+++ b/src/android/camera_buffer.h
@@ -30,4 +30,35 @@  private:
 	CameraBufferImpl *impl_;
 };
 
+#define CAMERA_BUFFER_PIMPL							\
+	CameraBuffer::CameraBuffer(buffer_handle_t camera3Buffer, int flags)	\
+		: impl_(new CameraBuffer::CameraBufferImpl(camera3Buffer,	\
+							   flags))		\
+	{									\
+	}									\
+	CameraBuffer::~CameraBuffer()						\
+	{                                                                       \
+		delete impl_;                                                   \
+	}                                                                       \
+	bool CameraBuffer::isValid() const                                      \
+	{									\
+		return impl_->isValid();					\
+	}                                                                       \
+	unsigned int CameraBuffer::numPlanes() const                            \
+	{                                                                       \
+		return impl_->numPlanes();					\
+	}									\
+	ssize_t CameraBuffer::planeSize(unsigned int plane) const               \
+	{                                                                       \
+		return impl_->planeSize(plane);                                 \
+	}                                                                       \
+	const uint8_t *CameraBuffer::plane(unsigned int plane) const            \
+	{                                                                       \
+		return impl_->plane(plane);                                     \
+	}                                                                       \
+	uint8_t *CameraBuffer::plane(unsigned int plane)                        \
+	{                                                                       \
+		return impl_->plane(plane);                                     \
+	}
+
 #endif /* __ANDROID_CAMERA_BUFFER_H__ */
diff --git a/src/android/mm/android_generic_buffer.cpp b/src/android/mm/android_generic_buffer.cpp
index 10a43a61bd4d..2f532be83cc9 100644
--- a/src/android/mm/android_generic_buffer.cpp
+++ b/src/android/mm/android_generic_buffer.cpp
@@ -89,37 +89,4 @@  uint8_t *CameraBuffer::CameraBufferImpl::plane(unsigned int plane)
 	return maps_[plane].data();
 }
 
-CameraBuffer::CameraBuffer(buffer_handle_t camera3Buffer, int flags)
-	: impl_(new CameraBuffer::CameraBufferImpl(camera3Buffer, flags))
-{
-}
-
-CameraBuffer::~CameraBuffer()
-{
-	delete impl_;
-}
-
-bool CameraBuffer::isValid() const
-{
-	return impl_->isValid();
-}
-
-unsigned int CameraBuffer::numPlanes() const
-{
-	return impl_->numPlanes();
-}
-
-ssize_t CameraBuffer::planeSize(unsigned int plane) const
-{
-	return impl_->planeSize(plane);
-}
-
-const uint8_t *CameraBuffer::plane(unsigned int plane) const
-{
-	return impl_->plane(plane);
-}
-
-uint8_t *CameraBuffer::plane(unsigned int plane)
-{
-	return impl_->plane(plane);
-}
+CAMERA_BUFFER_PIMPL
diff --git a/src/android/mm/cros_cbm.cpp b/src/android/mm/cros_cbm.cpp
index 6c931c99d2d0..ad18aede663a 100644
--- a/src/android/mm/cros_cbm.cpp
+++ b/src/android/mm/cros_cbm.cpp
@@ -130,38 +130,4 @@  uint8_t *CameraBuffer::CameraBufferImpl::plane(unsigned int plane)
 	return static_cast<uint8_t *>(addr);
 }
 
-CameraBuffer::CameraBuffer(buffer_handle_t camera3Buffer, int flags)
-	: impl_(new CameraBuffer::CameraBufferImpl(camera3Buffer, flags))
-{
-}
-
-CameraBuffer::~CameraBuffer()
-{
-	delete impl_;
-}
-
-bool CameraBuffer::isValid() const
-{
-	return impl_->isValid();
-}
-
-unsigned int CameraBuffer::numPlanes() const
-{
-	return impl_->numPlanes();
-}
-
-ssize_t CameraBuffer::planeSize(unsigned int plane) const
-{
-	return impl_->planeSize(plane);
-}
-
-const uint8_t *CameraBuffer::plane(unsigned int plane) const
-{
-	return impl_->plane(plane);
-}
-
-uint8_t *CameraBuffer::plane(unsigned int plane)
-{
-	return impl_->plane(plane);
-}
-
+CAMERA_BUFFER_PIMPL