[{"id":23513,"web_url":"https://patchwork.libcamera.org/comment/23513/","msgid":"<726dce50-0eff-7d54-df6a-3cde3bf29a32@yoseli.org>","date":"2022-06-21T18:21:15","subject":"Re: [libcamera-devel] [PATCH 1/3] libcamera: control_ids: Add\n\t'internal' argument","submitter":{"id":127,"url":"https://patchwork.libcamera.org/api/people/127/","name":"Jean-Michel Hautbois","email":"jeanmichel.hautbois@yoseli.org"},"content":"Hi Jacopo,\n\nThanks for the patch !\n\nOn 21/06/2022 17:03, Jacopo Mondi via libcamera-devel wrote:\n> Add to the gen-controls.py script an optional argument '--internal'\n> that allows to specify if the generated file targets public or internal\n> controls.\n\nI don't have a better name, so let's go for internal :-):\nReviewed-by: Jean-Michel Hautbois <jeanmichel.hautbois@yoseli.org>\n\n> \n> Add two new tags to the .cpp.in and .h.in templates to specify the\n> correct inclusion path and the correct namespace.\n> \n> Internal controls will be introduced in the next patch.\n> \n> Signed-off-by: Jacopo Mondi <jacopo@jmondi.org>\n> ---\n>   include/libcamera/control_ids.h.in |  6 +++---\n>   src/libcamera/control_ids.cpp.in   | 12 ++++++------\n>   utils/gen-controls.py              | 14 ++++++++++++++\n>   3 files changed, 23 insertions(+), 9 deletions(-)\n> \n> diff --git a/include/libcamera/control_ids.h.in b/include/libcamera/control_ids.h.in\n> index 0718a8886f6c..410cfb643a0b 100644\n> --- a/include/libcamera/control_ids.h.in\n> +++ b/include/libcamera/control_ids.h.in\n> @@ -2,7 +2,7 @@\n>   /*\n>    * Copyright (C) 2019, Google Inc.\n>    *\n> - * control_ids.h - Control ID list\n> + * ${include_prefix}control_ids.h - Control ID list\n>    *\n>    * This file is auto-generated. Do not edit.\n>    */\n> @@ -16,7 +16,7 @@\n>   \n>   namespace libcamera {\n>   \n> -namespace controls {\n> +namespace controls${namespace_extension} {\n>   \n>   enum {\n>   ${ids}\n> @@ -32,6 +32,6 @@ ${draft_controls}\n>   \n>   } /* namespace draft */\n>   \n> -} /* namespace controls */\n> +} /* namespace controls${namespace_extension} */\n>   \n>   } /* namespace libcamera */\n> diff --git a/src/libcamera/control_ids.cpp.in b/src/libcamera/control_ids.cpp.in\n> index 5fb1c2c30558..e7e1080e9324 100644\n> --- a/src/libcamera/control_ids.cpp.in\n> +++ b/src/libcamera/control_ids.cpp.in\n> @@ -2,17 +2,17 @@\n>   /*\n>    * Copyright (C) 2019, Google Inc.\n>    *\n> - * control_ids.cpp : Control ID list\n> + * ${include_prefix}control_ids.cpp : Control ID list\n>    *\n>    * This file is auto-generated. Do not edit.\n>    */\n>   \n> -#include <libcamera/control_ids.h>\n> +#include <libcamera/${include_prefix}control_ids.h>\n>   #include <libcamera/controls.h>\n>   \n>   /**\n> - * \\file control_ids.h\n> - * \\brief Camera control identifiers\n> + * \\file libcamera/${include_prefix}control_ids.h\n> + * \\brief Control identifiers\n>    */\n>   \n>   namespace libcamera {\n> @@ -20,7 +20,7 @@ namespace libcamera {\n>   /**\n>    * \\brief Namespace for libcamera controls\n>    */\n> -namespace controls {\n> +namespace controls${namespace_extension} {\n>   \n>   ${controls_doc}\n>   \n> @@ -57,6 +57,6 @@ extern const ControlIdMap controls {\n>   ${controls_map}\n>   };\n>   \n> -} /* namespace controls */\n> +} /* namespace controls${namespace_extension} */\n>   \n>   } /* namespace libcamera */\n> diff --git a/utils/gen-controls.py b/utils/gen-controls.py\n> index 3f99b5e2ba7d..978179f63858 100755\n> --- a/utils/gen-controls.py\n> +++ b/utils/gen-controls.py\n> @@ -188,6 +188,17 @@ def fill_template(template, data):\n>       return template.substitute(data)\n>   \n>   \n> +def handle_internal_arg(internal, data):\n> +\n> +    if internal:\n> +        data[\"namespace_extension\"] = \"::internal\"\n> +        data[\"include_prefix\"] = \"internal/\"\n> +        return\n> +\n> +    data[\"namespace_extension\"] = \"\"\n> +    data[\"include_prefix\"] = \"\"\n> +\n> +\n>   def main(argv):\n>   \n>       # Parse command line arguments\n> @@ -198,6 +209,7 @@ def main(argv):\n>                           help='Input file name.')\n>       parser.add_argument('template', type=str,\n>                           help='Template file name.')\n> +    parser.add_argument('--internal', type=bool, default=False)\n>       args = parser.parse_args(argv[1:])\n>   \n>       data = open(args.input, 'rb').read()\n> @@ -210,6 +222,8 @@ def main(argv):\n>       else:\n>           raise RuntimeError('Unknown template type')\n>   \n> +    handle_internal_arg(args.internal, data)\n> +\n>       data = fill_template(args.template, data)\n>   \n>       if args.output:","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 9C3B5BE173\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue, 21 Jun 2022 18:21:18 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 691D765631;\n\tTue, 21 Jun 2022 20:21:18 +0200 (CEST)","from relay6-d.mail.gandi.net (relay6-d.mail.gandi.net\n\t[IPv6:2001:4b98:dc4:8::226])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id E8C4160473\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 21 Jun 2022 20:21:16 +0200 (CEST)","(Authenticated sender: jeanmichel.hautbois@yoseli.org)\n\tby mail.gandi.net (Postfix) with ESMTPSA id 901F9C0004;\n\tTue, 21 Jun 2022 18:21:16 +0000 (UTC)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1655835678;\n\tbh=aW/Arf3fPDsKU9x378ceMc2X4lo3rXv8sWTh9pFd5Cw=;\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=Lb9nHeUGCSgb8abYrOrfFiJWTJkHZHmVD7qW6QQ2ELluKSYLIZRcEt43aMh7rxbWT\n\tDswiRwgL/2dUpS1Pr9Ubkr2j0JgJ6n420bOrRAkHyXyZfoMbSiNl2mxAhw2S0IpzEW\n\tj0nqnNHPHFwdeCL9wWc9f0hJGVQL+bFsCuKqUhVei8tevhXsbNee5uhcDkCRTZZRSS\n\tsPWNL+xG47GmeTlCv4biQDUATivlI0ultWoTFIFL7SSsCpY/y1yr3WEJ+/GjQmc4hJ\n\tL0UlKAXsg2VVJ8XkuWGC4DmAUdZbEOBlIRaJYXLfTyVXJu1rAkWa5bLuLvSypeVExv\n\tghKVa73sFYKqQ==","v=1; a=rsa-sha256; c=relaxed/relaxed; d=yoseli.org; s=gm1;\n\tt=1655835676;\n\th=from:from:reply-to:subject:subject:date:date:message-id:message-id:\n\tto:to:cc:mime-version:mime-version:content-type:content-type:\n\tcontent-transfer-encoding:content-transfer-encoding:\n\tin-reply-to:in-reply-to:references:references;\n\tbh=OgWTYr9rGDzF3C+pUKzGVxquz1TUb9JZJR4CUfFcMO0=;\n\tb=lf3Pxo0Ky1y+Oo2U3rYwXmJ+VWPAvfBziJ4hTDkTB2A5sCYFLkLHXZHXzvv4/g0lPIY9S1\n\tc2BBGQ8DVWyStUhuL6+ivdDU3A5tFGQ/q4X7nzKm9l7pp9CNzkOKARl9ovDKdl+7W85dAL\n\t+KB7lLpufyn50Egu2AFqDl2nP58/1Hcg0eQMfK8GkaEhxsF2UBirFTFcd0EjdvdzGTEZ1C\n\tVV+491qhikft+9avgt/FHN0wfE9ba3m0MLcisRErIBq/X1gjKID47/JQ/pE3IjlFXt6165\n\tZzzJ5DVT2gKXwzsmdT/PuegsAyjHDZ+BcqO9XrVrwyL9wC8cpQcI+r0P7vWoOg=="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (2048-bit key; \n\tunprotected) header.d=yoseli.org\n\theader.i=@yoseli.org header.b=\"lf3Pxo0K\"; \n\tdkim-atps=neutral","Message-ID":"<726dce50-0eff-7d54-df6a-3cde3bf29a32@yoseli.org>","Date":"Tue, 21 Jun 2022 20:21:15 +0200","MIME-Version":"1.0","User-Agent":"Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101\n\tThunderbird/91.9.1","Content-Language":"en-US","To":"Jacopo Mondi <jacopo@jmondi.org>, libcamera-devel@lists.libcamera.org","References":"<20220621150337.47839-1-jacopo@jmondi.org>\n\t<20220621150337.47839-2-jacopo@jmondi.org>","In-Reply-To":"<20220621150337.47839-2-jacopo@jmondi.org>","Content-Type":"text/plain; charset=UTF-8; format=flowed","Content-Transfer-Encoding":"7bit","Subject":"Re: [libcamera-devel] [PATCH 1/3] libcamera: control_ids: Add\n\t'internal' argument","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":"Jean-Michel Hautbois via libcamera-devel\n\t<libcamera-devel@lists.libcamera.org>","Reply-To":"Jean-Michel Hautbois <jeanmichel.hautbois@yoseli.org>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}}]