From patchwork Sat Sep 3 21:33:30 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christian Rauch X-Patchwork-Id: 17291 Return-Path: X-Original-To: parsemail@patchwork.libcamera.org Delivered-To: parsemail@patchwork.libcamera.org Received: from lancelot.ideasonboard.com (lancelot.ideasonboard.com [92.243.16.209]) by patchwork.libcamera.org (Postfix) with ESMTPS id 2E502C0DA4 for ; Sat, 3 Sep 2022 21:33:36 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 5B19162042; Sat, 3 Sep 2022 23:33:35 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org; s=mail; t=1662240815; bh=gKiKom5Nle+pQr+GU5OV9C9zRSsgI3HhlA91zS/pjKA=; h=To:Date:In-Reply-To:References:Subject:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To: From; b=rkuWokGG0pvafsHFMXVUibq8NAoDvba/cUv6BF/VFtnUtrmM+AyAOI0hgjQ7G8h3n j3xD2BbUWZHLwzFEjdR7ZUqetc0u7WssqM4gGzYoFwJeTDmXvKxFOQpl4TUCTIvwHD IfSnT29gN/52IuKOi7wiFazhft72KRvgHfKZ64Kjctw8UhWSoGpFrNz743g2bB3wja 8IYu6ha7BB0wAlfu+UXs2sPi0h3s2prwlCyrtHF7pJ9TqiyCt1sLBzIpvLikBcMcLe I4cBMHQxHyvEEuJ9Fzuvv60zcM7dRHRLQADLRHFBhhNSVsr46Ey1XwP6lQN3l8x+GF BrRE0u/IA6eRA== Received: from mout.gmx.net (mout.gmx.net [212.227.17.22]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 65E5062037 for ; Sat, 3 Sep 2022 23:33:33 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=gmx.net header.i=@gmx.net header.b="DVV+osAG"; dkim-atps=neutral DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1662240812; bh=gKiKom5Nle+pQr+GU5OV9C9zRSsgI3HhlA91zS/pjKA=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date:In-Reply-To:References; b=DVV+osAGd+7Lmy/uNuKv0UlCEXD/FkHYkThyOZNF7c1l5vgmZ9nB/2tTA3WGIZSSK 1T0ntjMCZHaB3ITWlprFhmE7bSNv9a5dlbRn8eXX7jNNnbBfyJz9nf05K+mVeWNjL2 BOUajrnomfH0gsHs4oqKUBvFj7kre0/oFWVNBKRo= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from voyager ([88.152.184.103]) by mail.gmx.net (mrgmx105 [212.227.17.168]) with ESMTPSA (Nemesis) id 1N79yG-1pSviK2REy-017Xvl; Sat, 03 Sep 2022 23:33:32 +0200 To: libcamera-devel@lists.libcamera.org Date: Sat, 3 Sep 2022 23:33:30 +0200 Message-Id: <20220903213330.213117-2-Rauch.Christian@gmx.de> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220903213330.213117-1-Rauch.Christian@gmx.de> References: <20220903213330.213117-1-Rauch.Christian@gmx.de> MIME-Version: 1.0 X-Provags-ID: V03:K1:Zm9ZCWzWZSs86C6Q2Ziaq4M0NSYXvg/+cFAWXvNF0GJ2gAW6egK EfjCmn19T+gyP9GD5j/Iaz5IH7CgORAos5UofDdgoYPErbdo6otW5UawSZeJRftk8AyKP2W cBWQZiaqKV4rnQuVW+23dX//x47Dvt0JpdPYUyDdnSBfM0X9zmxVcD8o5A4nI+SDsMXuQIy t+WzsGMaW6XooMeIyce8w== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1; V03:K0:wIcRAzePm+g=:QsSvGYwM6bXRvOHaNeUril wjWdsB01a0uimAKpJlJmj1I6x4CE1blrvG2nloUtibrZoQkkWbSRFDSaVWJzqo17YYFWZ+dBL XG0MwgHuBW8xOhF2YZd0f/zto9chlMozrE4WiQkVtFNQY8Jgzi6sTHLuqS4Pz+jNjVOrkD3EH wCVl4nxC5rngmfTBuoBYNr2K04SvecwvH+/0pH677vY4hW0ufPJf+QEqvGkBiDgoJ5vbJEBEH /AiwrrPCPStLm2TCmw5+1N1wF/WJvrxufPAoTEm8ykHzXuKibIBY5ip93Ih0BlO5mv0cT9ZoO nr6oOfIcXlIS+eOHj/ttKbtY540r/NlTnneBdK+pYxWgcuuWdL+CtIxkvO2cmgNXwB1m3+5w7 0zRO0H0Ry+0rNfYvW9mVJZBgZCzksRPSQLIOMqkwBfnaWoyk1+i/eRPlxYEp3BA0lEaWgi/pZ /4T02yBAR0kO4Qb1SifzZPyGJoqFH08QNaXNqwB6pZK7NHxjVR+eT8Zgy5JVNOOe2RxSbA5ic uAAIdV44zkK/PHv4UQLsPx4SD0pLLErzXZ2I/uMtaVIU/pRbyjwzyH6WFyV7zhAYruYg931WN dx2EbDFtMV9Jxbki8KUX7LP50wVorROIWrZYeX6h9bIp0PSZl0HuSxkUFtZ76awZ3Mf0y/Jij qdHJSjTEmhhO5wyrqi4Nj5Nk3hfttW9zxmw4CoJszyHMa0bfXeYKgF0W4uNUFN0+4ccE14TFh /mmhQVPgMOmsrRT6pgLYRT6YezByNnbnZj3swJKAI8AaFS/ZDipZH9G8PEMRVvRMKt2VBzI1x 9ilW4PJhA4dlBeFJ5hXMxpGMn4h982ccOWSFDbeSGMRgKVhHAvW1+VTmXnlE+b8O0K/RfvEMG 6pJTR52je1QDNATF2vG7fwlEojLDKyvpm55KJQmLMz7sZTzBB6Vax/dqpL+b0qKv7Xz2gnG6B 5DcBlUeAOKsQ927eF6CcT+W/+3Mp+EAmi20TFlAnKuF3Pp7rBct0AVBbRAtEn4LCR7ug/ukkp rC8gnuSAwt0HVTY5netzVF3jj09s6T3ej1qJcGnjIZk9TDBMvONUUqft3Pc3yxk87TpX/u9II ROfr1u2/0Q2YFf0vHN7BEXpYCBG1OPvrKG1Djne70s+ELRZJQsWykOfPV4kteo82xSuVSMX4Y IF5IvNwGFg9qJcfoX4UOjnbL4q Subject: [libcamera-devel] [PATCH v4 2/2] libcamera: controls: initialise control info to ControlTypeNone by default 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-Patchwork-Original-From: Christian Rauch via libcamera-devel From: Christian Rauch Reply-To: Christian Rauch Errors-To: libcamera-devel-bounces@lists.libcamera.org Sender: "libcamera-devel" 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 Reviewed-by: Paul Elder Reviewed-by: Umang Jain --- include/libcamera/controls.h | 6 +++--- test/controls/control_info.cpp | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) -- 2.34.1 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 values, const ControlValue &def = {}); explicit ControlInfo(std::set 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() != 0 || - brightness.max().get() != 0) { + if (brightness.min().type() != ControlType::ControlTypeNone || + brightness.max().type() != ControlType::ControlTypeNone) { cout << "Invalid control range for Brightness" << endl; return TestFail; }