/* SPDX-License-Identifier: GPL-2.0-or-later */ /* * Copyright (C) 2019, Google Inc. * * viewfinder_qt.h - qcam - QPainter-based ViewFinder */ #ifndef __QCAM_VIEWFINDER_QT_H__ #define __QCAM_VIEWFINDER_QT_H__ #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) override; void render(libcamera::FrameBuffer *buffer, MappedBuffer *map) 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_ */ }; #endif /* __QCAM_VIEWFINDER_QT_H__ */ nt Pinchart's clone of libcameragit repository hosting on libcamera.org
summaryrefslogtreecommitdiff
blob: f50681454d2f76ea8343834019914439c6484d39 (plain)
1
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-chevrons-right"><polyline points="13 17 18 12 13 7"></polyline><polyline points="6 17 11 12 6 7"></polyline></svg>