summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Rauch <Rauch.Christian@gmx.de>2022-09-03 23:33:30 +0200
committerPaul Elder <paul.elder@ideasonboard.com>2022-09-12 18:29:11 +0900
commit5fd18af2330b9338c705d8590007acd706b83827 (patch)
tree5ab41f8c39daa8f0c44393f14fc2365e4e9d32b3
parentcbc2be34ed9e47f5b17d0955bf3496d735359795 (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.h6
-rw-r--r--test/controls/control_info.cpp4
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;
}