[{"id":25186,"web_url":"https://patchwork.libcamera.org/comment/25186/","msgid":"<166455225450.2677993.9810472539807329699@Monstersaurus>","date":"2022-09-30T15:37:34","subject":"Re: [libcamera-devel] [PATCH] py: Support controls that are\n\tControlTypeNone","submitter":{"id":4,"url":"https://patchwork.libcamera.org/api/people/4/","name":"Kieran Bingham","email":"kieran.bingham@ideasonboard.com"},"content":"Quoting David Plowman via libcamera-devel (2022-09-30 13:18:12)\n> Such controls can now be created when a control doesn't have a\n> reasonable or obvious default value. We support them using Python's\n> \"None\" value, rather than generating a runtime error.\n> \n\nThis sounds correct and reasonable to me.\n\nThis looks like the sort of thing that should have a unit test. I assume\nyou're testing it with picamera2 already though.\n\nTomi, Have we got anywhere we can add tests for things like this ?\n\n\nReviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n\n\n> Signed-off-by: David Plowman <david.plowman@raspberrypi.com>\n> ---\n>  src/py/libcamera/py_helpers.cpp | 2 ++\n>  1 file changed, 2 insertions(+)\n> \n> diff --git a/src/py/libcamera/py_helpers.cpp b/src/py/libcamera/py_helpers.cpp\n> index 45aecce9..f685e606 100644\n> --- a/src/py/libcamera/py_helpers.cpp\n> +++ b/src/py/libcamera/py_helpers.cpp\n> @@ -55,6 +55,7 @@ py::object controlValueToPy(const ControlValue &cv)\n>                 return py::cast(v);\n>         }\n>         case ControlTypeNone:\n> +               return py::none();\n>         default:\n>                 throw std::runtime_error(\"Unsupported ControlValue type\");\n>         }\n> @@ -91,6 +92,7 @@ ControlValue pyToControlValue(const py::object &ob, ControlType type)\n>         case ControlTypeSize:\n>                 return ControlValue(ob.cast<Size>());\n>         case ControlTypeNone:\n> +               return ControlValue();\n>         default:\n>                 throw std::runtime_error(\"Control type not implemented\");\n>         }\n> -- \n> 2.30.2\n>","headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id 99345C0DA4\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 30 Sep 2022 15:37:39 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 09BDE623AB;\n\tFri, 30 Sep 2022 17:37:39 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 0B0BC61F77\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 30 Sep 2022 17:37:38 +0200 (CEST)","from pendragon.ideasonboard.com\n\t(cpc89244-aztw30-2-0-cust3082.18-1.cable.virginm.net [86.31.172.11])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 7CBCA4D5;\n\tFri, 30 Sep 2022 17:37:37 +0200 (CEST)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1664552259;\n\tbh=XQOcZp2tnhUjDaaUaLLdo+Qg1n7aJLA9c3yxQiCB8ws=;\n\th=In-Reply-To:References:To:Date:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:\n\tFrom;\n\tb=Y1mhmIGxxCgDMSIK98hsWSyPUv/Shs0eNs+EBkPJWmh82pQ4nhvNC+EjLjNiAiq45\n\t3MJoiYu79hByu9NCkK46zEgktu8RIqd6Yo/2ZD/tIGygkp6fdhcVooTr2CdQRwTbtg\n\tRpE8fgcc6wRSRNrbsiTmzCHpDlAXgZlNnhtJmeOX3frUlsAzfIvnYI9LDFx3xbB1/b\n\tsdLj54XaJvzC4YvtNslsfRCCIy6omHY0IUX2aGy+jNSG51FKCAL8NGEmzy9mbE9yzl\n\tIUFO75Uy07lQ1MrL7gNEeCe/xTOKnOguxwTbt+shohYLAtR77jWEi7Dysjss8/kZHd\n\tbJ5vAh6gIYmlw==","v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1664552257;\n\tbh=XQOcZp2tnhUjDaaUaLLdo+Qg1n7aJLA9c3yxQiCB8ws=;\n\th=In-Reply-To:References:Subject:From:To:Date:From;\n\tb=QMzWzn/cn291MkV++q0v0Hn0TVKm0aavhJnkSb92W7jVPmynxKr3TrXBTSE3ghS5y\n\t7A9qP9aUElQlwefL2afE5OpblmBHbyoOP3Q9TK1vD11JRmEvNZXrjmbpYjNwbzLcyh\n\t+c40yzRdKXixJX9SUTP6Rj7zvUbJXwKmcZAf58QQ="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=ideasonboard.com\n\theader.i=@ideasonboard.com\n\theader.b=\"QMzWzn/c\"; dkim-atps=neutral","Content-Type":"text/plain; charset=\"utf-8\"","MIME-Version":"1.0","Content-Transfer-Encoding":"quoted-printable","In-Reply-To":"<20220930121812.5768-1-david.plowman@raspberrypi.com>","References":"<20220930121812.5768-1-david.plowman@raspberrypi.com>","To":"David Plowman <david.plowman@raspberrypi.com>,\n\tlibcamera-devel@lists.libcamera.org","Date":"Fri, 30 Sep 2022 16:37:34 +0100","Message-ID":"<166455225450.2677993.9810472539807329699@Monstersaurus>","User-Agent":"alot/0.10","Subject":"Re: [libcamera-devel] [PATCH] py: Support controls that are\n\tControlTypeNone","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","From":"Kieran Bingham via libcamera-devel\n\t<libcamera-devel@lists.libcamera.org>","Reply-To":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":25192,"web_url":"https://patchwork.libcamera.org/comment/25192/","msgid":"<fa3822bc-2656-4119-bda1-83009d1848fe@gmx.de>","date":"2022-09-30T17:23:41","subject":"Re: [libcamera-devel] [PATCH] py: Support controls that are\n\tControlTypeNone","submitter":{"id":111,"url":"https://patchwork.libcamera.org/api/people/111/","name":"Christian Rauch","email":"Rauch.Christian@gmx.de"},"content":"Hi David,\n\nReturning \"ControlTypeNone\" was intentional to signal that no default\nvalue exists. This is much more clear and expressive than returning a\ndefault constructed 0. So returning \"None\" on the Python side makes a\nlot of sense.\n\nReviewed-by: Christian Rauch <Rauch.Christian@gmx.de>\n\n\nAm 30.09.22 um 14:18 schrieb David Plowman via libcamera-devel:\n> Such controls can now be created when a control doesn't have a\n> reasonable or obvious default value. We support them using Python's\n> \"None\" value, rather than generating a runtime error.\n>\n> Signed-off-by: David Plowman <david.plowman@raspberrypi.com>\n> ---\n>  src/py/libcamera/py_helpers.cpp | 2 ++\n>  1 file changed, 2 insertions(+)\n>\n> diff --git a/src/py/libcamera/py_helpers.cpp b/src/py/libcamera/py_helpers.cpp\n> index 45aecce9..f685e606 100644\n> --- a/src/py/libcamera/py_helpers.cpp\n> +++ b/src/py/libcamera/py_helpers.cpp\n> @@ -55,6 +55,7 @@ py::object controlValueToPy(const ControlValue &cv)\n>  \t\treturn py::cast(v);\n>  \t}\n>  \tcase ControlTypeNone:\n> +\t\treturn py::none();\n>  \tdefault:\n>  \t\tthrow std::runtime_error(\"Unsupported ControlValue type\");\n>  \t}\n> @@ -91,6 +92,7 @@ ControlValue pyToControlValue(const py::object &ob, ControlType type)\n>  \tcase ControlTypeSize:\n>  \t\treturn ControlValue(ob.cast<Size>());\n>  \tcase ControlTypeNone:\n> +\t\treturn ControlValue();\n>  \tdefault:\n>  \t\tthrow std::runtime_error(\"Control type not implemented\");\n>  \t}","headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id B9B38BD16B\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 30 Sep 2022 17:23:43 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id E73D06283A;\n\tFri, 30 Sep 2022 19:23:42 +0200 (CEST)","from mout.gmx.net (mout.gmx.net [212.227.15.15])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 263DF61FB1\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 30 Sep 2022 19:23:41 +0200 (CEST)","from [192.168.0.158] ([88.152.184.103]) by mail.gmx.net (mrgmx004\n\t[212.227.17.190]) with ESMTPSA (Nemesis) id\n\t1MEm6L-1oSU2J2rEJ-00GM0F for\n\t<libcamera-devel@lists.libcamera.org>; Fri, 30 Sep 2022 19:23:40 +0200"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1664558622;\n\tbh=hJOQlqaqcRc0ZNFbgtKBui/I/AcmRqyap4urHy9Hq6M=;\n\th=Date:To:References:In-Reply-To:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:\n\tFrom;\n\tb=DKt3TdjezTmn66ltgGTomkeZFtQijPiNYwHKzoz4MT451I8to+DBxH9UZkD+RMOyM\n\thPp+3oC1mddkUyCoZ+Ziow2uoJlemaNuBlPLG7fD/gMgeEJ47ZvUydLi56aWcEwK5R\n\tLFv9bZ0mz8lp+BfNSvpQtVE/PcwhPlIrpGrgwFzYUVKDeOw7NhtCHHI1mkSLYaSMD8\n\tOJktqHCBg3sJ61WKjAxGYFuURqi4EDRESzmazfm8qtKZuLj/Ov5qi2Qc8z/V9VyzPV\n\tW4F7DSy+SDPfUyao61L90vZ8LkFOit2Mjpc6nH6elKQctz2UEOPk5L5D+ksro7R7tV\n\t/xay/BJlwP8qg==","v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net;\n\ts=badeba3b8450; t=1664558620;\n\tbh=hJOQlqaqcRc0ZNFbgtKBui/I/AcmRqyap4urHy9Hq6M=;\n\th=X-UI-Sender-Class:Date:Subject:To:References:From:In-Reply-To;\n\tb=kVzJSXLFxp2M889moci8A/wXn095b7eGZzv2kD8dODbLe6eLIjy9pubu1fM7Iwh76\n\tDqfPBJDpUX1Mz7J8zhKIWfoXIH5tmGkKtB76KGSwhnanxUDQusYL62lAcXc+ROwBhr\n\tK+qcGbVrg7I0l4d4/4z755e77KWAp2XzYzfdzNoI="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=gmx.net header.i=@gmx.net\n\theader.b=\"kVzJSXLF\"; dkim-atps=neutral","X-UI-Sender-Class":"01bb95c1-4bf8-414a-932a-4f6e2808ef9c","Message-ID":"<fa3822bc-2656-4119-bda1-83009d1848fe@gmx.de>","Date":"Fri, 30 Sep 2022 19:23:41 +0200","MIME-Version":"1.0","User-Agent":"Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101\n\tThunderbird/91.11.0","Content-Language":"en-GB","To":"libcamera-devel@lists.libcamera.org","References":"<20220930121812.5768-1-david.plowman@raspberrypi.com>","In-Reply-To":"<20220930121812.5768-1-david.plowman@raspberrypi.com>","Content-Type":"text/plain; charset=UTF-8","Content-Transfer-Encoding":"quoted-printable","X-Provags-ID":"V03:K1:HCm9ohBFW+Zqu0r4x81DwxUi/jveLsUHEB7Ji9WAZXp0fSx0QZX\n\tMkQGD8go6nNmBQkxpOfU7rM7Zj9vXin4ArmzcfNBiWfJOs2O9jeo7FI+2/WCYSXii5DiwH1\n\tRdBeRufR2Ha8HJmMFqM+pVhpz04bznkTLYMFL6+2O9w9G5BhoJoYLAcnjmjmttHB3P6uFIA\n\tjlQDeUxzJUnb1FbvUYLIg==","X-Spam-Flag":"NO","X-UI-Out-Filterresults":"notjunk:1; V03:K0:xD0JMraVsuw=:qCss6kTZgKhiLpo7bauclC\n\tpw6janNL6/bHirtuuD7xWknzwUMaXvi1/GAoNFrnD/joHD2yrv2zvF367R41s7qvOMzq0IYSX\n\tSBUn0vwE8oiYs6/fel7drYbF0UeouZM4VALaknp6rVWsl2hSyot/MBxHeb6awWlyQIcmbHboZ\n\twG8u7ueXDuetSy6eMq4M6DNLS+0irsHf+8KqsjMBGSDNxXpqKKM2806k2gltyKwLkvL+/1d9l\n\tGujC0H+l+lcWyi5RZgBt9DAtOoj1JPCMWm7C2JEeIAeLRanHZ2qJE7feChhjK3Jv303nOy8Rq\n\t5uhhWBuz0d/1vXKSA2H7NVPZsDNyH7te8TOR74ZFj5bGMzUM3GivkLiVV1gx/Fw2cZLep7L4w\n\tGkL7F2zbueOLYV9FaTfrLI6qTs1+ijT0SDxlvGFHdEt2WUUG7wX3PXCgF/dIz0TbPqG5PE9Il\n\tRSFEOcmF/fZuzjLsK+sgQBIAhkCpPSJOnpV7fv0rcQ+o1lfm29ydHSnY+NSxq9nk7LSNa3Ari\n\tgS21ZPgSIJ+a1nlN7sBuQ88WHtqL44ORxqkctjY8PrBI0Fk/OWJyCN0eUa56AoNLd3WEts2at\n\tb12Ospbihbqofiq39g7Kvc5ksum/uR886//5Abw4go3cTsLUuJS3jA79Kkv4wfjWz8v0pih6I\n\tpvreR25fh1uykM+LIkl15yjda+UL1jjV7NP/CmdPRW/QYkhCLVR/FDwdKTpj+kLY+0rHUYwi6\n\tud8mdFgP7K9rfRWKVH8SlxKpw9aB1ssoEgcy6Q2hxodMg8Fpfx3rJThwWDM3FV+hb/8Rm9xNw\n\tC4P2EVfejymC6Ma/nMgjUAlkLWhr+qz8/pxbKErhfvX+iEei/8ew5LVNGjQwgNkATnGnyjOBj\n\th/bdtfmowo/Pa8Ibyd12SC2w0YSyKj0YSLFC3a814kXTUI93S6OTRsx344f8z6/71lmezMGQC\n\tUedAamTmrzbrEq19sLvCKgfu7HrBl5i8GmULuKO0dGzRJrlMiBUYp9G5Yvc+iGLKdXKKOvaWP\n\tLkBlxjy/Qo0ry+WSWa/NvsPUksUOlWKLd29idE9yOcvEi36spI7yQhrUBC/FYdUpdLEQ8rXn/\n\tmUKvTmmD5ZYGy5EaOahuz1RJasXBMpLKekdaQlW8D+cBN6xqyUK4nuFeaWmQz6S0JVv0HHRYj\n\tSaxxAu2dFT8EjAVqf/7jmFofLl","Subject":"Re: [libcamera-devel] [PATCH] py: Support controls that are\n\tControlTypeNone","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","From":"Christian Rauch via libcamera-devel\n\t<libcamera-devel@lists.libcamera.org>","Reply-To":"Christian Rauch <Rauch.Christian@gmx.de>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":25197,"web_url":"https://patchwork.libcamera.org/comment/25197/","msgid":"<839ba8d1-ad43-dae6-e1ec-319971d2184f@ideasonboard.com>","date":"2022-09-30T20:04:22","subject":"Re: [libcamera-devel] [PATCH] py: Support controls that are\n\tControlTypeNone","submitter":{"id":109,"url":"https://patchwork.libcamera.org/api/people/109/","name":"Tomi Valkeinen","email":"tomi.valkeinen@ideasonboard.com"},"content":"On 30/09/2022 18:37, Kieran Bingham via libcamera-devel wrote:\n> Quoting David Plowman via libcamera-devel (2022-09-30 13:18:12)\n>> Such controls can now be created when a control doesn't have a\n>> reasonable or obvious default value. We support them using Python's\n>> \"None\" value, rather than generating a runtime error.\n>>\n> \n> This sounds correct and reasonable to me.\n\nI agree.\n\nReviewed-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>\n\n> This looks like the sort of thing that should have a unit test. I assume\n> you're testing it with picamera2 already though.\n> \n> Tomi, Have we got anywhere we can add tests for things like this ?\n\nWe have test/py/unittests.py, although we probably want to split it up \nto multiple files if we start adding more.\n\n  Tomi","headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id C6F53BD16B\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 30 Sep 2022 20:04:28 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 274BC62841;\n\tFri, 30 Sep 2022 22:04:28 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 6720A61FB1\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 30 Sep 2022 22:04:26 +0200 (CEST)","from [192.168.1.15] (91-158-154-79.elisa-laajakaista.fi\n\t[91.158.154.79])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id C55B647C;\n\tFri, 30 Sep 2022 22:04:25 +0200 (CEST)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1664568268;\n\tbh=p+tS+fFCASMF39ByuKekH6s+zmWr0+hxtqWDHRaLaVk=;\n\th=Date:To:References:In-Reply-To:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:\n\tFrom;\n\tb=YOHSZGpo9VZkOqvSKmkp77qjnkHrL1/c4YVvG8vWoxm/ZEO3HqB9w6K5IrlT2z9BK\n\tTFduoFOMjTpxGQHggGZ5tkLqh3z4V9Cegz52OxmyvMg/j2Qo+DH5BcNWDKw3UGdXi0\n\tk8gXaas23vDKYq/SLRsqPW9oNjEpuLNeqGVrCtyFX80h7vOS+H3UgzDGqqaqGwHQfC\n\t9iNZOIr+vR8JzGaTyo+HPr3Y5QCkBloQqr2iduso5mG4tUhXUuNPKWWnXgQjF8YzVx\n\tgQsLQs8yRHLilPKkrSIRP013rS2oKIZAyGKClL6CNAMaxxae5eBK0i7JfQqcJogxkN\n\t7wB1ZbYKpzdcQ==","v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1664568266;\n\tbh=p+tS+fFCASMF39ByuKekH6s+zmWr0+hxtqWDHRaLaVk=;\n\th=Date:Subject:To:References:From:In-Reply-To:From;\n\tb=YqiPwY4/5BPVV07uZCE64KGCatrcY4HDeavCrG3lzA5rZ3m+Xwyx91ffQTrPckgPe\n\t+FjatOe+dfLZNpkFGdayxzFmuofhX87d2CjILYaDDpbaRmW7Flpt4/OYlV9UduYJWM\n\tMoiCuNzbs53Ah7axXs98YkYA6XvWu3mwDyMhMy3E="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=ideasonboard.com\n\theader.i=@ideasonboard.com\n\theader.b=\"YqiPwY4/\"; dkim-atps=neutral","Message-ID":"<839ba8d1-ad43-dae6-e1ec-319971d2184f@ideasonboard.com>","Date":"Fri, 30 Sep 2022 23:04:22 +0300","MIME-Version":"1.0","User-Agent":"Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101\n\tThunderbird/91.11.0","Content-Language":"en-US","To":"Kieran Bingham <kieran.bingham@ideasonboard.com>,\n\tDavid Plowman <david.plowman@raspberrypi.com>,\n\tlibcamera-devel@lists.libcamera.org","References":"<20220930121812.5768-1-david.plowman@raspberrypi.com>\n\t<166455225450.2677993.9810472539807329699@Monstersaurus>","In-Reply-To":"<166455225450.2677993.9810472539807329699@Monstersaurus>","Content-Type":"text/plain; charset=UTF-8; format=flowed","Content-Transfer-Encoding":"7bit","Subject":"Re: [libcamera-devel] [PATCH] py: Support controls that are\n\tControlTypeNone","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","From":"Tomi Valkeinen via libcamera-devel\n\t<libcamera-devel@lists.libcamera.org>","Reply-To":"Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}}]