summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLaurent Pinchart <laurent.pinchart@ideasonboard.com>2020-06-25 04:23:30 +0300
committerNiklas Söderlund <niklas.soderlund@ragnatech.se>2020-06-29 16:17:34 +0200
commit7fc65e9680f604099d5d4f294b37fe7eb93acb03 (patch)
treeeaf53f9b38bbb375d830dabaf07273cb37947c50
parentd8848693bf92c15a4ce18a3ff8b43f537de5e033 (diff)
libcamera: geometry: Add isNull() function to Size class
It's common for code to check if a size is null. Add a helper function to do so. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Umang Jain <email@uajain.com> Reviewed-by: Jacopo Mondi <jacopo@jmondi.org> Reviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se> Signed-off-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>
-rw-r--r--include/libcamera/geometry.h1
-rw-r--r--src/libcamera/geometry.cpp6
-rw-r--r--test/geometry.cpp10
3 files changed, 17 insertions, 0 deletions
diff --git a/include/libcamera/geometry.h b/include/libcamera/geometry.h
index edda42cf..7d4b8bcf 100644
--- a/include/libcamera/geometry.h
+++ b/include/libcamera/geometry.h
@@ -41,6 +41,7 @@ struct Size {
unsigned int width;
unsigned int height;
+ bool isNull() const { return !width && !height; }
const std::string toString() const;
};
diff --git a/src/libcamera/geometry.cpp b/src/libcamera/geometry.cpp
index fd78cf2c..24c44fb4 100644
--- a/src/libcamera/geometry.cpp
+++ b/src/libcamera/geometry.cpp
@@ -108,6 +108,12 @@ bool operator==(const Rectangle &lhs, const Rectangle &rhs)
*/
/**
+ * \fn bool Size::isNull() const
+ * \brief Check if the size is null
+ * \return True if both the width and height are 0, or false otherwise
+ */
+
+/**
* \brief Assemble and return a string describing the size
* \return A string describing the size
*/
diff --git a/test/geometry.cpp b/test/geometry.cpp
index 27e65565..904ad92c 100644
--- a/test/geometry.cpp
+++ b/test/geometry.cpp
@@ -36,6 +36,16 @@ protected:
int run()
{
+ if (!Size().isNull() || !Size(0, 0).isNull()) {
+ cout << "Null size incorrectly reported as not null" << endl;
+ return TestFail;
+ }
+
+ if (Size(0, 100).isNull() || Size(100, 0).isNull() || Size(100, 100).isNull()) {
+ cout << "Non-null size incorrectly reported as null" << endl;
+ return TestFail;
+ }
+
/* Test Size equality and inequality. */
if (!compare(Size(100, 100), Size(100, 100), &operator==, "==", true))
return TestFail;