[{"id":24117,"web_url":"https://patchwork.libcamera.org/comment/24117/","msgid":"<b47d587c-af8d-7f52-a18e-9a8e2c524a7b@ideasonboard.com>","date":"2022-07-25T18:54:32","subject":"Re: [libcamera-devel] [PATCH v4 3/3] qcam: Add --script to load\n\tcapture script","submitter":{"id":86,"url":"https://patchwork.libcamera.org/api/people/86/","name":"Umang Jain","email":"umang.jain@ideasonboard.com"},"content":"Hi Utkarsh,\n\nOn 7/3/22 10:07, Utkarsh Tiwari via libcamera-devel wrote:\n> Add --script as an individual option to load capture scripts.\n> Load the capture script before starting the capture.\n>\n> If an invalid capture script has been given, show error\n> but start the capture without the script.\n\n\numm, why would you do that? If --script is specified, it is pretty clear \nthat the user intends to use the capture script. If there are errors in \nthe scripts, we sould fail loudly and not proceed with the start() at all.\n\nThe user 'might' get a false impression that the script is valid hence, \nthe capture is started and \"miss\" to  take a note of the invalidity \nerror. Was this discussed in previous iterations?\n\n>\n> Signed-off-by: Utkarsh Tiwari <utkarsh02t@gmail.com>\n> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n> ---\n>   src/qcam/main.cpp        |  3 +++\n>   src/qcam/main_window.cpp | 14 ++++++++++++++\n>   src/qcam/main_window.h   |  1 +\n>   3 files changed, 18 insertions(+)\n>\n> diff --git a/src/qcam/main.cpp b/src/qcam/main.cpp\n> index d3f01a85..91166be5 100644\n> --- a/src/qcam/main.cpp\n> +++ b/src/qcam/main.cpp\n> @@ -43,6 +43,9 @@ OptionsParser::Options parseOptions(int argc, char *argv[])\n>   \t\t\t \"Set configuration of a camera stream\", \"stream\", true);\n>   \tparser.addOption(OptVerbose, OptionNone,\n>   \t\t\t \"Print verbose log messages\", \"verbose\");\n> +\tparser.addOption(OptCaptureScript, OptionString,\n> +\t\t\t \"Load a capture session configuration script from a file\",\n> +\t\t\t \"script\", ArgumentRequired, \"script\");\n>   \n>   \tOptionsParser::Options options = parser.parse(argc, argv);\n>   \tif (options.isSet(OptHelp))\n> diff --git a/src/qcam/main_window.cpp b/src/qcam/main_window.cpp\n> index 4fbaeccc..7ec53a7c 100644\n> --- a/src/qcam/main_window.cpp\n> +++ b/src/qcam/main_window.cpp\n> @@ -151,6 +151,20 @@ MainWindow::MainWindow(CameraManager *cm, const OptionsParser::Options &options)\n>   \t\treturn;\n>   \t}\n>   \n> +\tif (options_.isSet(OptCaptureScript)) {\n> +\t\tstd::string scriptName = options_[OptCaptureScript].toString();\n> +\t\tscript_ = std::make_unique<CaptureScript>(camera_, scriptName);\n> +\t\tif (!script_->valid()) {\n> +\t\t\tQMessageBox::critical(this, \"Invalid Script\",\n> +\t\t\t\t\t      \"Couldn't load the capture script\");\n> +\t\t\tscript_.reset();\n> +\t\t}\n> +\n> +\t\t/* Show stopping availability. */\n> +\t\tscriptExecAction_->setIcon(QIcon(\":x-square.svg\"));\n> +\t\tscriptExecAction_->setText(\"Stop Script execution\");\n> +\t}\n> +\n>   \tstartStopAction_->setChecked(true);\n>   }\n>   \n> diff --git a/src/qcam/main_window.h b/src/qcam/main_window.h\n> index 2cdf7169..4d19ab64 100644\n> --- a/src/qcam/main_window.h\n> +++ b/src/qcam/main_window.h\n> @@ -42,6 +42,7 @@ enum {\n>   \tOptRenderer = 'r',\n>   \tOptStream = 's',\n>   \tOptVerbose = 'v',\n> +\tOptCaptureScript = 256,\n>   };\n>   \n>   class MainWindow : public QMainWindow","headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id 8BCA2BE173\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 25 Jul 2022 18:54:39 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id DB25B63312;\n\tMon, 25 Jul 2022 20:54:38 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 9B6676330A\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 25 Jul 2022 20:54:37 +0200 (CEST)","from [IPV6:2401:4900:1f3e:f7a:bc8f:12ed:b45f:c35d] (unknown\n\t[IPv6:2401:4900:1f3e:f7a:bc8f:12ed:b45f:c35d])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id A174D6D1;\n\tMon, 25 Jul 2022 20:54:36 +0200 (CEST)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1658775278;\n\tbh=WSN1kR4AQxegQLUGoC7IjLOhtuXpP/53/Di2L0TvjcU=;\n\th=Date:To:References:In-Reply-To:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:\n\tFrom;\n\tb=RW3+cIxJQDxoIfKbFY6xUVru+6MjyCvcG44DCEKFPlhll56u+26yT1FtOHB5iR/ur\n\tyoZpU8evx+XgtuibQTjS1McHq5kXd+/chgKTZaaSInDgy+hE8/z30U9fs+1ssgudFp\n\thb4JqbHK30NQnwGvBkZCxMuiTJ523Hr7S0xKI065qj1hVV1wwVaECHdZ9hLfGdb1zf\n\t4twWRN9r48+iGeM2DlNOqx+1HmSBm9NLvjvCK5EjyCUemuBYsW2vqoHPkeCLG4X3zp\n\t2a/jMJNIQcf/uLqGnC15tcJiDelRF3PeZIdOaQvibzPlSp99agU3MvuQk0SyoLDc/h\n\tlamcoQo/OvEIg==","v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1658775277;\n\tbh=WSN1kR4AQxegQLUGoC7IjLOhtuXpP/53/Di2L0TvjcU=;\n\th=Date:Subject:To:References:From:In-Reply-To:From;\n\tb=Sae8aGoiMxNJiAeb55LC/pz3UF/51mRnJgfWNqeFgEuzM+c3sbnPLAf7RvVdYwhXZ\n\tkn8bixY66Xeeywhwzz36XKm9t6m7CoywxAiazTvgNZX/S1iL+UlDULf1PfMRKe4nFY\n\tTeoqPXTEnXkYOsilR3mNrw0wH6o8xKRQJqq9E410="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=ideasonboard.com\n\theader.i=@ideasonboard.com\n\theader.b=\"Sae8aGoi\"; dkim-atps=neutral","Message-ID":"<b47d587c-af8d-7f52-a18e-9a8e2c524a7b@ideasonboard.com>","Date":"Tue, 26 Jul 2022 00:24:32 +0530","MIME-Version":"1.0","User-Agent":"Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101\n\tThunderbird/91.4.1","Content-Language":"en-US","To":"Utkarsh Tiwari <utkarsh02t@gmail.com>,\n\tlibcamera-devel@lists.libcamera.org","References":"<20220703043704.296872-1-utkarsh02t@gmail.com>\n\t<20220703043704.296872-4-utkarsh02t@gmail.com>","In-Reply-To":"<20220703043704.296872-4-utkarsh02t@gmail.com>","Content-Type":"text/plain; charset=UTF-8; format=flowed","Content-Transfer-Encoding":"8bit","Subject":"Re: [libcamera-devel] [PATCH v4 3/3] qcam: Add --script to load\n\tcapture script","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","From":"Umang Jain via libcamera-devel <libcamera-devel@lists.libcamera.org>","Reply-To":"Umang Jain <umang.jain@ideasonboard.com>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":24118,"web_url":"https://patchwork.libcamera.org/comment/24118/","msgid":"<165877613014.2021905.1331257717979804579@Monstersaurus>","date":"2022-07-25T19:08:50","subject":"Re: [libcamera-devel] [PATCH v4 3/3] qcam: Add --script to load\n\tcapture script","submitter":{"id":4,"url":"https://patchwork.libcamera.org/api/people/4/","name":"Kieran Bingham","email":"kieran.bingham@ideasonboard.com"},"content":"Quoting Umang Jain via libcamera-devel (2022-07-25 19:54:32)\n> Hi Utkarsh,\n> \n> On 7/3/22 10:07, Utkarsh Tiwari via libcamera-devel wrote:\n> > Add --script as an individual option to load capture scripts.\n> > Load the capture script before starting the capture.\n> >\n> > If an invalid capture script has been given, show error\n> > but start the capture without the script.\n> \n> \n> umm, why would you do that? If --script is specified, it is pretty clear \n> that the user intends to use the capture script. If there are errors in \n> the scripts, we sould fail loudly and not proceed with the start() at all.\n> \n\nThat's quite a good point. Failing through the GUI makes sense when\nstarted in the GUI - but indeed, if the script was specified on the\ncommand line, and fails - that's probably expected to fail on the\ncommand line ...\n\nPerhaps it would make sense to keep the qmessagebox::critical to pop up\na gui failure, but also present a console warning, and then exit after\nthe message box is closed.\n\n> The user 'might' get a false impression that the script is valid hence, \n> the capture is started and \"miss\" to  take a note of the invalidity \n> error. Was this discussed in previous iterations?\n\nI don't think so.\n\n> \n> >\n> > Signed-off-by: Utkarsh Tiwari <utkarsh02t@gmail.com>\n> > Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n> > ---\n> >   src/qcam/main.cpp        |  3 +++\n> >   src/qcam/main_window.cpp | 14 ++++++++++++++\n> >   src/qcam/main_window.h   |  1 +\n> >   3 files changed, 18 insertions(+)\n> >\n> > diff --git a/src/qcam/main.cpp b/src/qcam/main.cpp\n> > index d3f01a85..91166be5 100644\n> > --- a/src/qcam/main.cpp\n> > +++ b/src/qcam/main.cpp\n> > @@ -43,6 +43,9 @@ OptionsParser::Options parseOptions(int argc, char *argv[])\n> >                        \"Set configuration of a camera stream\", \"stream\", true);\n> >       parser.addOption(OptVerbose, OptionNone,\n> >                        \"Print verbose log messages\", \"verbose\");\n> > +     parser.addOption(OptCaptureScript, OptionString,\n> > +                      \"Load a capture session configuration script from a file\",\n> > +                      \"script\", ArgumentRequired, \"script\");\n> >   \n> >       OptionsParser::Options options = parser.parse(argc, argv);\n> >       if (options.isSet(OptHelp))\n> > diff --git a/src/qcam/main_window.cpp b/src/qcam/main_window.cpp\n> > index 4fbaeccc..7ec53a7c 100644\n> > --- a/src/qcam/main_window.cpp\n> > +++ b/src/qcam/main_window.cpp\n> > @@ -151,6 +151,20 @@ MainWindow::MainWindow(CameraManager *cm, const OptionsParser::Options &options)\n> >               return;\n> >       }\n> >   \n> > +     if (options_.isSet(OptCaptureScript)) {\n> > +             std::string scriptName = options_[OptCaptureScript].toString();\n> > +             script_ = std::make_unique<CaptureScript>(camera_, scriptName);\n> > +             if (!script_->valid()) {\n> > +                     QMessageBox::critical(this, \"Invalid Script\",\n> > +                                           \"Couldn't load the capture script\");\n> > +                     script_.reset();\n> > +             }\n> > +\n> > +             /* Show stopping availability. */\n> > +             scriptExecAction_->setIcon(QIcon(\":x-square.svg\"));\n> > +             scriptExecAction_->setText(\"Stop Script execution\");\n> > +     }\n> > +\n> >       startStopAction_->setChecked(true);\n> >   }\n> >   \n> > diff --git a/src/qcam/main_window.h b/src/qcam/main_window.h\n> > index 2cdf7169..4d19ab64 100644\n> > --- a/src/qcam/main_window.h\n> > +++ b/src/qcam/main_window.h\n> > @@ -42,6 +42,7 @@ enum {\n> >       OptRenderer = 'r',\n> >       OptStream = 's',\n> >       OptVerbose = 'v',\n> > +     OptCaptureScript = 256,\n> >   };\n> >   \n> >   class MainWindow : public QMainWindow","headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id 78D28C3275\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 25 Jul 2022 19:08:56 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id C0C3663314;\n\tMon, 25 Jul 2022 21:08:55 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 04A4D6330A\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 25 Jul 2022 21:08:53 +0200 (CEST)","from pendragon.ideasonboard.com\n\t(cpc89244-aztw30-2-0-cust3082.18-1.cable.virginm.net [86.31.172.11])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 736656D1;\n\tMon, 25 Jul 2022 21:08:52 +0200 (CEST)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1658776135;\n\tbh=0wjK8noKUOxpjXN/AiUBhqj3p92anffnATwR5mpyEpo=;\n\th=In-Reply-To:References:To:Date:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:\n\tFrom;\n\tb=eqqM1LVEOk/oszZd0jAgxvWotQW+JEs+mpV2JsxzoR3Te0+RkNYrUs8SNFPKf7NZa\n\tnLQ1lWp4pkHNM8hxP+7TvXIwvIZAdCTF0WFPYNnWJu+wm4hkg22IqF3Egt2fygweH8\n\t0ErhrU7GSqTSlt/PcIyCN3Fw/NvvmhSdDoytEXs0z4pTfvtzsYRD1ZiwJ4Lws519KN\n\tdhoM4r0WSAcD1HGf4GA+2Bar3QObax4cuw8WqWYX1gwMrXJV99whjtjgNZBSNU5MwU\n\tc7yg+eOLbppAnjeU1t4hjQOTP77+3EEDaipGluqUhAcp0Zg3gAawkP02Y4d9Osf2E7\n\t7un3e26q6n2IQ==","v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1658776132;\n\tbh=0wjK8noKUOxpjXN/AiUBhqj3p92anffnATwR5mpyEpo=;\n\th=In-Reply-To:References:Subject:From:To:Date:From;\n\tb=bSsREm8E7nNhX7pL/mLFU7JDo5y3Gs/LwkiwcpvvWUqPDY3tbNKdHO55z1lefZ4u3\n\t4gDYXWEtyOyK+ssIADj/kPkXF4KlueCosyt5ntV8DC8HlAl91Xf8u1FvfrHP9goYsk\n\to9LeSFp00TG4qXOlW4GIzJetzlkfvsQAuiiG/0rY="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=ideasonboard.com\n\theader.i=@ideasonboard.com\n\theader.b=\"bSsREm8E\"; dkim-atps=neutral","Content-Type":"text/plain; charset=\"utf-8\"","MIME-Version":"1.0","Content-Transfer-Encoding":"quoted-printable","In-Reply-To":"<b47d587c-af8d-7f52-a18e-9a8e2c524a7b@ideasonboard.com>","References":"<20220703043704.296872-1-utkarsh02t@gmail.com>\n\t<20220703043704.296872-4-utkarsh02t@gmail.com>\n\t<b47d587c-af8d-7f52-a18e-9a8e2c524a7b@ideasonboard.com>","To":"Umang Jain <umang.jain@ideasonboard.com>,\n\tUtkarsh Tiwari <utkarsh02t@gmail.com>,\n\tlibcamera-devel@lists.libcamera.org","Date":"Mon, 25 Jul 2022 20:08:50 +0100","Message-ID":"<165877613014.2021905.1331257717979804579@Monstersaurus>","User-Agent":"alot/0.10","Subject":"Re: [libcamera-devel] [PATCH v4 3/3] qcam: Add --script to load\n\tcapture script","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","From":"Kieran Bingham via libcamera-devel\n\t<libcamera-devel@lists.libcamera.org>","Reply-To":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":24136,"web_url":"https://patchwork.libcamera.org/comment/24136/","msgid":"<CAHbe+E0F31dzgbB1e+2-1=s23PfixBCfMt0FaMaX7fB08ziaxA@mail.gmail.com>","date":"2022-07-26T02:24:36","subject":"Re: [libcamera-devel] [PATCH v4 3/3] qcam: Add --script to load\n\tcapture script","submitter":{"id":114,"url":"https://patchwork.libcamera.org/api/people/114/","name":"Utkarsh Tiwari","email":"utkarsh02t@gmail.com"},"content":"On Tue, 26 Jul, 2022, 00:38 Kieran Bingham, <kieran.bingham@ideasonboard.com>\nwrote:\n\n> Quoting Umang Jain via libcamera-devel (2022-07-25 19:54:32)\n> > Hi Utkarsh,\n> >\n> > On 7/3/22 10:07, Utkarsh Tiwari via libcamera-devel wrote:\n> > > Add --script as an individual option to load capture scripts.\n> > > Load the capture script before starting the capture.\n> > >\n> > > If an invalid capture script has been given, show error\n> > > but start the capture without the script.\n> >\n> >\n> > umm, why would you do that? If --script is specified, it is pretty clear\n> > that the user intends to use the capture script. If there are errors in\n> > the scripts, we sould fail loudly and not proceed with the start() at\n> all.\n> >\n>\n> That's quite a good point. Failing through the GUI makes sense when\n> started in the GUI - but indeed, if the script was specified on the\n> command line, and fails - that's probably expected to fail on the\n> command line ...\n>\n> Perhaps it would make sense to keep the qmessagebox::critical to pop up\n> a gui failure, but also present a console warning, and then exit after\n> the message box is closed.\n>\n> > The user 'might' get a false impression that the script is valid hence,\n> > the capture is started and \"miss\" to  take a note of the invalidity\n> > error. Was this discussed in previous iterations?\n>\n> I don't think so.\n>\n\nWell seems reasonable, new version for the patchset it seems.\n\n>\n> >\n> > >\n> > > Signed-off-by: Utkarsh Tiwari <utkarsh02t@gmail.com>\n> > > Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n> > > ---\n> > >   src/qcam/main.cpp        |  3 +++\n> > >   src/qcam/main_window.cpp | 14 ++++++++++++++\n> > >   src/qcam/main_window.h   |  1 +\n> > >   3 files changed, 18 insertions(+)\n> > >\n> > > diff --git a/src/qcam/main.cpp b/src/qcam/main.cpp\n> > > index d3f01a85..91166be5 100644\n> > > --- a/src/qcam/main.cpp\n> > > +++ b/src/qcam/main.cpp\n> > > @@ -43,6 +43,9 @@ OptionsParser::Options parseOptions(int argc, char\n> *argv[])\n> > >                        \"Set configuration of a camera stream\",\n> \"stream\", true);\n> > >       parser.addOption(OptVerbose, OptionNone,\n> > >                        \"Print verbose log messages\", \"verbose\");\n> > > +     parser.addOption(OptCaptureScript, OptionString,\n> > > +                      \"Load a capture session configuration script\n> from a file\",\n> > > +                      \"script\", ArgumentRequired, \"script\");\n> > >\n> > >       OptionsParser::Options options = parser.parse(argc, argv);\n> > >       if (options.isSet(OptHelp))\n> > > diff --git a/src/qcam/main_window.cpp b/src/qcam/main_window.cpp\n> > > index 4fbaeccc..7ec53a7c 100644\n> > > --- a/src/qcam/main_window.cpp\n> > > +++ b/src/qcam/main_window.cpp\n> > > @@ -151,6 +151,20 @@ MainWindow::MainWindow(CameraManager *cm, const\n> OptionsParser::Options &options)\n> > >               return;\n> > >       }\n> > >\n> > > +     if (options_.isSet(OptCaptureScript)) {\n> > > +             std::string scriptName =\n> options_[OptCaptureScript].toString();\n> > > +             script_ = std::make_unique<CaptureScript>(camera_,\n> scriptName);\n> > > +             if (!script_->valid()) {\n> > > +                     QMessageBox::critical(this, \"Invalid Script\",\n> > > +                                           \"Couldn't load the capture\n> script\");\n> > > +                     script_.reset();\n> > > +             }\n> > > +\n> > > +             /* Show stopping availability. */\n> > > +             scriptExecAction_->setIcon(QIcon(\":x-square.svg\"));\n> > > +             scriptExecAction_->setText(\"Stop Script execution\");\n> > > +     }\n> > > +\n> > >       startStopAction_->setChecked(true);\n> > >   }\n> > >\n> > > diff --git a/src/qcam/main_window.h b/src/qcam/main_window.h\n> > > index 2cdf7169..4d19ab64 100644\n> > > --- a/src/qcam/main_window.h\n> > > +++ b/src/qcam/main_window.h\n> > > @@ -42,6 +42,7 @@ enum {\n> > >       OptRenderer = 'r',\n> > >       OptStream = 's',\n> > >       OptVerbose = 'v',\n> > > +     OptCaptureScript = 256,\n> > >   };\n> > >\n> > >   class MainWindow : public QMainWindow\n>","headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id 0E406BE173\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue, 26 Jul 2022 02:24:51 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 64C4C63312;\n\tTue, 26 Jul 2022 04:24:50 +0200 (CEST)","from mail-pg1-x531.google.com (mail-pg1-x531.google.com\n\t[IPv6:2607:f8b0:4864:20::531])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 24490603E9\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 26 Jul 2022 04:24:49 +0200 (CEST)","by mail-pg1-x531.google.com with SMTP id bf13so11944283pgb.11\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 25 Jul 2022 19:24:49 -0700 (PDT)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1658802290;\n\tbh=xO+YZ9QfNGlTK2SYqjiSJTP79hAF7FLfPOY7AxmahsA=;\n\th=References:In-Reply-To:Date:To:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc:\n\tFrom;\n\tb=qoi5VtQWyPl9yuh8uVsqNZxA75HtuCficmonhUSDf/gPfYsXYEtpSdBOLG6ynbG5Z\n\tEczqbs6jg3Vw5LWFp9FyLMgpOmW4ZYLCfkaARPt2Lzm9pW8Pl3aGNcCX82DgIymFfq\n\tmnQgreTR4AFHA1yRQgZFrbK6c6P2yWk26sCMHjvIWy2buQJfkcfP6p2pqKBKziO33r\n\tyx66vrDRAw70DRpSs+m2i0/kv3Rxp4gAddWiNZupRcxTWCX1IZMEo1T+UA0fcgu64S\n\tOEnwkQAKrOjGwiiT59kwBIaf2trpszZuWiA5FT6c3v0Exj30/PVReb4lf3Z7eJ1EaN\n\tZefrUT/w2q1Wg==","v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112;\n\th=mime-version:references:in-reply-to:from:date:message-id:subject:to\n\t:cc; bh=KTUXqvc6QVqCcdeCA+e8Z//J8aowl495JgYeyZt+z70=;\n\tb=LCLKJo8UxRNbqj0hSOwUoBjxbsSahal3JkrRSKjYw2IUiAL/saMPf9ddsUUTtKBEsf\n\tnS86yv0r2OsMQVN5vOGgOusUmubx0kWkdSrZG9axmEtRYqi8EEqW5x92oWNjYuIvWohi\n\tukMgyRuPtiF0JU5d9LiXkNJARq6EfC5onAQQhk7y+YWJbV5gDfL67V8POiqHEzn8EZ+9\n\tkk4bFOxGkaPx1UfL1WdDb0eCfklAUdWTv1ytIExBfeqbkgMu/WUG9N0UsvvEonG64Rbo\n\tMsKIK+pLeWgWqVjGUc2+VvRIDJ3uT+2ss26E/k4P7mePAw9xKSQx/2qobfmid4RHGZL2\n\toIIw=="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (2048-bit key; \n\tunprotected) header.d=gmail.com header.i=@gmail.com\n\theader.b=\"LCLKJo8U\"; dkim-atps=neutral","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20210112;\n\th=x-gm-message-state:mime-version:references:in-reply-to:from:date\n\t:message-id:subject:to:cc;\n\tbh=KTUXqvc6QVqCcdeCA+e8Z//J8aowl495JgYeyZt+z70=;\n\tb=RR+diYx2dGAUHJKbs25IsO3Xf3/2EL9NOHHdXQLal5E1s6BoNGqrY68M1ZfoHOowi2\n\tOvICWTnyIYeomxxqmbktfKM+WIDcAi0J3F+U7tSF6XIiS3sNVwZUtQ6oEcqtXkVi6CGE\n\tiLuPfL3BbZMpJJmbuxiNAlgCnWZVdGwBpjC33WpPXYYc/i6Z0bXxLrAzl1zXFigLuF+P\n\tpqseAKA4vluK3SaFOX5+692jcGSGn3Xu6TEA8+WggnpZnlJ2q988t6Qnact8kh0VKLyz\n\t4QtPX4vsd04jwQYADARp0F5fYdv79PkJk2Uid3Qy0z5h9kYQDo6Q9w0iRf08tOYFuxuJ\n\txJRA==","X-Gm-Message-State":"AJIora9cHcm3y/bxL5ptCwHjzq4iTkQ98hJxov66KRuLO6d9FDnMGJPK\n\tq3RrZ4gv/PYekvcNsKOAkhFKHX/a0VzZA3pyAtBlT1PP","X-Google-Smtp-Source":"AGRyM1tCZLuWYfngxsa4ZNeZgsqMEKEVk11qrOwdG/ur95b2T1/zub8NUzclsNClpTWnyD37ftzqUmXk7YbjJNZETtQ=","X-Received":"by 2002:a05:6a00:1350:b0:52b:89ce:3326 with SMTP id\n\tk16-20020a056a00135000b0052b89ce3326mr15371611pfu.6.1658802287551;\n\tMon, 25 Jul 2022 19:24:47 -0700 (PDT)","MIME-Version":"1.0","References":"<20220703043704.296872-1-utkarsh02t@gmail.com>\n\t<20220703043704.296872-4-utkarsh02t@gmail.com>\n\t<b47d587c-af8d-7f52-a18e-9a8e2c524a7b@ideasonboard.com>\n\t<165877613014.2021905.1331257717979804579@Monstersaurus>","In-Reply-To":"<165877613014.2021905.1331257717979804579@Monstersaurus>","Date":"Tue, 26 Jul 2022 07:54:36 +0530","Message-ID":"<CAHbe+E0F31dzgbB1e+2-1=s23PfixBCfMt0FaMaX7fB08ziaxA@mail.gmail.com>","To":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Content-Type":"multipart/alternative; boundary=\"0000000000001a284305e4ac012d\"","Subject":"Re: [libcamera-devel] [PATCH v4 3/3] qcam: Add --script to load\n\tcapture script","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","From":"Utkarsh Tiwari via libcamera-devel\n\t<libcamera-devel@lists.libcamera.org>","Reply-To":"Utkarsh Tiwari <utkarsh02t@gmail.com>","Cc":"libcamera-devel@lists.libcamera.org","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}}]