summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorLaurent Pinchart <laurent.pinchart@ideasonboard.com>2019-09-28 00:27:33 +0300
committerLaurent Pinchart <laurent.pinchart@ideasonboard.com>2019-10-04 19:33:08 +0300
commitdd37ef784e7b4a8125225177bf74eef04b8efd83 (patch)
treeb270db2787d69e3139d22787b4650c543c753dc2 /src
parent224ef9776ac5be51f984780c761713027f2c6102 (diff)
libcamera: controls: Use explicit 32-bit integer types
Make the control API more explicit when dealing with integer controls by specifying the size. We already do so for 64-bit integers, using int64_t and ControlTypeInteger64, do the same for 32-bit integers. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Jacopo Mondi <jacopo@jmondi.org> Reviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>
Diffstat (limited to 'src')
-rw-r--r--src/libcamera/controls.cpp36
-rw-r--r--src/libcamera/pipeline/uvcvideo.cpp10
-rw-r--r--src/libcamera/pipeline/vimc.cpp6
3 files changed, 26 insertions, 26 deletions
diff --git a/src/libcamera/controls.cpp b/src/libcamera/controls.cpp
index 88aab88d..295ccd55 100644
--- a/src/libcamera/controls.cpp
+++ b/src/libcamera/controls.cpp
@@ -31,8 +31,8 @@ LOG_DEFINE_CATEGORY(Controls)
* Invalid type, for empty values
* \var ControlTypeBool
* The control stores a boolean value
- * \var ControlTypeInteger
- * The control stores an integer value
+ * \var ControlTypeInteger32
+ * The control stores a 32-bit integer value
* \var ControlTypeInteger64
* The control stores a 64-bit integer value
*/
@@ -63,8 +63,8 @@ ControlValue::ControlValue(bool value)
* \brief Construct an integer ControlValue
* \param[in] value Integer value to store
*/
-ControlValue::ControlValue(int value)
- : type_(ControlTypeInteger), integer_(value)
+ControlValue::ControlValue(int32_t value)
+ : type_(ControlTypeInteger32), integer32_(value)
{
}
@@ -115,17 +115,17 @@ const bool &ControlValue::get<bool>() const
}
template<>
-const int &ControlValue::get<int>() const
+const int32_t &ControlValue::get<int32_t>() const
{
- ASSERT(type_ == ControlTypeInteger || type_ == ControlTypeInteger64);
+ ASSERT(type_ == ControlTypeInteger32 || type_ == ControlTypeInteger64);
- return integer_;
+ return integer32_;
}
template<>
const int64_t &ControlValue::get<int64_t>() const
{
- ASSERT(type_ == ControlTypeInteger || type_ == ControlTypeInteger64);
+ ASSERT(type_ == ControlTypeInteger32 || type_ == ControlTypeInteger64);
return integer64_;
}
@@ -138,10 +138,10 @@ void ControlValue::set<bool>(const bool &value)
}
template<>
-void ControlValue::set<int>(const int &value)
+void ControlValue::set<int32_t>(const int32_t &value)
{
- type_ = ControlTypeInteger;
- integer_ = value;
+ type_ = ControlTypeInteger32;
+ integer32_ = value;
}
template<>
@@ -163,8 +163,8 @@ std::string ControlValue::toString() const
return "<None>";
case ControlTypeBool:
return bool_ ? "True" : "False";
- case ControlTypeInteger:
- return std::to_string(integer_);
+ case ControlTypeInteger32:
+ return std::to_string(integer32_);
case ControlTypeInteger64:
return std::to_string(integer64_);
}
@@ -186,35 +186,35 @@ std::string ControlValue::toString() const
/**
* \var Brightness
- * ControlType: Integer
+ * ControlType: Integer32
*
* Specify a fixed brightness parameter.
*/
/**
* \var Contrast
- * ControlType: Integer
+ * ControlType: Integer32
*
* Specify a fixed contrast parameter.
*/
/**
* \var Saturation
- * ControlType: Integer
+ * ControlType: Integer32
*
* Specify a fixed saturation parameter.
*/
/**
* \var ManualExposure
- * ControlType: Integer
+ * ControlType: Integer32
*
* Specify a fixed exposure time in milli-seconds
*/
/**
* \var ManualGain
- * ControlType: Integer
+ * ControlType: Integer32
*
* Specify a fixed gain parameter
*/
diff --git a/src/libcamera/pipeline/uvcvideo.cpp b/src/libcamera/pipeline/uvcvideo.cpp
index 81c548af..0d56758e 100644
--- a/src/libcamera/pipeline/uvcvideo.cpp
+++ b/src/libcamera/pipeline/uvcvideo.cpp
@@ -235,24 +235,24 @@ int PipelineHandlerUVC::processControls(UVCCameraData *data, Request *request)
switch (ci->id()) {
case Brightness:
- controls.add(V4L2_CID_BRIGHTNESS, value.get<int>());
+ controls.add(V4L2_CID_BRIGHTNESS, value.get<int32_t>());
break;
case Contrast:
- controls.add(V4L2_CID_CONTRAST, value.get<int>());
+ controls.add(V4L2_CID_CONTRAST, value.get<int32_t>());
break;
case Saturation:
- controls.add(V4L2_CID_SATURATION, value.get<int>());
+ controls.add(V4L2_CID_SATURATION, value.get<int32_t>());
break;
case ManualExposure:
controls.add(V4L2_CID_EXPOSURE_AUTO, 1);
- controls.add(V4L2_CID_EXPOSURE_ABSOLUTE, value.get<int>());
+ controls.add(V4L2_CID_EXPOSURE_ABSOLUTE, value.get<int32_t>());
break;
case ManualGain:
- controls.add(V4L2_CID_GAIN, value.get<int>());
+ controls.add(V4L2_CID_GAIN, value.get<int32_t>());
break;
default:
diff --git a/src/libcamera/pipeline/vimc.cpp b/src/libcamera/pipeline/vimc.cpp
index 3e34e7a0..e549dc64 100644
--- a/src/libcamera/pipeline/vimc.cpp
+++ b/src/libcamera/pipeline/vimc.cpp
@@ -288,15 +288,15 @@ int PipelineHandlerVimc::processControls(VimcCameraData *data, Request *request)
switch (ci->id()) {
case Brightness:
- controls.add(V4L2_CID_BRIGHTNESS, value.get<int>());
+ controls.add(V4L2_CID_BRIGHTNESS, value.get<int32_t>());
break;
case Contrast:
- controls.add(V4L2_CID_CONTRAST, value.get<int>());
+ controls.add(V4L2_CID_CONTRAST, value.get<int32_t>());
break;
case Saturation:
- controls.add(V4L2_CID_SATURATION, value.get<int>());
+ controls.add(V4L2_CID_SATURATION, value.get<int32_t>());
break;
default: