diff options
author | Laurent Pinchart <laurent.pinchart@ideasonboard.com> | 2019-10-07 21:08:19 +0300 |
---|---|---|
committer | Laurent Pinchart <laurent.pinchart@ideasonboard.com> | 2019-10-13 20:37:33 +0300 |
commit | 576b8aa079388d2151f396bb947cf0a8e5ba255e (patch) | |
tree | 81ddcf55913fb2956ab9e49d13b34439ae43ffa9 | |
parent | a1772d44e8655484f47baefa92c8d6ed15603fee (diff) |
libcamera: controls: Store control name in ControlId
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@ideasonboard.com>
Reviewed-by: Jacopo Mondi <jacopo@jmondi.org>
Tested-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>
Reviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>
-rw-r--r-- | include/libcamera/controls.h | 6 | ||||
-rw-r--r-- | 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 12a13aac..999fcf7a 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 bfab177f..292e48cd 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 |