Show a patch.

GET /api/1.1/patches/16382/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 16382,
    "url": "https://patchwork.libcamera.org/api/1.1/patches/16382/?format=api",
    "web_url": "https://patchwork.libcamera.org/patch/16382/",
    "project": {
        "id": 1,
        "url": "https://patchwork.libcamera.org/api/1.1/projects/1/?format=api",
        "name": "libcamera",
        "link_name": "libcamera",
        "list_id": "libcamera_core",
        "list_email": "libcamera-devel@lists.libcamera.org",
        "web_url": "",
        "scm_url": "",
        "webscm_url": ""
    },
    "msgid": "<20220627162732.33160-2-jacopo@jmondi.org>",
    "date": "2022-06-27T16:27:18",
    "name": "[libcamera-devel,01/15] libcamera: control_ids: Add 'internal' argument",
    "commit_ref": null,
    "pull_url": null,
    "state": "not-applicable",
    "archived": true,
    "hash": "289974419e2656773745a838fb38847e03a676cc",
    "submitter": {
        "id": 3,
        "url": "https://patchwork.libcamera.org/api/1.1/people/3/?format=api",
        "name": "Jacopo Mondi",
        "email": "jacopo@jmondi.org"
    },
    "delegate": null,
    "mbox": "https://patchwork.libcamera.org/patch/16382/mbox/",
    "series": [
        {
            "id": 3224,
            "url": "https://patchwork.libcamera.org/api/1.1/series/3224/?format=api",
            "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=3224",
            "date": "2022-06-27T16:27:17",
            "name": "Internal controls, sensor delays and IPA init/configure rework",
            "version": 1,
            "mbox": "https://patchwork.libcamera.org/series/3224/mbox/"
        }
    ],
    "comments": "https://patchwork.libcamera.org/api/patches/16382/comments/",
    "check": "pending",
    "checks": "https://patchwork.libcamera.org/api/patches/16382/checks/",
    "tags": {},
    "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 DAF0DBD808\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 27 Jun 2022 16:27:43 +0000 (UTC)",
            "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id A4D796563F;\n\tMon, 27 Jun 2022 18:27:43 +0200 (CEST)",
            "from relay7-d.mail.gandi.net (relay7-d.mail.gandi.net\n\t[217.70.183.200])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id C1EAC65636\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 27 Jun 2022 18:27:40 +0200 (CEST)",
            "(Authenticated sender: jacopo@jmondi.org)\n\tby mail.gandi.net (Postfix) with ESMTPSA id 8A1222000C;\n\tMon, 27 Jun 2022 16:27:39 +0000 (UTC)"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1656347263;\n\tbh=BQg10bEAKgUSKfipvpBAEs5RYtA/MK+zNLgmgMgBYV0=;\n\th=To:Date:In-Reply-To:References:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:\n\tFrom;\n\tb=kjZbMM83lNmyHIrdzxLAw0S9+LkbrSwggOBnqA+ZgHQKYyTZRLJpv3V8/TTL3sDUX\n\t+0uppi5c4087DOHYVnP8GL1NXtRzYTROTUCWsK5UBdcOw0nz6mIkX1txmtYdIAomgN\n\txvSrLLITJtN6e1zZdYkLPR9d36mRAoNg/AudZNi564MJEPx3ps9AxL26WrTgwVBV8W\n\tmhHunbzINIzzvXpVnK4HhbVoQJBuIk6S2pIGHhtuOZWfXZmt2JVxGpYFzzQ35rgetz\n\tiqv1vfcAWWKuchr54seti5ny2GLrMLLxOMpPJyQvE46jAw3GU10JBzVKh/XDaPFyBK\n\tDOM0URqzLqpEA==",
        "To": "libcamera-devel@lists.libcamera.org",
        "Date": "Mon, 27 Jun 2022 18:27:18 +0200",
        "Message-Id": "<20220627162732.33160-2-jacopo@jmondi.org>",
        "X-Mailer": "git-send-email 2.36.1",
        "In-Reply-To": "<20220627162732.33160-1-jacopo@jmondi.org>",
        "References": "<20220627162732.33160-1-jacopo@jmondi.org>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "Subject": "[libcamera-devel] [PATCH 01/15] 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": "Jacopo Mondi via libcamera-devel <libcamera-devel@lists.libcamera.org>",
        "Reply-To": "Jacopo Mondi <jacopo@jmondi.org>",
        "Errors-To": "libcamera-devel-bounces@lists.libcamera.org",
        "Sender": "\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"
    },
    "content": "Add to the gen-controls.py script an optional argument '--internal'\nthat allows to specify if the generated file targets public or internal\ncontrols.\n\nAdd two new tags to the .cpp.in and .h.in templates to specify the\ncorrect inclusion path and the correct namespace.\n\nInternal controls will be introduced in the next patch.\n\nSigned-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(-)",
    "diff": "diff --git a/include/libcamera/control_ids.h.in b/include/libcamera/control_ids.h.in\nindex 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 */\ndiff --git a/src/libcamera/control_ids.cpp.in b/src/libcamera/control_ids.cpp.in\nindex 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 */\ndiff --git a/utils/gen-controls.py b/utils/gen-controls.py\nindex 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:\n",
    "prefixes": [
        "libcamera-devel",
        "01/15"
    ]
}