summaryrefslogtreecommitdiff
path: root/src/ipa/ipu3
/* SPDX-License-Identifier: GPL-2.0-or-later */ /* * Copyright (C) 2019, Google Inc. * * main_window.h - qcam - Main application window */ #ifndef __QCAM_MAIN_WINDOW_H__ #define __QCAM_MAIN_WINDOW_H__ #include <memory> #include <vector> #include <QElapsedTimer> #include <QIcon> #include <QMainWindow> #include <QMutex> #include <QObject> #include <QQueue> #include <QTimer> #include <libcamera/buffer.h> #include <libcamera/camera.h> #include <libcamera/camera_manager.h> #include <libcamera/controls.h> #include <libcamera/framebuffer_allocator.h> #include <libcamera/request.h> #include <libcamera/stream.h> #include "../cam/stream_options.h" #include "viewfinder.h" using namespace libcamera; class QAction; class QComboBox; class HotplugEvent; enum { OptCamera = 'c', OptHelp = 'h', OptRenderer = 'r', OptStream = 's', OptVerbose = 'v', }; class MainWindow : public QMainWindow { Q_OBJECT public: MainWindow(CameraManager *cm, const OptionsParser::Options &options); ~MainWindow(); bool event(QEvent *e) override; private Q_SLOTS: void quit(); void updateTitle(); void switchCamera(int index); void toggleCapture(bool start); void saveImageAs(); void captureRaw(); void processRaw(FrameBuffer *buffer, const ControlList &metadata); void queueRequest(FrameBuffer *buffer); private: int createToolbars(); std::string chooseCamera(); int openCamera(); int startCapture(); void stopCapture(); void addCamera(std::shared_ptr<Camera> camera); void removeCamera(std::shared_ptr<Camera> camera); void requestComplete(Request *request); void processCapture(); void processHotplug(HotplugEvent *e); void processViewfinder(FrameBuffer *buffer); /* UI elements */ QToolBar *toolbar_; QAction *startStopAction_; QComboBox *cameraCombo_; QAction *saveRaw_; ViewFinder *viewfinder_; QIcon iconPlay_; QIcon iconStop_; QString title_; QTimer titleTimer_; /* Options */ const OptionsParser
AgeCommit message (Expand)Author
2021-11-15ipa: ipu3: awb: Add support for color temperatureJean-Michel Hautbois
2021-11-15ipa: ipu3: agc: Store exposure in units of timeJean-Michel Hautbois
2021-11-15ipa: ipu3: agc: Update previous exposure valueJean-Michel Hautbois
2021-11-15ipa: ipu3: agc: Improve gain calculationJean-Michel Hautbois
2021-11-15ipa: ipu3: agc: Refactor ev gain calculation and testingJean-Michel Hautbois
2021-11-15ipa: ipu3: agc: Compute the gain for each frameJean-Michel Hautbois
2021-11-15ipa: ipu3: agc: Limit the number of saturated cellsJean-Michel Hautbois
ipa: ipu3: agc: Introduce previous exposure valueJean-Michel Hautbois
2021-10-22ipa: ipu3: agc: Rename gains properlyJean-Michel Hautbois
2021-10-22ipa: ipu3: agc: Simplify division of exposure/gainJean-Michel Hautbois
2021-10-22ipa: ipu3: agc: Use filtered exposure valuesJean-Michel Hautbois
2021-10-22ipa: ipu3: agc: Change analogue gain limitsJean-Michel Hautbois
2021-10-22ipa: ipu3: agc: Change exposure limitsJean-Michel Hautbois
2021-10-22ipa: ipu3: agc: Rename exposure values properlyJean-Michel Hautbois
2021-10-22ipa: ipu3: awb: Change minimal green threshold valueJean-Michel Hautbois
2021-10-22ipa: ipu3: awb: Use saturation under 90%Jean-Michel Hautbois
2021-10-22ipa: ipu3: set frameContext before controlsJean-Michel Hautbois
2021-10-22ipa: ipu3: awb: Set a threshold for the green saturationJean-Michel Hautbois
2021-10-19ipa: ipu3: agc: Remove "using" directive from agc.h headerLaurent Pinchart
2021-10-19ipa: ipu3: awb: Don't pass member variable to member functionLaurent Pinchart
2021-10-15ipa: ipu3: Update camera controls in configure()Jacopo Mondi
2021-10-06ipa: ipu3: Replace ipa::ipu3::algorithms::Ipu3AwbCellJean-Michel Hautbois
2021-10-06ipa: ipu3: agc: Rewrite and simplify the brightness loopJean-Michel Hautbois
2021-10-06ipa: ipu3: awb: Introduce Black Level CorrectionJean-Michel Hautbois
2021-10-06ipa: ipu3: awb: Use the line stride for the statsJean-Michel Hautbois