[{"id":1128,"web_url":"https://patchwork.libcamera.org/comment/1128/","msgid":"<20190326062821.GA9324@pendragon.ideasonboard.com>","date":"2019-03-26T06:28:21","subject":"Re: [libcamera-devel] [PATCH 3/3] cam: options: Add support for\n\trepeatable options","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"Hi Niklas,\n\nThank you for the patch.\n\nOn Tue, Mar 26, 2019 at 12:47:36AM +0100, Niklas Söderlund wrote:\n> Add a flag to indicate if an option can be repeatable. If an option is\n> repeatable it must be accessed thru the array interface, even if it's\n> only specified once by the user.\n> \n> Also update the usage generator to indicate that tan option is\n\ns/tan/that/?\n\n> repeatable.\n> \n> Signed-off-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>\n> ---\n>  src/cam/options.cpp | 21 +++++++++++++++------\n>  src/cam/options.h   |  5 +++--\n>  2 files changed, 18 insertions(+), 8 deletions(-)\n> \n> diff --git a/src/cam/options.cpp b/src/cam/options.cpp\n> index 0dec154815d3cad5..0fdde9d84ba0de0e 100644\n> --- a/src/cam/options.cpp\n> +++ b/src/cam/options.cpp\n> @@ -96,7 +96,11 @@ bool OptionsBase<T>::parseValue(const T &opt, const Option &option,\n>  \t\tbreak;\n>  \t}\n>  \n> -\tvalues_[opt] = value;\n> +\tif (option.array)\n> +\t\tvalues_[opt].add(value);\n> +\telse\n> +\t\tvalues_[opt] = value;\n\nI would be tempted to overload the [] operator for values_ to just do\nthe right thing depending on the type, but I think it would be bother\noverkill and confusing. Still tempting to play with the available toys\nthough :-)\n\n> +\n>  \treturn true;\n>  }\n>  \n> @@ -128,7 +132,7 @@ bool KeyValueParser::addOption(const char *name, OptionType type,\n>  \t\treturn false;\n>  \n>  \toptionsMap_[name] = Option({ 0, type, name, argument, nullptr,\n> -\t\t\t\t     help, nullptr });\n> +\t\t\t\t     help, nullptr, false });\n>  \treturn true;\n>  }\n>  \n> @@ -336,7 +340,7 @@ std::vector<OptionValue> OptionValue::toArray() const\n>  \n>  bool OptionsParser::addOption(int opt, OptionType type, const char *help,\n>  \t\t\t      const char *name, OptionArgument argument,\n> -\t\t\t      const char *argumentName)\n> +\t\t\t      const char *argumentName, bool array)\n>  {\n>  \t/*\n>  \t * Options must have at least a short or long name, and a text message.\n> @@ -354,16 +358,16 @@ bool OptionsParser::addOption(int opt, OptionType type, const char *help,\n>  \t\treturn false;\n>  \n>  \toptions_.push_back(Option({ opt, type, name, argument, argumentName,\n> -\t\t\t\t    help, nullptr }));\n> +\t\t\t\t    help, nullptr, array }));\n>  \toptionsMap_[opt] = &options_.back();\n>  \treturn true;\n>  }\n>  \n>  bool OptionsParser::addOption(int opt, KeyValueParser *parser, const char *help,\n> -\t\t\t      const char *name)\n> +\t\t\t      const char *name, bool array)\n>  {\n>  \tif (!addOption(opt, OptionKeyValue, help, name, ArgumentRequired,\n> -\t\t       \"key=value[,key=value,...]\"))\n> +\t\t       \"key=value[,key=value,...]\", array))\n>  \t\treturn false;\n>  \n>  \toptions_.back().keyValueParser = parser;\n> @@ -461,6 +465,8 @@ void OptionsParser::usage()\n>  \t\t\tlength += 1 + strlen(option.argumentName);\n>  \t\tif (option.argument == ArgumentOptional)\n>  \t\t\tlength += 2;\n> +\t\tif (option.array)\n> +\t\t\tlength += 4;\n>  \n>  \t\tif (length > indent)\n>  \t\t\tindent = length;\n> @@ -494,6 +500,9 @@ void OptionsParser::usage()\n>  \t\t\t\targument += \"]\";\n>  \t\t}\n>  \n> +\t\tif (option.array)\n> +\t\t\targument += \" ...\";\n> +\n>  \t\tstd::cerr << std::setw(indent) << std::left << argument;\n>  \n>  \t\tfor (const char *help = option.help, *end = help; end; ) {\n> diff --git a/src/cam/options.h b/src/cam/options.h\n> index 6a887416c0070c41..1dac15ea90f2ffd2 100644\n> --- a/src/cam/options.h\n> +++ b/src/cam/options.h\n> @@ -36,6 +36,7 @@ struct Option {\n>  \tconst char *argumentName;\n>  \tconst char *help;\n>  \tKeyValueParser *keyValueParser;\n> +\tbool array;\n\nMaybe isArray ?\n\nI think the rest is fine. How does the help output look like ?\n\n>  \n>  \tbool hasShortOption() const { return isalnum(opt); }\n>  \tbool hasLongOption() const { return name != nullptr; }\n> @@ -126,9 +127,9 @@ public:\n>  \tbool addOption(int opt, OptionType type, const char *help,\n>  \t\t       const char *name = nullptr,\n>  \t\t       OptionArgument argument = ArgumentNone,\n> -\t\t       const char *argumentName = nullptr);\n> +\t\t       const char *argumentName = nullptr, bool array = false);\n>  \tbool addOption(int opt, KeyValueParser *parser, const char *help,\n> -\t\t       const char *name = nullptr);\n> +\t\t       const char *name = nullptr, bool array = false);\n>  \n>  \tOptions parse(int argc, char *argv[]);\n>  \tvoid usage();","headers":{"Return-Path":"<laurent.pinchart@ideasonboard.com>","Received":["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 40E8D610B3\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 26 Mar 2019 07:28:40 +0100 (CET)","from pendragon.ideasonboard.com (85-76-50-100-nat.elisa-mobile.fi\n\t[85.76.50.100])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 5F9602E1;\n\tTue, 26 Mar 2019 07:28:37 +0100 (CET)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1553581719;\n\tbh=33SXnQdwisAena4bhp7V0FbZP64mie2uDEXrY0G7nks=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=SqjLxxvVjqbvnqq4vdgW/nZmozTUbWxcNLQLCHIASSFVf2hnJ1HX0OtesfM4zK0du\n\tBsqPRGexb4Jvimub2MTeiFYuz7dGU4IC1lzvKwJkYuKffr+84tDDR4IcndsIEojcgA\n\tZYEPg1YDR5oj1Cbkp3LAvUHye+p7nytn1dIroQFs=","Date":"Tue, 26 Mar 2019 08:28:21 +0200","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"Niklas =?utf-8?q?S=C3=B6derlund?= <niklas.soderlund@ragnatech.se>","Cc":"libcamera-devel@lists.libcamera.org","Message-ID":"<20190326062821.GA9324@pendragon.ideasonboard.com>","References":"<20190325234736.12533-1-niklas.soderlund@ragnatech.se>\n\t<20190325234736.12533-4-niklas.soderlund@ragnatech.se>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","Content-Transfer-Encoding":"8bit","In-Reply-To":"<20190325234736.12533-4-niklas.soderlund@ragnatech.se>","User-Agent":"Mutt/1.10.1 (2018-07-13)","Subject":"Re: [libcamera-devel] [PATCH 3/3] cam: options: Add support for\n\trepeatable options","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.23","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>","X-List-Received-Date":"Tue, 26 Mar 2019 06:28:40 -0000"}},{"id":1133,"web_url":"https://patchwork.libcamera.org/comment/1133/","msgid":"<20190326104123.GC9119@bigcity.dyn.berto.se>","date":"2019-03-26T10:41:23","subject":"Re: [libcamera-devel] [PATCH 3/3] cam: options: Add support for\n\trepeatable options","submitter":{"id":5,"url":"https://patchwork.libcamera.org/api/people/5/","name":"Niklas Söderlund","email":"niklas.soderlund@ragnatech.se"},"content":"Hi Laurent,\n\nThanks for your feedback.\n\nOn 2019-03-26 08:28:21 +0200, Laurent Pinchart wrote:\n> > -\tvalues_[opt] = value;\n> > +\tif (option.array)\n> > +\t\tvalues_[opt].add(value);\n> > +\telse\n> > +\t\tvalues_[opt] = value;\n> \n> I would be tempted to overload the [] operator for values_ to just do\n> the right thing depending on the type, but I think it would be bother\n> overkill and confusing. Still tempting to play with the available toys\n> though :-)\n\nPlaying with new toys are always fun :-) In this particular instance I \nthink overloading [] would just add to the confusion.\n\n> > diff --git a/src/cam/options.h b/src/cam/options.h\n> > index 6a887416c0070c41..1dac15ea90f2ffd2 100644\n> > --- a/src/cam/options.h\n> > +++ b/src/cam/options.h\n> > @@ -36,6 +36,7 @@ struct Option {\n> >  \tconst char *argumentName;\n> >  \tconst char *help;\n> >  \tKeyValueParser *keyValueParser;\n> > +\tbool array;\n> \n> Maybe isArray ?\n\nBetter, will switch in next version.\n\n> \n> I think the rest is fine. How does the help output look like ?\n\n$ ./cam --help\nOptions:\n  -c, --camera camera                                   Specify which camera to operate on\n  -C, --capture                                         Capture until interrupted by user\n  -F, --file[=filename]                                 Write captured frames to disk\n                                                        The first '#' character in the file name is expanded to the frame sequence number.\n                                                        The default file name is 'frame-#.bin'.\n  -f, --format key=value[,key=value,...] ...            Set format of the camera's first stream\n                                                        height=integer          Height in pixels\n                                                        id=integer              ID of stream\n                                                        pixelformat=integer     Pixel format\n                                                        width=integer           Width in pixels\n  -h, --help                                            Display this help message\n  -l, --list                                            List all cameras\n\nI let you comment on if you like the ... to indicate that an option can \nbe repeated and post v2 after that.","headers":{"Return-Path":"<niklas.soderlund@ragnatech.se>","Received":["from mail-lf1-x142.google.com (mail-lf1-x142.google.com\n\t[IPv6:2a00:1450:4864:20::142])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id D7C8E6110D\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 26 Mar 2019 11:41:24 +0100 (CET)","by mail-lf1-x142.google.com with SMTP id v14so8389198lfi.0\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 26 Mar 2019 03:41:24 -0700 (PDT)","from localhost (89-233-230-99.cust.bredband2.com. [89.233.230.99])\n\tby smtp.gmail.com with ESMTPSA id\n\tn2sm3967160lfe.71.2019.03.26.03.41.23\n\t(version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256);\n\tTue, 26 Mar 2019 03:41:23 -0700 (PDT)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=ragnatech-se.20150623.gappssmtp.com; s=20150623;\n\th=date:from:to:cc:subject:message-id:references:mime-version\n\t:content-disposition:content-transfer-encoding:in-reply-to\n\t:user-agent; bh=PjzTeQhn/tJ+en8O+3n1tOc1j5qOnUSvG5qDKym0GJk=;\n\tb=Hac2Yazk4wjVERJS7VEc/iyfXu9g0Lw8aOINJ1r51CEWVHnz7/FX0UaTFJ/+jdh8h2\n\t27/FAP51p0czMwgkEvyzpnakn/dGbW+x/AAWqGDo5dfQYWRoZW/RimkNePAA3nUDYrKS\n\tQ0CE45nlkNcSGwI2MyfiqzLBs9LF9MxudTuA1m3tYgRiQjQJUhI1VviEcU2zV41v8W7A\n\tTr2+UDj2SR798INu3DmhmecLH0QbS6d0xP9THI7IlK0jVl+c7s4PG991VlNHJqREmRgp\n\t5+Oc6p4DBjbfWdgi5sBMsG+NQyFQzQUzvpGmx0OrRf2IdA5AlO+G+dJA/QsZBI4UDZBs\n\tU7aA==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20161025;\n\th=x-gm-message-state:date:from:to:cc:subject:message-id:references\n\t:mime-version:content-disposition:content-transfer-encoding\n\t:in-reply-to:user-agent;\n\tbh=PjzTeQhn/tJ+en8O+3n1tOc1j5qOnUSvG5qDKym0GJk=;\n\tb=FzAiSCS1Myxs7DeVLZTooXmEn879WOJi44GXI/DxKl+a6P3IedtyWnm204OH2w80WS\n\tS/nDacOAJlMz5bL99Vxi3S/8REB6HIoiDEJTk4QrffeLO/NOwUPGXVK6q2V3TSGrrRuS\n\tV75tS1Ywhji9Ht8fAaC13bNTKD7ax782mcRSfgCY1ixGoFCsV7QoQCkj1WplJ/LLvv1Q\n\tpPUtv6GF3VtXWkwElTlBbsdlRGuakrCB6hJLZLJYav+pXYDBt/DFvh/N4VhRBNvy83sf\n\tu6hNdvJKyUcL6vF7dTqMPabuBckDQPaENkcfvLiloyPLpimQ5xmMV6nQO0MiV6F7b227\n\tpwFQ==","X-Gm-Message-State":"APjAAAWlS3/PHZ8o/ZIF7AbeTEC7E/qnSx1UNkla6plczifCfXEO7ad+\n\tBhKseeq/Z2MWMcggGZHO8QuIy0LlQOI=","X-Google-Smtp-Source":"APXvYqxbw3WScLyQIC49KmC1cUoZi3iaNF1JVxJ6Z1RHfL6VsPkjRtR5IcVqC4xmmynFnY6steR8ZA==","X-Received":"by 2002:a19:9145:: with SMTP id y5mr16232300lfj.35.1553596884259;\n\tTue, 26 Mar 2019 03:41:24 -0700 (PDT)","Date":"Tue, 26 Mar 2019 11:41:23 +0100","From":"Niklas =?iso-8859-1?q?S=F6derlund?= <niklas.soderlund@ragnatech.se>","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Cc":"libcamera-devel@lists.libcamera.org","Message-ID":"<20190326104123.GC9119@bigcity.dyn.berto.se>","References":"<20190325234736.12533-1-niklas.soderlund@ragnatech.se>\n\t<20190325234736.12533-4-niklas.soderlund@ragnatech.se>\n\t<20190326062821.GA9324@pendragon.ideasonboard.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=iso-8859-1","Content-Disposition":"inline","Content-Transfer-Encoding":"8bit","In-Reply-To":"<20190326062821.GA9324@pendragon.ideasonboard.com>","User-Agent":"Mutt/1.11.3 (2019-02-01)","Subject":"Re: [libcamera-devel] [PATCH 3/3] cam: options: Add support for\n\trepeatable options","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.23","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>","X-List-Received-Date":"Tue, 26 Mar 2019 10:41:25 -0000"}},{"id":1135,"web_url":"https://patchwork.libcamera.org/comment/1135/","msgid":"<20190326105946.adqac34tgvagu5lz@uno.localdomain>","date":"2019-03-26T10:59:46","subject":"Re: [libcamera-devel] [PATCH 3/3] cam: options: Add support for\n\trepeatable options","submitter":{"id":3,"url":"https://patchwork.libcamera.org/api/people/3/","name":"Jacopo Mondi","email":"jacopo@jmondi.org"},"content":"Hi Niklas,\n\nOn Tue, Mar 26, 2019 at 11:41:23AM +0100, Niklas Söderlund wrote:\n> Hi Laurent,\n>\n> Thanks for your feedback.\n>\n> On 2019-03-26 08:28:21 +0200, Laurent Pinchart wrote:\n> > > -\tvalues_[opt] = value;\n> > > +\tif (option.array)\n> > > +\t\tvalues_[opt].add(value);\n> > > +\telse\n> > > +\t\tvalues_[opt] = value;\n> >\n> > I would be tempted to overload the [] operator for values_ to just do\n> > the right thing depending on the type, but I think it would be bother\n> > overkill and confusing. Still tempting to play with the available toys\n> > though :-)\n>\n> Playing with new toys are always fun :-) In this particular instance I\n> think overloading [] would just add to the confusion.\n>\n> > > diff --git a/src/cam/options.h b/src/cam/options.h\n> > > index 6a887416c0070c41..1dac15ea90f2ffd2 100644\n> > > --- a/src/cam/options.h\n> > > +++ b/src/cam/options.h\n> > > @@ -36,6 +36,7 @@ struct Option {\n> > >  \tconst char *argumentName;\n> > >  \tconst char *help;\n> > >  \tKeyValueParser *keyValueParser;\n> > > +\tbool array;\n> >\n> > Maybe isArray ?\n>\n> Better, will switch in next version.\n>\n> >\n> > I think the rest is fine. How does the help output look like ?\n>\n> $ ./cam --help\n> Options:\n>   -c, --camera camera                                   Specify which camera to operate on\n>   -C, --capture                                         Capture until interrupted by user\n>   -F, --file[=filename]                                 Write captured frames to disk\n>                                                         The first '#' character in the file name is expanded to the frame sequence number.\n>                                                         The default file name is 'frame-#.bin'.\n>   -f, --format key=value[,key=value,...] ...            Set format of the camera's first stream\n>                                                         height=integer          Height in pixels\n>                                                         id=integer              ID of stream\n>                                                         pixelformat=integer     Pixel format\n>                                                         width=integer           Width in pixels\n>   -h, --help                                            Display this help message\n>   -l, --list                                            List all cameras\n>\n> I let you comment on if you like the ... to indicate that an option can\n> be repeated and post v2 after that.\n>\n\nI might not be paying too much attention, but I missed the three\nadditiona dots completely. Should we find something more explicit to\nindicate an option can be repeated multiple times?\n\nAlso, be aware the comment reports \"camera's first stream\". I assume\nthis will be changed as well.\n\nThanks\n   j\n\n> --\n> Regards,\n> Niklas Söderlund\n> _______________________________________________\n> libcamera-devel mailing list\n> libcamera-devel@lists.libcamera.org\n> https://lists.libcamera.org/listinfo/libcamera-devel","headers":{"Return-Path":"<jacopo@jmondi.org>","Received":["from relay4-d.mail.gandi.net (relay4-d.mail.gandi.net\n\t[217.70.183.196])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id F1EB86110D\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 26 Mar 2019 11:59:05 +0100 (CET)","from uno.localdomain (2-224-242-101.ip172.fastwebnet.it\n\t[2.224.242.101]) (Authenticated sender: jacopo@jmondi.org)\n\tby relay4-d.mail.gandi.net (Postfix) with ESMTPSA id 42DE4E0008;\n\tTue, 26 Mar 2019 10:59:04 +0000 (UTC)"],"X-Originating-IP":"2.224.242.101","Date":"Tue, 26 Mar 2019 11:59:46 +0100","From":"Jacopo Mondi <jacopo@jmondi.org>","To":"Niklas =?utf-8?q?S=C3=B6derlund?= <niklas.soderlund@ragnatech.se>","Cc":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>,\n\tlibcamera-devel@lists.libcamera.org","Message-ID":"<20190326105946.adqac34tgvagu5lz@uno.localdomain>","References":"<20190325234736.12533-1-niklas.soderlund@ragnatech.se>\n\t<20190325234736.12533-4-niklas.soderlund@ragnatech.se>\n\t<20190326062821.GA9324@pendragon.ideasonboard.com>\n\t<20190326104123.GC9119@bigcity.dyn.berto.se>","MIME-Version":"1.0","Content-Type":"multipart/signed; micalg=pgp-sha256;\n\tprotocol=\"application/pgp-signature\"; boundary=\"3fxcg6aibiqnigm5\"","Content-Disposition":"inline","In-Reply-To":"<20190326104123.GC9119@bigcity.dyn.berto.se>","User-Agent":"NeoMutt/20180716","Subject":"Re: [libcamera-devel] [PATCH 3/3] cam: options: Add support for\n\trepeatable options","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.23","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>","X-List-Received-Date":"Tue, 26 Mar 2019 10:59:06 -0000"}},{"id":1137,"web_url":"https://patchwork.libcamera.org/comment/1137/","msgid":"<20190326110320.GE9119@bigcity.dyn.berto.se>","date":"2019-03-26T11:03:20","subject":"Re: [libcamera-devel] [PATCH 3/3] cam: options: Add support for\n\trepeatable options","submitter":{"id":5,"url":"https://patchwork.libcamera.org/api/people/5/","name":"Niklas Söderlund","email":"niklas.soderlund@ragnatech.se"},"content":"Hi Jacopo,\n\nOn 2019-03-26 11:59:46 +0100, Jacopo Mondi wrote:\n> Hi Niklas,\n> \n> On Tue, Mar 26, 2019 at 11:41:23AM +0100, Niklas Söderlund wrote:\n> > Hi Laurent,\n> >\n> > Thanks for your feedback.\n> >\n> > On 2019-03-26 08:28:21 +0200, Laurent Pinchart wrote:\n> > > > -\tvalues_[opt] = value;\n> > > > +\tif (option.array)\n> > > > +\t\tvalues_[opt].add(value);\n> > > > +\telse\n> > > > +\t\tvalues_[opt] = value;\n> > >\n> > > I would be tempted to overload the [] operator for values_ to just do\n> > > the right thing depending on the type, but I think it would be bother\n> > > overkill and confusing. Still tempting to play with the available toys\n> > > though :-)\n> >\n> > Playing with new toys are always fun :-) In this particular instance I\n> > think overloading [] would just add to the confusion.\n> >\n> > > > diff --git a/src/cam/options.h b/src/cam/options.h\n> > > > index 6a887416c0070c41..1dac15ea90f2ffd2 100644\n> > > > --- a/src/cam/options.h\n> > > > +++ b/src/cam/options.h\n> > > > @@ -36,6 +36,7 @@ struct Option {\n> > > >  \tconst char *argumentName;\n> > > >  \tconst char *help;\n> > > >  \tKeyValueParser *keyValueParser;\n> > > > +\tbool array;\n> > >\n> > > Maybe isArray ?\n> >\n> > Better, will switch in next version.\n> >\n> > >\n> > > I think the rest is fine. How does the help output look like ?\n> >\n> > $ ./cam --help\n> > Options:\n> >   -c, --camera camera                                   Specify which camera to operate on\n> >   -C, --capture                                         Capture until interrupted by user\n> >   -F, --file[=filename]                                 Write captured frames to disk\n> >                                                         The first '#' character in the file name is expanded to the frame sequence number.\n> >                                                         The default file name is 'frame-#.bin'.\n> >   -f, --format key=value[,key=value,...] ...            Set format of the camera's first stream\n> >                                                         height=integer          Height in pixels\n> >                                                         id=integer              ID of stream\n> >                                                         pixelformat=integer     Pixel format\n> >                                                         width=integer           Width in pixels\n> >   -h, --help                                            Display this help message\n> >   -l, --list                                            List all cameras\n> >\n> > I let you comment on if you like the ... to indicate that an option can\n> > be repeated and post v2 after that.\n> >\n> \n> I might not be paying too much attention, but I missed the three\n> additiona dots completely. Should we find something more explicit to\n> indicate an option can be repeated multiple times?\n\nAs far as I understand it this is the 'standard' way to document an \noption can be repeated multiple times. I looked for a reference to \nsupport this claim but came up empty handed apart from a bunch of forum \nposts agreeing with me, but that might be search biased.\n\nI'm happy to change this if you know of any documentation which \ndescribes how it should be documented.\n\n> \n> Also, be aware the comment reports \"camera's first stream\". I assume\n> this will be changed as well.\n\nThat is a bug! I will fix for next version, thanks!\n\n> \n> Thanks\n>    j\n> \n> > --\n> > Regards,\n> > Niklas Söderlund\n> > _______________________________________________\n> > libcamera-devel mailing list\n> > libcamera-devel@lists.libcamera.org\n> > https://lists.libcamera.org/listinfo/libcamera-devel","headers":{"Return-Path":"<niklas.soderlund@ragnatech.se>","Received":["from mail-lj1-x241.google.com (mail-lj1-x241.google.com\n\t[IPv6:2a00:1450:4864:20::241])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id C54C16110A\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 26 Mar 2019 12:03:21 +0100 (CET)","by mail-lj1-x241.google.com with SMTP id f18so10678836lja.10\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 26 Mar 2019 04:03:21 -0700 (PDT)","from localhost (89-233-230-99.cust.bredband2.com. [89.233.230.99])\n\tby smtp.gmail.com with ESMTPSA id\n\tw28sm1003742lfk.95.2019.03.26.04.03.20\n\t(version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256);\n\tTue, 26 Mar 2019 04:03:20 -0700 (PDT)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=ragnatech-se.20150623.gappssmtp.com; s=20150623;\n\th=date:from:to:cc:subject:message-id:references:mime-version\n\t:content-disposition:content-transfer-encoding:in-reply-to\n\t:user-agent; bh=KAWos8jsnZrmgqFGhaOd4ak6g9bsNuxSOa8ZfLYs2R8=;\n\tb=U0Rh+CDBp9xUZkt15fF0Di+X1FnvvOkYW6USzqDE6wZgQX5hqjJY/KAcFXxcp+kO9A\n\tkneKsO7wYZm//t6uEdwi6MHygwxBsKEuBoOX0RHMAEfet0jOkD1cmGEiyKdkzrQwAtpn\n\tNyXJsFeucNZUn+EkoqzD429tFkyEpihB1d+sxeLpSr479UUwwkFd1Uo6ZAyi3qFF00Te\n\tN6dYLEtKVmZpFBEt9HQvpzqGRkLkshq+CFE7zo0c28o3mWCWTfjrs9WQr61SPnHOacm6\n\to7qfKU8rryRDmoUkzACSmuqDVvHNgdWycqz23eiM7cA8+pYGj3LUpliSX3/6f+WdOH//\n\tfSiA==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20161025;\n\th=x-gm-message-state:date:from:to:cc:subject:message-id:references\n\t:mime-version:content-disposition:content-transfer-encoding\n\t:in-reply-to:user-agent;\n\tbh=KAWos8jsnZrmgqFGhaOd4ak6g9bsNuxSOa8ZfLYs2R8=;\n\tb=OYWyuF3uB3MHthYRl7x5z9hqtySgDvA9XpAPXxB6J0skH0VNH5zzQKRSH0CDY7Pyf3\n\tphKJhhBvYJNHDkR4Rm4gAnCUlSGUxg2Sv2Jh+farXItqDXVYuueMEQYt/tDK2Nlhij0b\n\t7zQjOL7y79u4dlUltAbctGJH3IHZIvG9YCgQUb4MbrIBZBDvkKUym7HCc+Yg06Ve1G33\n\tJzr6mrCkJaE43xUVUVQcygnmfW26L6g57Z+TLm5weDEgb8sS/jzkuyAlA6va19RrHqub\n\tpiM/xcqVGQ14ttq43WyioOVvdZ4BnSJ3Wev+FHSwOZ1C+XNsNpFM/B2eitHcP2HndtRu\n\tJssA==","X-Gm-Message-State":"APjAAAW1sizcnz/RzWo+UBRqM3Ap/QSRZNq2b9uZtghqZfbrT7nny2ec\n\tjqKDeaUQTkMuTp0Y7RUchC5ilQ==","X-Google-Smtp-Source":"APXvYqwCpDSTYofSE77LGPs14t7y8ZEeb9UFJ0qwuJsYB06vxjaP8KW2c6RGsdBAFzyIVDVBwe7LdA==","X-Received":"by 2002:a2e:9e54:: with SMTP id\n\tg20mr13229085ljk.43.1553598201176; \n\tTue, 26 Mar 2019 04:03:21 -0700 (PDT)","Date":"Tue, 26 Mar 2019 12:03:20 +0100","From":"Niklas =?iso-8859-1?q?S=F6derlund?= <niklas.soderlund@ragnatech.se>","To":"Jacopo Mondi <jacopo@jmondi.org>","Cc":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>,\n\tlibcamera-devel@lists.libcamera.org","Message-ID":"<20190326110320.GE9119@bigcity.dyn.berto.se>","References":"<20190325234736.12533-1-niklas.soderlund@ragnatech.se>\n\t<20190325234736.12533-4-niklas.soderlund@ragnatech.se>\n\t<20190326062821.GA9324@pendragon.ideasonboard.com>\n\t<20190326104123.GC9119@bigcity.dyn.berto.se>\n\t<20190326105946.adqac34tgvagu5lz@uno.localdomain>","MIME-Version":"1.0","Content-Type":"text/plain; charset=iso-8859-1","Content-Disposition":"inline","Content-Transfer-Encoding":"8bit","In-Reply-To":"<20190326105946.adqac34tgvagu5lz@uno.localdomain>","User-Agent":"Mutt/1.11.3 (2019-02-01)","Subject":"Re: [libcamera-devel] [PATCH 3/3] cam: options: Add support for\n\trepeatable options","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.23","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>","X-List-Received-Date":"Tue, 26 Mar 2019 11:03:22 -0000"}},{"id":1139,"web_url":"https://patchwork.libcamera.org/comment/1139/","msgid":"<20190326143010.GC5130@pendragon.ideasonboard.com>","date":"2019-03-26T14:30:10","subject":"Re: [libcamera-devel] [PATCH 3/3] cam: options: Add support for\n\trepeatable options","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"Hi Niklas,\n\nOn Tue, Mar 26, 2019 at 12:03:20PM +0100, Niklas Söderlund wrote:\n> On 2019-03-26 11:59:46 +0100, Jacopo Mondi wrote:\n> > On Tue, Mar 26, 2019 at 11:41:23AM +0100, Niklas Söderlund wrote:\n> >> On 2019-03-26 08:28:21 +0200, Laurent Pinchart wrote:\n> >>>> -\tvalues_[opt] = value;\n> >>>> +\tif (option.array)\n> >>>> +\t\tvalues_[opt].add(value);\n> >>>> +\telse\n> >>>> +\t\tvalues_[opt] = value;\n> >>>\n> >>> I would be tempted to overload the [] operator for values_ to just do\n> >>> the right thing depending on the type, but I think it would be bother\n> >>> overkill and confusing. Still tempting to play with the available toys\n> >>> though :-)\n> >>\n> >> Playing with new toys are always fun :-) In this particular instance I\n> >> think overloading [] would just add to the confusion.\n\nAgreed.\n\n> >>>> diff --git a/src/cam/options.h b/src/cam/options.h\n> >>>> index 6a887416c0070c41..1dac15ea90f2ffd2 100644\n> >>>> --- a/src/cam/options.h\n> >>>> +++ b/src/cam/options.h\n> >>>> @@ -36,6 +36,7 @@ struct Option {\n> >>>>  \tconst char *argumentName;\n> >>>>  \tconst char *help;\n> >>>>  \tKeyValueParser *keyValueParser;\n> >>>> +\tbool array;\n> >>>\n> >>> Maybe isArray ?\n> >>\n> >> Better, will switch in next version.\n> >>\n> >>>\n> >>> I think the rest is fine. How does the help output look like ?\n> >>\n> >> $ ./cam --help\n> >> Options:\n> >>   -c, --camera camera                                   Specify which camera to operate on\n> >>   -C, --capture                                         Capture until interrupted by user\n> >>   -F, --file[=filename]                                 Write captured frames to disk\n> >>                                                         The first '#' character in the file name is expanded to the frame sequence number.\n> >>                                                         The default file name is 'frame-#.bin'.\n> >>   -f, --format key=value[,key=value,...] ...            Set format of the camera's first stream\n> >>                                                         height=integer          Height in pixels\n> >>                                                         id=integer              ID of stream\n> >>                                                         pixelformat=integer     Pixel format\n> >>                                                         width=integer           Width in pixels\n> >>   -h, --help                                            Display this help message\n> >>   -l, --list                                            List all cameras\n> >>\n> >> I let you comment on if you like the ... to indicate that an option can\n> >> be repeated and post v2 after that.\n> >>\n> > \n> > I might not be paying too much attention, but I missed the three\n> > additiona dots completely. Should we find something more explicit to\n> > indicate an option can be repeated multiple times?\n> \n> As far as I understand it this is the 'standard' way to document an \n> option can be repeated multiple times. I looked for a reference to \n> support this claim but came up empty handed apart from a bunch of forum \n> posts agreeing with me, but that might be search biased.\n> \n> I'm happy to change this if you know of any documentation which \n> describes how it should be documented.\n\nI don't know of a more standard way, and we can always change this\nlater, so\n\nReviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n\n> > \n> > Also, be aware the comment reports \"camera's first stream\". I assume\n> > this will be changed as well.\n> \n> That is a bug! I will fix for next version, thanks!\n\nWe may also want to rename the parameter, if will likely specify stream\nconfiguration, not just formats.","headers":{"Return-Path":"<laurent.pinchart@ideasonboard.com>","Received":["from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 693CF6110A\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 26 Mar 2019 15:30:26 +0100 (CET)","from pendragon.ideasonboard.com\n\t(p5269001-ipngn11702marunouchi.tokyo.ocn.ne.jp [114.158.195.1])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id BA50F2E1;\n\tTue, 26 Mar 2019 15:30:24 +0100 (CET)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1553610625;\n\tbh=h4VJ74Ff3KDbB7nAKqyy7k8ohfjFdAezi4z3uvA692k=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=vuQ+yApj3/ls/q8MuVg8Ki/W9q17hUCyCTxLCe/5mhUTdPHmsHJEFtK76V+O3jhcu\n\twbKnWsXMhm5BQqB0//M2mMxABXO0NTyQQPXfoScnt2QvTYtTyalRhZu9kaUPUPpa6B\n\tAi3xsOSjoxCxEg0Z/kpn6GSGI5Lb/dTXczlnErEM=","Date":"Tue, 26 Mar 2019 16:30:10 +0200","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"Niklas =?utf-8?q?S=C3=B6derlund?= <niklas.soderlund@ragnatech.se>","Cc":"Jacopo Mondi <jacopo@jmondi.org>, libcamera-devel@lists.libcamera.org","Message-ID":"<20190326143010.GC5130@pendragon.ideasonboard.com>","References":"<20190325234736.12533-1-niklas.soderlund@ragnatech.se>\n\t<20190325234736.12533-4-niklas.soderlund@ragnatech.se>\n\t<20190326062821.GA9324@pendragon.ideasonboard.com>\n\t<20190326104123.GC9119@bigcity.dyn.berto.se>\n\t<20190326105946.adqac34tgvagu5lz@uno.localdomain>\n\t<20190326110320.GE9119@bigcity.dyn.berto.se>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","Content-Transfer-Encoding":"8bit","In-Reply-To":"<20190326110320.GE9119@bigcity.dyn.berto.se>","User-Agent":"Mutt/1.10.1 (2018-07-13)","Subject":"Re: [libcamera-devel] [PATCH 3/3] cam: options: Add support for\n\trepeatable options","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.23","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>","X-List-Received-Date":"Tue, 26 Mar 2019 14:30:26 -0000"}},{"id":1141,"web_url":"https://patchwork.libcamera.org/comment/1141/","msgid":"<20190327000709.GG9119@bigcity.dyn.berto.se>","date":"2019-03-27T00:07:09","subject":"Re: [libcamera-devel] [PATCH 3/3] cam: options: Add support for\n\trepeatable options","submitter":{"id":5,"url":"https://patchwork.libcamera.org/api/people/5/","name":"Niklas Söderlund","email":"niklas.soderlund@ragnatech.se"},"content":"Hi,\n\nOn 2019-03-26 16:30:10 +0200, Laurent Pinchart wrote:\n> > > \n> > > Also, be aware the comment reports \"camera's first stream\". I assume\n> > > this will be changed as well.\n> > \n> > That is a bug! I will fix for next version, thanks!\n> \n> We may also want to rename the parameter, if will likely specify stream\n> configuration, not just formats.\n\nAs this is not part of this series I will make a note of this and fix \nthis up in my series which reworks the cam tool to make use of this \nseries.\n\nWould we prefer the option to be named --conf, --config or \n--configuration ? My preference would be --config but I'm open to \nsuggestions.","headers":{"Return-Path":"<niklas.soderlund@ragnatech.se>","Received":["from mail-lf1-x144.google.com (mail-lf1-x144.google.com\n\t[IPv6:2a00:1450:4864:20::144])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 95510600F9\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 27 Mar 2019 01:07:11 +0100 (CET)","by mail-lf1-x144.google.com with SMTP id g7so10007592lfh.10\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 26 Mar 2019 17:07:11 -0700 (PDT)","from localhost (89-233-230-99.cust.bredband2.com. [89.233.230.99])\n\tby smtp.gmail.com with ESMTPSA id\n\tb6sm1695761lfo.42.2019.03.26.17.07.09\n\t(version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256);\n\tTue, 26 Mar 2019 17:07:09 -0700 (PDT)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=ragnatech-se.20150623.gappssmtp.com; s=20150623;\n\th=date:from:to:cc:subject:message-id:references:mime-version\n\t:content-disposition:content-transfer-encoding:in-reply-to\n\t:user-agent; bh=D5wodn2cG2LzimIyNGJjIOncOs8N7hdndqcjyvpRDLw=;\n\tb=R+Fns8dJ/u8sRByevnbWB1l+AC4tGP3I4iUF8EwwjZwbWos2Kvq4pr5KquCIwqfduC\n\tIrS02XcezA77cpF+vXb1UjxlGAhfTZVgkICXrn1PaiEIE6CAAP99VaHPIkWBNVo20kEy\n\tVHci7NbP/BZaNHwHspOeqKMRW10QZGc8MvMyQXaFyoieqq6tcZkj7XiVRGoxokaVF2iK\n\tbVnRzIFsXRGzE7eWkHGrZH5/hTkfjU1biWpGFA6RjueRB2/zR5G4gsvTodvO5sQBvlW5\n\tkAR1g1dKqwJS0uMW50ARrVHrwnd3yRad1+eeEvIodWJEo8jKDSLi4+upfLWk2adpAzXU\n\tUfPg==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20161025;\n\th=x-gm-message-state:date:from:to:cc:subject:message-id:references\n\t:mime-version:content-disposition:content-transfer-encoding\n\t:in-reply-to:user-agent;\n\tbh=D5wodn2cG2LzimIyNGJjIOncOs8N7hdndqcjyvpRDLw=;\n\tb=iEgezqe0Iulg0rbdx+zTnGHBW4zzn3kKmyEVj9fprSR4Mr7J0oxaTlLC3Mji2J8+I+\n\tcuyGdEO9tFh+bAr/w/y5g3IpabF63pTiXUy5EeuHAsvZceslKG3vcZ3dSee0kaQRNJ2+\n\tLXY4m0QXkQ0GSw7T8qneyVEVlakqX4ml4+qUzsYzF0KKPZzcwc1hHO0A/kgz1C/bxGc9\n\t3WyfLtIxerfhJJG5sWWBWpmzBytJ7va/50QXW1GRMOcjB23Rjgab7Z6BHfb8l9p2E7wG\n\tsso3M2OTz5NTQXJdwb265JGjDPg1x0xYdeMVtfyPw106R+aY56Iq/cYYi69+iP9chxX/\n\tyTmw==","X-Gm-Message-State":"APjAAAXPjSvA8hwAzwezg5St0ZF6inxoXUC9P/EbQfvH7kHkvApb0ySA\n\tPQ4lbEvYHiHauOTj7JstR/h95g==","X-Google-Smtp-Source":"APXvYqyJyb+vR24IXP/riVTcvVM2Qe8Z6jrrQVoeUEkUdUleTR/BkO8e+cE9pMS90k3E1fmdnv/yJA==","X-Received":"by 2002:ac2:43ba:: with SMTP id t26mr1177628lfl.10.1553645230815;\n\tTue, 26 Mar 2019 17:07:10 -0700 (PDT)","Date":"Wed, 27 Mar 2019 01:07:09 +0100","From":"Niklas =?iso-8859-1?q?S=F6derlund?= <niklas.soderlund@ragnatech.se>","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Cc":"Jacopo Mondi <jacopo@jmondi.org>, libcamera-devel@lists.libcamera.org","Message-ID":"<20190327000709.GG9119@bigcity.dyn.berto.se>","References":"<20190325234736.12533-1-niklas.soderlund@ragnatech.se>\n\t<20190325234736.12533-4-niklas.soderlund@ragnatech.se>\n\t<20190326062821.GA9324@pendragon.ideasonboard.com>\n\t<20190326104123.GC9119@bigcity.dyn.berto.se>\n\t<20190326105946.adqac34tgvagu5lz@uno.localdomain>\n\t<20190326110320.GE9119@bigcity.dyn.berto.se>\n\t<20190326143010.GC5130@pendragon.ideasonboard.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=iso-8859-1","Content-Disposition":"inline","Content-Transfer-Encoding":"8bit","In-Reply-To":"<20190326143010.GC5130@pendragon.ideasonboard.com>","User-Agent":"Mutt/1.11.3 (2019-02-01)","Subject":"Re: [libcamera-devel] [PATCH 3/3] cam: options: Add support for\n\trepeatable options","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.23","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>","X-List-Received-Date":"Wed, 27 Mar 2019 00:07:11 -0000"}},{"id":1150,"web_url":"https://patchwork.libcamera.org/comment/1150/","msgid":"<20190328082239.GD4846@pendragon.ideasonboard.com>","date":"2019-03-28T08:22:39","subject":"Re: [libcamera-devel] [PATCH 3/3] cam: options: Add support for\n\trepeatable options","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"Hi Niklas,\n\nOn Wed, Mar 27, 2019 at 01:07:09AM +0100, Niklas Söderlund wrote:\n> On 2019-03-26 16:30:10 +0200, Laurent Pinchart wrote:\n> >>> \n> >>> Also, be aware the comment reports \"camera's first stream\". I assume\n> >>> this will be changed as well.\n> >> \n> >> That is a bug! I will fix for next version, thanks!\n> > \n> > We may also want to rename the parameter, if will likely specify stream\n> > configuration, not just formats.\n> \n> As this is not part of this series I will make a note of this and fix \n> this up in my series which reworks the cam tool to make use of this \n> series.\n\nSure.\n\n> Would we prefer the option to be named --conf, --config or \n> --configuration ? My preference would be --config but I'm open to \n> suggestions.\n\nOr maybe --streams ?","headers":{"Return-Path":"<laurent.pinchart@ideasonboard.com>","Received":["from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id DBAAE600FB\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 28 Mar 2019 09:23:00 +0100 (CET)","from pendragon.ideasonboard.com (unknown [38.98.37.142])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id D385B54D;\n\tThu, 28 Mar 2019 09:22:57 +0100 (CET)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1553761380;\n\tbh=GbwPcwOAVXxsgDgFNXHYuI52VpNYYqnwgI7haEAY1LY=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=GwnD2ibH/C44ccfWNsrNbslQmIlw4Sfw8P8bIL/uWYAiBTpqYXrj5lotofR8NvJaM\n\tupvC8yc7LwrRfaHJErXeG9VvOQbFh9El4cLXF+Ze+9blZtjYWmNirIP9CHdtF+X/H4\n\tY59FBBj8R16hVJ4/uaf7pFsC+MfYolXteL6tBHOk=","Date":"Thu, 28 Mar 2019 10:22:39 +0200","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"Niklas =?utf-8?q?S=C3=B6derlund?= <niklas.soderlund@ragnatech.se>","Cc":"Jacopo Mondi <jacopo@jmondi.org>, libcamera-devel@lists.libcamera.org","Message-ID":"<20190328082239.GD4846@pendragon.ideasonboard.com>","References":"<20190325234736.12533-1-niklas.soderlund@ragnatech.se>\n\t<20190325234736.12533-4-niklas.soderlund@ragnatech.se>\n\t<20190326062821.GA9324@pendragon.ideasonboard.com>\n\t<20190326104123.GC9119@bigcity.dyn.berto.se>\n\t<20190326105946.adqac34tgvagu5lz@uno.localdomain>\n\t<20190326110320.GE9119@bigcity.dyn.berto.se>\n\t<20190326143010.GC5130@pendragon.ideasonboard.com>\n\t<20190327000709.GG9119@bigcity.dyn.berto.se>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","Content-Transfer-Encoding":"8bit","In-Reply-To":"<20190327000709.GG9119@bigcity.dyn.berto.se>","User-Agent":"Mutt/1.10.1 (2018-07-13)","Subject":"Re: [libcamera-devel] [PATCH 3/3] cam: options: Add support for\n\trepeatable options","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.23","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>","X-List-Received-Date":"Thu, 28 Mar 2019 08:23:01 -0000"}}]