[libcamera-devel] [PATCH v4 2/2] libcamera: controls: initialise control info to ControlTypeNone by default
Umang Jain
umang.jain at ideasonboard.com
Mon Sep 12 11:14:54 CEST 2022
Hi Christian,
Thank you for the patch
On 9/4/22 3:03 AM, Christian Rauch via libcamera-devel wrote:
> The default ControlInfo constructor allows partially initialising the
> min/max/def values. Uninitialised values are assigned to 0 by default.
> This implicit initialisation makes it impossible to distinguish between
> an uninitialised and an explicitly 0-initialised ControlValue.
>
> Default construct the ControlValue in the ControlInfo default contructor to
> explicitly represent uninitialised values by the ControlTypeNone type.
>
> Signed-off-by: Christian Rauch <Rauch.Christian at gmx.de>
> Reviewed-by: Paul Elder <paul.elder at ideasonboard.com>
Reviewed-by: Umang Jain <umang.jain at ideasonboard.com>
> ---
> include/libcamera/controls.h | 6 +++---
> test/controls/control_info.cpp | 4 ++--
> 2 files changed, 5 insertions(+), 5 deletions(-)
>
> diff --git a/include/libcamera/controls.h b/include/libcamera/controls.h
> index ebc168fc..38d0a3e8 100644
> --- a/include/libcamera/controls.h
> +++ b/include/libcamera/controls.h
> @@ -268,9 +268,9 @@ private:
> class ControlInfo
> {
> public:
> - explicit ControlInfo(const ControlValue &min = 0,
> - const ControlValue &max = 0,
> - const ControlValue &def = 0);
> + explicit ControlInfo(const ControlValue &min = {},
> + const ControlValue &max = {},
> + const ControlValue &def = {});
> explicit ControlInfo(Span<const ControlValue> values,
> const ControlValue &def = {});
> explicit ControlInfo(std::set<bool> values, bool def);
> diff --git a/test/controls/control_info.cpp b/test/controls/control_info.cpp
> index 2827473b..56b4101f 100644
> --- a/test/controls/control_info.cpp
> +++ b/test/controls/control_info.cpp
> @@ -26,8 +26,8 @@ protected:
> */
> ControlInfo brightness;
>
> - if (brightness.min().get<int32_t>() != 0 ||
> - brightness.max().get<int32_t>() != 0) {
> + if (brightness.min().type() != ControlType::ControlTypeNone ||
> + brightness.max().type() != ControlType::ControlTypeNone) {
> cout << "Invalid control range for Brightness" << endl;
> return TestFail;
> }
> --
> 2.34.1
>
More information about the libcamera-devel
mailing list