[libcamera-devel] [PATCH 04/10] libcamera: controls: Add default to ControlRange
Jacopo Mondi
jacopo at jmondi.org
Thu Dec 5 10:53:13 CET 2019
Hi Laurent,
On Wed, Dec 04, 2019 at 05:48:32PM +0200, Laurent Pinchart wrote:
> Hi Jacopo,
>
> Thank you for the patch.
>
> On Wed, Dec 04, 2019 at 02:21:00PM +0100, Jacopo Mondi wrote:
> > Augment the the ControlRange class to store the control default value.
> >
> > This is particularly relevant for v4l2 controls used to create
> > Camera properties, which are constructed using immutable video device
> > properties, whose value won't change at runtime.
> >
> > Signed-off-by: Jacopo Mondi <jacopo at jmondi.org>
> > ---
> > include/libcamera/controls.h | 7 ++++++-
> > src/libcamera/controls.cpp | 17 +++++++++++++++--
> > 2 files changed, 21 insertions(+), 3 deletions(-)
> >
> > diff --git a/include/libcamera/controls.h b/include/libcamera/controls.h
> > index b1b73367e874..1e2f284eafeb 100644
> > --- a/include/libcamera/controls.h
> > +++ b/include/libcamera/controls.h
> > @@ -114,10 +114,12 @@ class ControlRange
> > {
> > public:
> > explicit ControlRange(const ControlValue &min = 0,
> > - const ControlValue &max = 0);
> > + const ControlValue &max = 0,
> > + const ControlValue &defaultValue = 0);
>
> I wish we could call this default, but that's a reserved keyword :-/
> Maybe just 'def' to match min and max ? I'll leave it up to you.
>
>
>
> >
> > const ControlValue &min() const { return min_; }
> > const ControlValue &max() const { return max_; }
> > + const ControlValue &defaultValue() const { return defaultValue_; }
> >
> > std::string toString() const;
> >
> > @@ -131,6 +133,9 @@ public:
> > return !(*this == other);
> > }
> >
> > +protected:
> > + ControlValue defaultValue_;
> > +
>
> Why is this protected while min_ and max_ are private ? I don't think
> the default value should be special.
>
Oh, that's a leftover from when I set the default value outside of the
constructor in V4L2ControlRange subclass.
I'll fix
Thanks
j
> > private:
> > ControlValue min_;
> > ControlValue max_;
> > diff --git a/src/libcamera/controls.cpp b/src/libcamera/controls.cpp
> > index 7d8a0e97ee3a..bacba0fbf68a 100644
> > --- a/src/libcamera/controls.cpp
> > +++ b/src/libcamera/controls.cpp
> > @@ -353,14 +353,21 @@ Control<int64_t>::Control(unsigned int id, const char *name)
> > * pipeline handlers to describe the controls they support.
> > */
> >
> > +/**
> > + * \var ControlRange::defaultValue_
> > + * \brief The control default value
> > + */
> > +
> > /**
> > * \brief Construct a ControlRange with minimum and maximum range parameters
> > * \param[in] min The control minimum value
> > * \param[in] max The control maximum value
> > + * \param[in] defaultValue The control default value
> > */
> > ControlRange::ControlRange(const ControlValue &min,
> > - const ControlValue &max)
> > - : min_(min), max_(max)
> > + const ControlValue &max,
> > + const ControlValue &defaultValue)
> > + : defaultValue_(defaultValue), min_(min), max_(max)
> > {
> > }
> >
> > @@ -376,6 +383,12 @@ ControlRange::ControlRange(const ControlValue &min,
> > * \return A ControlValue with the maximum value for the control
> > */
> >
> > +/**
> > + * \fn ControlRange::defaultValue()
> > + * \brief Retrieve the default value of the control
> > + * \return A ControlValue with the default value for the control
> > + */
> > +
> > /**
> > * \brief Provide a string representation of the ControlRange
> > */
>
> --
> Regards,
>
> Laurent Pinchart
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <https://lists.libcamera.org/pipermail/libcamera-devel/attachments/20191205/0002e8de/attachment.sig>
More information about the libcamera-devel
mailing list