[libcamera-devel] [PATCH v2] libcamera: geometry: Add isNull() function to Size class

Umang Jain email at uajain.com
Thu Jun 25 06:31:21 CEST 2020


Hi Laurent,

Thanks for the patch.

On 6/25/20 6:53 AM, Laurent Pinchart wrote:
> 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 at ideasonboard.com>
> ---
> Changes since v1:
>
> - Add test
> ---
>   include/libcamera/geometry.h |  1 +
>   src/libcamera/geometry.cpp   |  6 ++++++
>   test/geometry.cpp            | 10 ++++++++++
>   3 files changed, 17 insertions(+)
>
> diff --git a/include/libcamera/geometry.h b/include/libcamera/geometry.h
> index edda42cf34cc..7d4b8bcfe3d8 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 fd78cf2c0ab7..24c44fb43acf 100644
> --- a/src/libcamera/geometry.cpp
> +++ b/src/libcamera/geometry.cpp
> @@ -107,6 +107,12 @@ bool operator==(const Rectangle &lhs, const Rectangle &rhs)
>    * \brief The Size height
>    */
>   
> +/**
> + * \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 27e65565d7c6..904ad92c9448 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;
Looks good to me.

Reviewed-by: Umang Jain <email at uajain.com>


More information about the libcamera-devel mailing list