[libcamera-devel,v2,5/7] libcamera: v4l2_controls: Support U8 array controls

Message ID 20200321003640.2156-6-laurent.pinchart@ideasonboard.com
State Accepted
Commit 55ead4647794072a4f4a866a65d18f8483c2998d
Headers show
Series
  • Add support for V4L2 array controls
Related show

Commit Message

Laurent Pinchart March 21, 2020, 12:36 a.m. UTC
From: Jacopo Mondi <jacopo@jmondi.org>

Add support for array controls of type V4L2_CTRL_TYPE_U8.

Signed-off-by: Jacopo Mondi <jacopo@jmondi.org>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
---
 src/libcamera/v4l2_controls.cpp | 9 +++++++++
 1 file changed, 9 insertions(+)

Patch

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),