/* SPDX-License-Identifier: GPL-2.0-or-later */ /* * Copyright (C) 2019, Google Inc. * * viewfinder_qt.h - qcam - QPainter-based ViewFinder */ #pragma once #include #include #include #include #include #include #include #include #include #include "format_converter.h" #include "viewfinder.h" class ViewFinderQt : public QWidget, public ViewFinder { Q_OBJECT public: ViewFinderQt(QWidget *parent); ~ViewFinderQt(); const QList &nativeFormats() const override; int setFormat(const libcamera::PixelFormat &format, const QSize &size, const libcamera::ColorSpace &colorSpace, unsigned int stride) override; void render(libcamera::FrameBuffer *buffer, Image *image) override; void stop() override; QImage getCurrentImage() override; Q_SIGNALS: void renderComplete(libcamera::FrameBuffer *buffer); protected: void paintEvent(QPaintEvent *) override; QSize sizeHint() const override; private: FormatConverter converter_; libcamera::PixelFormat format_; QSize size_; /* Camera stopped icon */ QSize vfSize_; QIcon icon_; QPixmap pixmap_; /* Buffer and render image */ libcamera::FrameBuffer *buffer_; QImage image_; QMutex mutex_; /* Prevent concurrent access to image_ */ }; 3abdf8963b5b0f2a8af7481ca08d6c1a'>refslogtreecommitdiff
blob: fdea2f10d95d5c449ae760b8dac15f5b58e92c13 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19