[libcamera-devel] [PATCH v2 06/14] libcamera: controls: Store control name in ControlId
Niklas Söderlund
niklas.soderlund at ragnatech.se
Sun Oct 13 17:33:50 CEST 2019
Hi Laurent,
Thanks for your work.
On 2019-10-12 21:43:59 +0300, Laurent Pinchart wrote:
> The ControlId class stores a pointer to the control name. This works
> fine for statically-defined controls, but requires code that allocates
> controls dynamically (for instance based on control discovery on a V4L2
> device) to keep a list of control names in separate storage. To ease
> usage of dynamically allocated controls, store a copy of the control
> name string in the ControlId class.
>
> Signed-off-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
> Reviewed-by: Jacopo Mondi <jacopo at jmondi.org>
Reviewed-by: Niklas Söderlund <niklas.soderlund at ragnatech.se>
> ---
> include/libcamera/controls.h | 6 +++---
> src/libcamera/controls.cpp | 2 +-
> 2 files changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/include/libcamera/controls.h b/include/libcamera/controls.h
> index 12a13aacb198..999fcf7a3a62 100644
> --- a/include/libcamera/controls.h
> +++ b/include/libcamera/controls.h
> @@ -60,11 +60,11 @@ class ControlId
> {
> public:
> unsigned int id() const { return id_; }
> - const char *name() const { return name_; }
> + const std::string &name() const { return name_; }
> ControlType type() const { return type_; }
>
> protected:
> - ControlId(unsigned int id, const char *name, ControlType type)
> + ControlId(unsigned int id, const std::string &name, ControlType type)
> : id_(id), name_(name), type_(type)
> {
> }
> @@ -74,7 +74,7 @@ private:
> ControlId &operator=(const ControlId &) = delete;
>
> unsigned int id_;
> - const char *name_;
> + std::string name_;
> ControlType type_;
> };
>
> diff --git a/src/libcamera/controls.cpp b/src/libcamera/controls.cpp
> index bfab177fc508..292e48cd6d25 100644
> --- a/src/libcamera/controls.cpp
> +++ b/src/libcamera/controls.cpp
> @@ -232,7 +232,7 @@ bool ControlValue::operator==(const ControlValue &other) const
> */
>
> /**
> - * \fn ControlId::ControlId(unsigned int id, const char *name, ControlType type)
> + * \fn ControlId::ControlId(unsigned int id, const std::string &name, ControlType type)
> * \brief Construct a ControlId instance
> * \param[in] id The control numerical ID
> * \param[in] name The control name
> --
> Regards,
>
> Laurent Pinchart
>
> _______________________________________________
> 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