diff options
author | Christian Rauch <Rauch.Christian@gmx.de> | 2022-09-03 23:33:30 +0200 |
---|---|---|
committer | Paul Elder <paul.elder@ideasonboard.com> | 2022-09-12 18:29:11 +0900 |
commit | 5fd18af2330b9338c705d8590007acd706b83827 (patch) | |
tree | 5ab41f8c39daa8f0c44393f14fc2365e4e9d32b3 | |
parent | cbc2be34ed9e47f5b17d0955bf3496d735359795 (diff) |
libcamera: controls: initialise control info to ControlTypeNone by default
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@gmx.de>
Reviewed-by: Paul Elder <paul.elder@ideasonboard.com>
Reviewed-by: Umang Jain <umang.jain@ideasonboard.com>
Signed-off-by: Paul Elder <paul.elder@ideasonboard.com>
-rw-r--r-- | include/libcamera/controls.h | 6 | ||||
-rw-r--r-- | 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; } |