{"id":2935,"url":"https://patchwork.libcamera.org/api/patches/2935/?format=json","web_url":"https://patchwork.libcamera.org/patch/2935/","project":{"id":1,"url":"https://patchwork.libcamera.org/api/projects/1/?format=json","name":"libcamera","link_name":"libcamera","list_id":"libcamera_core","list_email":"libcamera-devel@lists.libcamera.org","web_url":"","scm_url":"","webscm_url":""},"msgid":"<20200229164254.23604-19-laurent.pinchart@ideasonboard.com>","date":"2020-02-29T16:42:41","name":"[libcamera-devel,18/31] libcamera: controls: Add a 'size' yaml property","commit_ref":null,"pull_url":null,"state":"superseded","archived":false,"hash":"590341cd54903d9d083199208c8bfaebca5574fa","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/?format=json","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"delegate":null,"mbox":"https://patchwork.libcamera.org/patch/2935/mbox/","series":[{"id":696,"url":"https://patchwork.libcamera.org/api/series/696/?format=json","web_url":"https://patchwork.libcamera.org/project/libcamera/list/?series=696","date":"2020-02-29T16:42:23","name":"libcamera: Add support for array controls","version":1,"mbox":"https://patchwork.libcamera.org/series/696/mbox/"}],"comments":"https://patchwork.libcamera.org/api/patches/2935/comments/","check":"pending","checks":"https://patchwork.libcamera.org/api/patches/2935/checks/","tags":{},"headers":{"Return-Path":"<laurent.pinchart@ideasonboard.com>","Received":["from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 7C29662797\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tSat, 29 Feb 2020 17:43:28 +0100 (CET)","from pendragon.bb.dnainternet.fi (81-175-216-236.bb.dnainternet.fi\n\t[81.175.216.236])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 14ECDA49;\n\tSat, 29 Feb 2020 17:43:28 +0100 (CET)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1582994608;\n\tbh=XgajUA+wYxeI21vUsHJ3ZrF9vgZdcdN5FsRt9F13gX4=;\n\th=From:To:Cc:Subject:Date:In-Reply-To:References:From;\n\tb=ekJ7h9shr0HXzSbWCxVimDrK87gD8woeXtZhc/fcNs8ORN/43GmxQKzCf+egTtlo7\n\tx/p/TK+Ivg1GgguYmcXZ+JfGfqivmY41zZbaFPFasvBNZ1jh5UwP3CouwIXmyNuPr2\n\t78wXtow0QS7GAEmrsaRNg+mDvDLqYTuqxZpZmMx4=","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"libcamera-devel@lists.libcamera.org","Date":"Sat, 29 Feb 2020 18:42:41 +0200","Message-Id":"<20200229164254.23604-19-laurent.pinchart@ideasonboard.com>","X-Mailer":"git-send-email 2.24.1","In-Reply-To":"<20200229164254.23604-1-laurent.pinchart@ideasonboard.com>","References":"<20200229164254.23604-1-laurent.pinchart@ideasonboard.com>","MIME-Version":"1.0","Content-Transfer-Encoding":"8bit","Subject":"[libcamera-devel] [PATCH 18/31] libcamera: controls: Add a 'size'\n\tyaml property","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>","X-List-Received-Date":"Sat, 29 Feb 2020 16:43:31 -0000"},"content":"From: Jacopo Mondi <jacopo@jmondi.org>\n\nAdd a 'size' property to the control yaml description, to convey the\nsize constraints of array constrols. The semantics of the property\ncontents is currently unspecified, but its presence triggers the\ngeneration of an array control (Control<Span<const T>>).\n\nExample:\n\n  - BayerGains:\n      type: float\n      description: Gains to apply to the four Bayer colour components for white balance\n      size: [4]\n\nSigned-off-by: Jacopo Mondi <jacopo@jmondi.org>\nSigned-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n---\n src/libcamera/gen-controls.py | 14 ++++++++++++--\n 1 file changed, 12 insertions(+), 2 deletions(-)","diff":"diff --git a/src/libcamera/gen-controls.py b/src/libcamera/gen-controls.py\nindex 6f020a327827..ff8bda6b16c1 100755\n--- a/src/libcamera/gen-controls.py\n+++ b/src/libcamera/gen-controls.py\n@@ -42,9 +42,14 @@ ${description}\n         name, ctrl = ctrl.popitem()\n         id_name = snake_case(name).upper()\n \n+        if ctrl.get('size'):\n+            ctrl_type = 'Span<const %s>' % ctrl['type']\n+        else:\n+            ctrl_type = ctrl['type']\n+\n         info = {\n             'name': name,\n-            'type': ctrl['type'],\n+            'type': ctrl_type,\n             'description': format_description(ctrl['description']),\n             'id_name': id_name,\n         }\n@@ -92,9 +97,14 @@ def generate_h(controls):\n \n         ids.append('\\t' + id_name + ' = ' + str(id_value) + ',')\n \n+        if ctrl.get('size'):\n+            ctrl_type = 'Span<const %s>' % ctrl['type']\n+        else:\n+            ctrl_type = ctrl['type']\n+\n         info = {\n             'name': name,\n-            'type': ctrl['type'],\n+            'type': ctrl_type,\n         }\n \n         enum = ctrl.get('enum')\n","prefixes":["libcamera-devel","18/31"]}