[libcamera-devel] [PATCH 3/3] cam: options: Add support for repeatable options

Niklas Söderlund niklas.soderlund at ragnatech.se
Tue Mar 26 11:41:23 CET 2019


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.

-- 
Regards,
Niklas Söderlund


More information about the libcamera-devel mailing list