[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