{"id":22294,"url":"https://patchwork.libcamera.org/api/1.1/covers/22294/?format=json","web_url":"https://patchwork.libcamera.org/cover/22294/","project":{"id":1,"url":"https://patchwork.libcamera.org/api/1.1/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":"<20241212052438.1547410-1-paul.elder@ideasonboard.com>","date":"2024-12-12T05:24:34","name":"[v4,0/4] Add direction field to ControlId","submitter":{"id":17,"url":"https://patchwork.libcamera.org/api/1.1/people/17/?format=json","name":"Paul Elder","email":"paul.elder@ideasonboard.com"},"mbox":"https://patchwork.libcamera.org/cover/22294/mbox/","series":[{"id":4876,"url":"https://patchwork.libcamera.org/api/1.1/series/4876/?format=json","web_url":"https://patchwork.libcamera.org/project/libcamera/list/?series=4876","date":"2024-12-12T05:24:34","name":"Add direction field to ControlId","version":4,"mbox":"https://patchwork.libcamera.org/series/4876/mbox/"}],"comments":"https://patchwork.libcamera.org/api/covers/22294/comments/","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 DE226BD80A\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu, 12 Dec 2024 05:25:05 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id BCB5467EBA;\n\tThu, 12 Dec 2024 06:25:04 +0100 (CET)","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 6AAFC6189C\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 12 Dec 2024 06:25:02 +0100 (CET)","from neptunite.flets-east.jp (unknown\n\t[IPv6:2404:7a81:160:2100:39eb:989c:b016:217b])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id F3BA2316;\n\tThu, 12 Dec 2024 06:24:27 +0100 (CET)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"e65dl2/l\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1733981068;\n\tbh=tZ5Qg0zTOXeItDNuxv2dNd075Q55mZg8FjjVpsXqhCA=;\n\th=From:To:Cc:Subject:Date:From;\n\tb=e65dl2/lSP1by4qkpqi4zjZUrfGgm0cVCVjDrFZJluoc1WX9L9H8774Mu37LgcRnm\n\tWQkglSloK5Qw2M4GqK61MXK+znOEIudRDG9ZSIqeUK9ApgHQ2Nh5nI8idalVdvCrix\n\tbV8GIEnax7u+uOmIPyF3U07TP9FUhXkkMwi7deA4=","From":"Paul Elder <paul.elder@ideasonboard.com>","To":"libcamera-devel@lists.libcamera.org","Cc":"Paul Elder <paul.elder@ideasonboard.com>","Subject":"[PATCH v4 0/4] Add direction field to ControlId","Date":"Thu, 12 Dec 2024 14:24:34 +0900","Message-Id":"<20241212052438.1547410-1-paul.elder@ideasonboard.com>","X-Mailer":"git-send-email 2.39.2","MIME-Version":"1.0","Content-Transfer-Encoding":"8bit","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>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"},"content":"This patch series add support for querying the ControlId for the\ndirection that it can be passed.\n\nThis used to only be mentioned in the control id definitions as \"This\ncontrol can only be returned in metadata\" so this codifies it and allows\nthis information to be queried by applications.\n\nThis is an ABI breaking change, so I really want to sneak it in before\nthe 0.4.0 release that's coming imminently...\n\nPatches 1 and 2 prepare control definitions and parsing, while patch 3\nadds the actual support. Patch 4 enables visualization via cam.\n\nThe main changes in v2 are that the direction field in controls\ndefinitions yaml files are now required, and the code has been cleaned\nup to take advantage of Flags.\n\nv3 expands the v4l2 and local id control serializers so that we can\nremove the default bidirectional parameter from ControlId and Control\nconstructors.\n\nThe main change in v4 is the addition of ControlId::direction(), to\nsimplify serialization/deserialization.\n\nPaul Elder (4):\n  libcamera: controls: Populate direction field in control definitions\n  utils: codegen: controls.py: Parse direction information\n  libcamera: controls: Add support for querying direction information\n  apps: cam: Print control direction information\n\n include/libcamera/controls.h         | 20 +++++++++-\n include/libcamera/ipa/ipa_controls.h |  3 +-\n src/apps/cam/camera_session.cpp      | 10 ++++-\n src/libcamera/control_ids.cpp.in     |  4 +-\n src/libcamera/control_ids_core.yaml  | 44 ++++++++++++++++++++++\n src/libcamera/control_ids_draft.yaml | 15 ++++++++\n src/libcamera/control_ids_rpi.yaml   |  3 ++\n src/libcamera/control_serializer.cpp |  8 +++-\n src/libcamera/controls.cpp           | 56 ++++++++++++++++++++++++++--\n src/libcamera/v4l2_device.cpp        | 10 ++++-\n src/py/libcamera/gen-py-controls.py  |  2 +-\n utils/codegen/controls.py            | 24 +++++++++++-\n utils/codegen/gen-controls.py        |  2 +-\n utils/codegen/gen-gst-controls.py    |  2 +-\n 14 files changed, 187 insertions(+), 16 deletions(-)"}