From patchwork Fri Nov 8 20:53:56 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Laurent Pinchart X-Patchwork-Id: 2307 Return-Path: Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 7D06F61529 for ; Fri, 8 Nov 2019 21:54:26 +0100 (CET) Received: from pendragon.bb.dnainternet.fi (81-175-216-236.bb.dnainternet.fi [81.175.216.236]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 2BAA7A39 for ; Fri, 8 Nov 2019 21:54:26 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1573246466; bh=E/CpqVQl3laiOYaUjP6RsFCIj8xzLFAFk3y3ksKPzaI=; h=From:To:Subject:Date:In-Reply-To:References:From; b=pVJgc/fdVS9lNXQlmJ625pCFoPEVjK5WWah97gdnFDQofe+vyPsTMYM9cNlSDzqOF mUnRYE4wzmQq/Vz1vi2rozlIA2lMug5Gz5/hAsC6pVGq1x5NUbKmhdAUgXzfl7P95i LJvt/T2xfRRakq9AgCqgSTM5FP6HmkO32vnjWkO4= From: Laurent Pinchart To: libcamera-devel@lists.libcamera.org Date: Fri, 8 Nov 2019 22:53:56 +0200 Message-Id: <20191108205409.18845-12-laurent.pinchart@ideasonboard.com> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191108205409.18845-1-laurent.pinchart@ideasonboard.com> References: <20191108205409.18845-1-laurent.pinchart@ideasonboard.com> MIME-Version: 1.0 Subject: [libcamera-devel] [PATCH v2 11/24] libcamera: v4l2_controls: Fix control range construction for bool X-BeenThere: libcamera-devel@lists.libcamera.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 08 Nov 2019 20:54:27 -0000 V4L2 controls of type V4L2_CTRL_TYPE_BOOLEAN are incorrectly described with a ControlRange of int32_t values. Fix it. Signed-off-by: Laurent Pinchart Reviewed-by: Jacopo Mondi Reviewed-by: Niklas Söderlund Reviewed-by: Kieran Bingham --- src/libcamera/v4l2_controls.cpp | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/libcamera/v4l2_controls.cpp b/src/libcamera/v4l2_controls.cpp index 2462c3e2c264..b6547a7c627c 100644 --- a/src/libcamera/v4l2_controls.cpp +++ b/src/libcamera/v4l2_controls.cpp @@ -118,12 +118,22 @@ V4L2ControlId::V4L2ControlId(const struct v4l2_query_ext_ctrl &ctrl) */ V4L2ControlRange::V4L2ControlRange(const struct v4l2_query_ext_ctrl &ctrl) { - if (ctrl.type == V4L2_CTRL_TYPE_INTEGER64) + switch (ctrl.type) { + case V4L2_CTRL_TYPE_BOOLEAN: + ControlRange::operator=(ControlRange(static_cast(ctrl.minimum), + static_cast(ctrl.maximum))); + break; + + case V4L2_CTRL_TYPE_INTEGER64: ControlRange::operator=(ControlRange(static_cast(ctrl.minimum), static_cast(ctrl.maximum))); - else + break; + + default: ControlRange::operator=(ControlRange(static_cast(ctrl.minimum), static_cast(ctrl.maximum))); + break; + } } } /* namespace libcamera */