summaryrefslogtreecommitdiff
path: root/src/qcam/main_window.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/qcam/main_window.h')
-rw-r--r--src/qcam/main_window.h54
1 files changed, 54 insertions, 0 deletions
diff --git a/src/qcam/main_window.h b/src/qcam/main_window.h
new file mode 100644
index 00000000..5e27a8fd
--- /dev/null
+++ b/src/qcam/main_window.h
@@ -0,0 +1,54 @@
+/* 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 <map>
+
+#include <QMainWindow>
+
+#include <libcamera/camera.h>
+#include <libcamera/stream.h>
+
+#include "../cam/options.h"
+
+using namespace libcamera;
+
+class ViewFinder;
+
+enum {
+ OptCamera = 'c',
+ OptHelp = 'h',
+};
+
+class MainWindow : public QMainWindow
+{
+public:
+ MainWindow(const OptionsParser::Options &options);
+ ~MainWindow();
+
+private:
+ int openCamera();
+
+ int startCapture();
+ int configureStreams(Camera *camera, std::set<Stream *> &streams);
+ void stopCapture();
+
+ void requestComplete(Request *request,
+ const std::map<Stream *, Buffer *> &buffers);
+ int display(Buffer *buffer);
+
+ const OptionsParser::Options &options_;
+
+ std::shared_ptr<Camera> camera_;
+ bool isCapturing_;
+ std::map<Stream *, StreamConfiguration> config_;
+
+ ViewFinder *viewfinder_;
+};
+
+#endif /* __QCAM_MAIN_WINDOW__ */