[libcamera-devel] [PATCH v2 3/3] qcam: Add --script to load capture script
Utkarsh Tiwari
utkarsh02t at gmail.com
Wed Jun 22 15:16:38 CEST 2022
Add --script as an individual option to load capture scripts.
Load the capture script before starting the capture.
Signed-off-by: Utkarsh Tiwari <utkarsh02t at gmail.com>
---
src/qcam/main.cpp | 3 +++
src/qcam/main_window.cpp | 10 ++++++++++
src/qcam/main_window.h | 1 +
3 files changed, 14 insertions(+)
diff --git a/src/qcam/main.cpp b/src/qcam/main.cpp
index d3f01a85..91166be5 100644
--- a/src/qcam/main.cpp
+++ b/src/qcam/main.cpp
@@ -43,6 +43,9 @@ OptionsParser::Options parseOptions(int argc, char *argv[])
"Set configuration of a camera stream", "stream", true);
parser.addOption(OptVerbose, OptionNone,
"Print verbose log messages", "verbose");
+ parser.addOption(OptCaptureScript, OptionString,
+ "Load a capture session configuration script from a file",
+ "script", ArgumentRequired, "script");
OptionsParser::Options options = parser.parse(argc, argv);
if (options.isSet(OptHelp))
diff --git a/src/qcam/main_window.cpp b/src/qcam/main_window.cpp
index 29da3947..17cc3185 100644
--- a/src/qcam/main_window.cpp
+++ b/src/qcam/main_window.cpp
@@ -151,6 +151,16 @@ MainWindow::MainWindow(CameraManager *cm, const OptionsParser::Options &options)
return;
}
+ if (options_.isSet(OptCaptureScript)) {
+ std::string scriptName = options_[OptCaptureScript].toString();
+ script_ = std::make_unique<CaptureScript>(camera_, scriptName);
+ if (!script_->valid()) {
+ QMessageBox::critical(this, "Invalid Script",
+ "Couldn't load the capture script");
+ script_.reset();
+ }
+ }
+
startStopAction_->setChecked(true);
}
diff --git a/src/qcam/main_window.h b/src/qcam/main_window.h
index 58df4e15..1b4a4fd6 100644
--- a/src/qcam/main_window.h
+++ b/src/qcam/main_window.h
@@ -42,6 +42,7 @@ enum {
OptRenderer = 'r',
OptStream = 's',
OptVerbose = 'v',
+ OptCaptureScript = 256,
};
class MainWindow : public QMainWindow
--
2.25.1
More information about the libcamera-devel
mailing list