diff options
author | Show Liu <show.liu@linaro.org> | 2020-09-11 16:55:12 +0800 |
---|---|---|
committer | Laurent Pinchart <laurent.pinchart@ideasonboard.com> | 2020-09-15 05:10:35 +0300 |
commit | 2daa704c968c8aa7a4b209450f228b41e9d42d85 (patch) | |
tree | b11e6376432fedeac964858e1019166bd379a569 /src/qcam/viewfinder.h | |
parent | 4a4a3e715b8314c56a2a32788d92fdec464af7b7 (diff) |
qcam: New viewfinder hierarchy
Create ViewFinder base class and rename the original ViewFinder
as QPainter-based ViewFinder.
Signed-off-by: Show Liu <show.liu@linaro.org>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Diffstat (limited to 'src/qcam/viewfinder.h')
-rw-r--r-- | src/qcam/viewfinder.h | 57 |
1 files changed, 11 insertions, 46 deletions
diff --git a/src/qcam/viewfinder.h b/src/qcam/viewfinder.h index 26a13205..67da1df2 100644 --- a/src/qcam/viewfinder.h +++ b/src/qcam/viewfinder.h @@ -2,70 +2,35 @@ /* * Copyright (C) 2019, Google Inc. * - * viewfinder.h - qcam - Viewfinder + * viewfinder.h - qcam - Viewfinder base class */ #ifndef __QCAM_VIEWFINDER_H__ #define __QCAM_VIEWFINDER_H__ -#include <stddef.h> - -#include <QIcon> -#include <QList> #include <QImage> -#include <QMutex> +#include <QList> #include <QSize> -#include <QWidget> #include <libcamera/buffer.h> -#include <libcamera/pixel_format.h> - -#include "format_converter.h" - -class QImage; +#include <libcamera/formats.h> struct MappedBuffer { void *memory; size_t size; }; -class ViewFinder : public QWidget +class ViewFinder { - Q_OBJECT - public: - ViewFinder(QWidget *parent); - ~ViewFinder(); - - const QList<libcamera::PixelFormat> &nativeFormats() const; - - int setFormat(const libcamera::PixelFormat &format, const QSize &size); - void render(libcamera::FrameBuffer *buffer, MappedBuffer *map); - void stop(); - - QImage getCurrentImage(); - -Q_SIGNALS: - void renderComplete(libcamera::FrameBuffer *buffer); - -protected: - void paintEvent(QPaintEvent *) override; - QSize sizeHint() const override; - -private: - FormatConverter converter_; + virtual ~ViewFinder() {} - libcamera::PixelFormat format_; - QSize size_; + virtual const QList<libcamera::PixelFormat> &nativeFormats() const = 0; - /* Camera stopped icon */ - QSize vfSize_; - QIcon icon_; - QPixmap pixmap_; + virtual int setFormat(const libcamera::PixelFormat &format, const QSize &size) = 0; + virtual void render(libcamera::FrameBuffer *buffer, MappedBuffer *map) = 0; + virtual void stop() = 0; - /* Buffer and render image */ - libcamera::FrameBuffer *buffer_; - QImage image_; - QMutex mutex_; /* Prevent concurrent access to image_ */ + virtual QImage getCurrentImage() = 0; }; -#endif /* __QCAM_VIEWFINDER__ */ +#endif /* __QCAM_VIEWFINDER_H__ */ |