mirror of
https://git.libcamera.org/libcamera/libcamera.git
synced 2025-07-19 18:35:07 +03:00
The LIBCAMERA_DECLARE_PRIVATE() macro, used by the library classes that inherit from libcamera::Extensible in order to implement the PIMPL pattern, expands to: public: \ class Private; \ friend class Private; The 'klass' argument is not used and it might confuse developers as it might hint that the class that defines the pattern's implementation can be freely named, while it is actually hardcoded to 'Private'. Drop the argument from the macro definition. Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se> Reviewed-by: Hanlin Chen <hanlinchen@google.com> Signed-off-by: Jacopo Mondi <jacopo@jmondi.org>
66 lines
1.8 KiB
C++
66 lines
1.8 KiB
C++
/* SPDX-License-Identifier: LGPL-2.1-or-later */
|
|
/*
|
|
* Copyright (C) 2021, Google Inc.
|
|
*
|
|
* camera_buffer.h - Frame buffer handling interface definition
|
|
*/
|
|
#ifndef __ANDROID_CAMERA_BUFFER_H__
|
|
#define __ANDROID_CAMERA_BUFFER_H__
|
|
|
|
#include <hardware/camera3.h>
|
|
|
|
#include <libcamera/class.h>
|
|
#include <libcamera/span.h>
|
|
|
|
class CameraBuffer final : public libcamera::Extensible
|
|
{
|
|
LIBCAMERA_DECLARE_PRIVATE()
|
|
|
|
public:
|
|
CameraBuffer(buffer_handle_t camera3Buffer, int flags);
|
|
~CameraBuffer();
|
|
|
|
bool isValid() const;
|
|
|
|
unsigned int numPlanes() const;
|
|
|
|
libcamera::Span<const uint8_t> plane(unsigned int plane) const;
|
|
libcamera::Span<uint8_t> plane(unsigned int plane);
|
|
|
|
size_t jpegBufferSize(size_t maxJpegBufferSize) const;
|
|
};
|
|
|
|
#define PUBLIC_CAMERA_BUFFER_IMPLEMENTATION \
|
|
CameraBuffer::CameraBuffer(buffer_handle_t camera3Buffer, int flags) \
|
|
: Extensible(new Private(this, camera3Buffer, flags)) \
|
|
{ \
|
|
} \
|
|
CameraBuffer::~CameraBuffer() \
|
|
{ \
|
|
} \
|
|
bool CameraBuffer::isValid() const \
|
|
{ \
|
|
const Private *const d = LIBCAMERA_D_PTR(); \
|
|
return d->isValid(); \
|
|
} \
|
|
unsigned int CameraBuffer::numPlanes() const \
|
|
{ \
|
|
const Private *const d = LIBCAMERA_D_PTR(); \
|
|
return d->numPlanes(); \
|
|
} \
|
|
Span<const uint8_t> CameraBuffer::plane(unsigned int plane) const \
|
|
{ \
|
|
const Private *const d = LIBCAMERA_D_PTR(); \
|
|
return const_cast<Private *>(d)->plane(plane); \
|
|
} \
|
|
Span<uint8_t> CameraBuffer::plane(unsigned int plane) \
|
|
{ \
|
|
Private *const d = LIBCAMERA_D_PTR(); \
|
|
return d->plane(plane); \
|
|
} \
|
|
size_t CameraBuffer::jpegBufferSize(size_t maxJpegBufferSize) const \
|
|
{ \
|
|
const Private *const d = LIBCAMERA_D_PTR(); \
|
|
return d->jpegBufferSize(maxJpegBufferSize); \
|
|
}
|
|
#endif /* __ANDROID_CAMERA_BUFFER_H__ */
|