aboutsummaryrefslogtreecommitdiffstats
path: root/src/qcam/viewfinder.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/qcam/viewfinder.h')
-rw-r--r--src/qcam/viewfinder.h57
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__ */

Privacy Policy