[libcamera-devel] [PATCH v3 3/4] libcamera: formats: Add ImageFormats::contains()

Jacopo Mondi jacopo at jmondi.org
Mon Jun 29 13:53:27 CEST 2020


Add a method to check if a format is part of the formats map.

Reviewed-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
Signed-off-by: Jacopo Mondi <jacopo at jmondi.org>
---
 include/libcamera/internal/formats.h |  1 +
 src/libcamera/formats.cpp            | 13 ++++++++++++-
 2 files changed, 13 insertions(+), 1 deletion(-)

diff --git a/include/libcamera/internal/formats.h b/include/libcamera/internal/formats.h
index aba83511179f..c3bda8214991 100644
--- a/include/libcamera/internal/formats.h
+++ b/include/libcamera/internal/formats.h
@@ -25,6 +25,7 @@ public:
 	int addFormat(T format, const std::vector<SizeRange> &sizes);

 	bool isEmpty() const;
+	bool contains(T format) const;
 	std::vector<T> formats() const;
 	const std::vector<SizeRange> &sizes(T format) const;
 	const std::map<T, std::vector<SizeRange>> &data() const;
diff --git a/src/libcamera/formats.cpp b/src/libcamera/formats.cpp
index a5607da3efd4..61bf7b5cb16d 100644
--- a/src/libcamera/formats.cpp
+++ b/src/libcamera/formats.cpp
@@ -48,7 +48,7 @@ LOG_DEFINE_CATEGORY(Formats)
 template<typename T>
 int ImageFormats<T>::addFormat(T format, const std::vector<SizeRange> &sizes)
 {
-	if (data_.find(format) != data_.end())
+	if (contains(format))
 		return -EEXIST;

 	data_[format] = sizes;
@@ -66,6 +66,17 @@ bool ImageFormats<T>::isEmpty() const
 	return data_.empty();
 }

+/**
+ * \brief Check if the formats map contains \a format
+ * \param[in] format The format
+ * \return True if the map contains such format, false otherwise
+ */
+template<typename T>
+bool ImageFormats<T>::contains(T format) const
+{
+	return data_.find(format) != data_.end();
+}
+
 /**
  * \brief Retrieve a list of all supported image formats
  * \return List of pixel formats or media bus codes
--
2.27.0



More information about the libcamera-devel mailing list