summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorLaurent Pinchart <laurent.pinchart@ideasonboard.com>2020-02-27 01:05:59 +0200
committerLaurent Pinchart <laurent.pinchart@ideasonboard.com>2020-03-06 18:10:29 +0200
commit3556ae95ecb049eb7befb4c2115aa1646c5b4daf (patch)
tree5a1dadbb180dca132edf19d2114c50e286978ff8 /src
parent1fa4b43402a0af7cc41bb22b58cede687663cc7b (diff)
libcamera: controls: Allow passing an std::initializer list to set()
For array controls, the ControlList::set() function takes a value as a type convertible to Span<T>. This allows passing an std::array or an std::vector in addition to an explicit Span, but doesn't accept an std::initializer list as Span has no constructor that takes an initializer list. Callers are thus forced to create temporary objects explicitly, which isn't nice. Fix the issue by providing a ControlList::set() function that takes an std::initializer_list, and convert it to a Span internally. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Diffstat (limited to 'src')
-rw-r--r--src/libcamera/controls.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/libcamera/controls.cpp b/src/libcamera/controls.cpp
index a1eca992..3dd740e5 100644
--- a/src/libcamera/controls.cpp
+++ b/src/libcamera/controls.cpp
@@ -803,6 +803,12 @@ bool ControlList::contains(unsigned int id) const
*/
/**
+ * \fn template<typename T, typename V> \
+ * void ControlList::set(const Control<T> &ctrl, const std::initializer_list<V> &value)
+ * \copydoc ControlList::set(const Control<T> &ctrl, const V &value)
+ */
+
+/**
* \brief Get the value of control \a id
* \param[in] id The control numerical ID
*