From patchwork Wed Nov 27 08:50:13 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paul Elder X-Patchwork-Id: 22106 Return-Path: X-Original-To: parsemail@patchwork.libcamera.org Delivered-To: parsemail@patchwork.libcamera.org Received: from lancelot.ideasonboard.com (lancelot.ideasonboard.com [92.243.16.209]) by patchwork.libcamera.org (Postfix) with ESMTPS id 146F8C3213 for ; Wed, 27 Nov 2024 08:50:30 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 5339B660A7; Wed, 27 Nov 2024 09:50:29 +0100 (CET) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="TH1zmiyC"; dkim-atps=neutral Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 55ECD6609E for ; Wed, 27 Nov 2024 09:50:27 +0100 (CET) Received: from neptunite.hamster-moth.ts.net (unknown [IPv6:2404:7a81:160:2100:7dcc:a4ea:e361:d355]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 66D67792; Wed, 27 Nov 2024 09:50:03 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1732697404; bh=/f3uvEYvjQLzm9q68SJubWBCCAAbaZq7p3psutdb5cs=; h=From:To:Cc:Subject:Date:From; b=TH1zmiyCYHFv8h/i+l80woEM5ODwM1SC/IouqjP4drTaSRPFfJyGSiIIDO/HllV2U 7Xt29yi609CtvwNTUBMvhtWbw2qk3P5Bd5cPJ3ceRv6gdQAEPun9TA1HN/zlqT1Y87 4Vkl3r2fRoiGyydBc8CS8SgiFSP/hnpUDp/P5ej0= From: Paul Elder To: libcamera-devel@lists.libcamera.org Cc: Paul Elder Subject: [PATCH v2 0/4] Add direction field to ControlId Date: Wed, 27 Nov 2024 17:50:13 +0900 Message-Id: <20241127085017.2192069-1-paul.elder@ideasonboard.com> X-Mailer: git-send-email 2.39.2 MIME-Version: 1.0 X-BeenThere: libcamera-devel@lists.libcamera.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libcamera-devel-bounces@lists.libcamera.org Sender: "libcamera-devel" This patch series add support for querying the ControlId for the direction that it can be passed. This used to only be mentioned in the control id definitions as "This control can only be returned in metadata" so this codifies it and allows this information to be queried by applications. This is an ABI breaking change, so I really want to sneak it in before the 0.4.0 release that's coming imminently... Patches 1 and 2 prepare control definitions and parsing, while patch 3 adds the actual support. Patch 4 enables visualization via cam. The main changes in v2 are that the direction field in controls definitions yaml files are now required, and the code has been cleaned up to take advantage of Flags. Paul Elder (4): libcamera: controls: Populate direction field in control definitions utils: codegen: controls.py: Parse direction information libcamera: controls: Add support for querying direction information apps: cam: Print control direction information include/libcamera/controls.h | 20 ++++++++++++- src/apps/cam/camera_session.cpp | 10 +++++-- src/libcamera/control_ids.cpp.in | 4 +-- src/libcamera/control_ids_core.yaml | 44 ++++++++++++++++++++++++++++ src/libcamera/control_ids_draft.yaml | 15 ++++++++++ src/libcamera/control_ids_rpi.yaml | 3 ++ src/libcamera/controls.cpp | 43 +++++++++++++++++++++++++-- src/py/libcamera/gen-py-controls.py | 2 +- utils/codegen/controls.py | 24 ++++++++++++++- utils/codegen/gen-controls.py | 2 +- utils/codegen/gen-gst-controls.py | 2 +- 11 files changed, 158 insertions(+), 11 deletions(-)