[libcamera-devel] [PATCH 3/3] cam: options: Add support for repeatable options
Niklas Söderlund
niklas.soderlund at ragnatech.se
Tue Mar 26 12:03:20 CET 2019
Hi Jacopo,
On 2019-03-26 11:59:46 +0100, Jacopo Mondi wrote:
> Hi Niklas,
>
> On Tue, Mar 26, 2019 at 11:41:23AM +0100, Niklas Söderlund wrote:
> > Hi Laurent,
> >
> > Thanks for your feedback.
> >
> > On 2019-03-26 08:28:21 +0200, Laurent Pinchart wrote:
> > > > - values_[opt] = value;
> > > > + if (option.array)
> > > > + values_[opt].add(value);
> > > > + else
> > > > + values_[opt] = value;
> > >
> > > I would be tempted to overload the [] operator for values_ to just do
> > > the right thing depending on the type, but I think it would be bother
> > > overkill and confusing. Still tempting to play with the available toys
> > > though :-)
> >
> > Playing with new toys are always fun :-) In this particular instance I
> > think overloading [] would just add to the confusion.
> >
> > > > diff --git a/src/cam/options.h b/src/cam/options.h
> > > > index 6a887416c0070c41..1dac15ea90f2ffd2 100644
> > > > --- a/src/cam/options.h
> > > > +++ b/src/cam/options.h
> > > > @@ -36,6 +36,7 @@ struct Option {
> > > > const char *argumentName;
> > > > const char *help;
> > > > KeyValueParser *keyValueParser;
> > > > + bool array;
> > >
> > > Maybe isArray ?
> >
> > Better, will switch in next version.
> >
> > >
> > > I think the rest is fine. How does the help output look like ?
> >
> > $ ./cam --help
> > Options:
> > -c, --camera camera Specify which camera to operate on
> > -C, --capture Capture until interrupted by user
> > -F, --file[=filename] Write captured frames to disk
> > The first '#' character in the file name is expanded to the frame sequence number.
> > The default file name is 'frame-#.bin'.
> > -f, --format key=value[,key=value,...] ... Set format of the camera's first stream
> > height=integer Height in pixels
> > id=integer ID of stream
> > pixelformat=integer Pixel format
> > width=integer Width in pixels
> > -h, --help Display this help message
> > -l, --list List all cameras
> >
> > I let you comment on if you like the ... to indicate that an option can
> > be repeated and post v2 after that.
> >
>
> I might not be paying too much attention, but I missed the three
> additiona dots completely. Should we find something more explicit to
> indicate an option can be repeated multiple times?
As far as I understand it this is the 'standard' way to document an
option can be repeated multiple times. I looked for a reference to
support this claim but came up empty handed apart from a bunch of forum
posts agreeing with me, but that might be search biased.
I'm happy to change this if you know of any documentation which
describes how it should be documented.
>
> Also, be aware the comment reports "camera's first stream". I assume
> this will be changed as well.
That is a bug! I will fix for next version, thanks!
>
> Thanks
> j
>
> > --
> > Regards,
> > Niklas Söderlund
> > _______________________________________________
> > libcamera-devel mailing list
> > libcamera-devel at lists.libcamera.org
> > https://lists.libcamera.org/listinfo/libcamera-devel
--
Regards,
Niklas Söderlund
More information about the libcamera-devel
mailing list