From d54abd32affdb7d7458cd2a0889a7afe6a5a5d33 Mon Sep 17 00:00:00 2001 From: Stefan Klug Date: Thu, 7 Mar 2024 11:27:38 +0100 Subject: libcamera: controls: Add policy parameter to ControlList::merge() This is useful in many cases although not included in the stl. Note: This is an ABI incompatible change. Reviewed-by: Umang Jain Reviewed-by: Jacopo Mondi Signed-off-by: Stefan Klug --- include/libcamera/controls.h | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'include') diff --git a/include/libcamera/controls.h b/include/libcamera/controls.h index cf942055..82b95599 100644 --- a/include/libcamera/controls.h +++ b/include/libcamera/controls.h @@ -352,6 +352,11 @@ private: using ControlListMap = std::unordered_map; public: + enum class MergePolicy { + KeepExisting = 0, + OverwriteExisting, + }; + ControlList(); ControlList(const ControlIdMap &idmap, const ControlValidator *validator = nullptr); ControlList(const ControlInfoMap &infoMap, const ControlValidator *validator = nullptr); @@ -368,7 +373,7 @@ public: std::size_t size() const { return controls_.size(); } void clear() { controls_.clear(); } - void merge(const ControlList &source); + void merge(const ControlList &source, MergePolicy policy = MergePolicy::KeepExisting); bool contains(unsigned int id) const; -- cgit v1.2.1