[libcamera-devel] [PATCH 09/11] libcamera: v4l2_controls: Support U8 array controls

Jacopo Mondi jacopo at jmondi.org
Mon Mar 9 17:24:12 CET 2020


Add support for array controls of type V4L2_CTRL_TYPE_U8.

Signed-off-by: Jacopo Mondi <jacopo at jmondi.org>
---
 src/libcamera/v4l2_controls.cpp | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/src/libcamera/v4l2_controls.cpp b/src/libcamera/v4l2_controls.cpp
index 4861f9778df3..8e2415f2a6df 100644
--- a/src/libcamera/v4l2_controls.cpp
+++ b/src/libcamera/v4l2_controls.cpp
@@ -60,6 +60,9 @@ std::string v4l2_ctrl_name(const struct v4l2_query_ext_ctrl &ctrl)
 ControlType v4l2_ctrl_type(const struct v4l2_query_ext_ctrl &ctrl)
 {
 	switch (ctrl.type) {
+	case V4L2_CTRL_TYPE_U8:
+		return ControlTypeByte;
+
 	case V4L2_CTRL_TYPE_BOOLEAN:
 		return ControlTypeBool;
 
@@ -119,6 +122,12 @@ V4L2ControlId::V4L2ControlId(const struct v4l2_query_ext_ctrl &ctrl)
 V4L2ControlInfo::V4L2ControlInfo(const struct v4l2_query_ext_ctrl &ctrl)
 {
 	switch (ctrl.type) {
+	case V4L2_CTRL_TYPE_U8:
+		ControlInfo::operator=(ControlInfo(static_cast<uint8_t>(ctrl.minimum),
+						   static_cast<uint8_t>(ctrl.maximum),
+						   static_cast<uint8_t>(ctrl.default_value)));
+		break;
+
 	case V4L2_CTRL_TYPE_BOOLEAN:
 		ControlInfo::operator=(ControlInfo(static_cast<bool>(ctrl.minimum),
 						   static_cast<bool>(ctrl.maximum),
-- 
2.25.0



More information about the libcamera-devel mailing list