libcamera/utils
Naushir Patuck bd6658943a controls: Add vendor control/property support to generation scripts
Add support for vendor-specific controls and properties to libcamera.
The controls/properties are defined by a "vendor" tag in the YAML
control description file, for example:

vendor: rpi
controls:
  - MyExampleControl:
      type: string
      description: |
        Test for libcamera vendor-specific controls.

This will now generate a control id in the libcamera::controls::rpi
namespace, ensuring no id conflict between different vendors, core or
draft libcamera controls. Similarly, a ControlIdMap control is generated
in the libcamera::controls::rpi namespace.

A #define LIBCAMERA_HAS_RPI_VENDOR_CONTROLS is also generated to allow
applications to conditionally compile code if the specific vendor
controls are present. For the python bindings, the control is available
with libcamera.controls.rpi.MyExampleControl. The above controls
example applies similarly to properties.

Existing libcamera controls defined in control_ids.yaml are given the
"libcamera" vendor tag.

A new --mode flag is added to gen-controls.py to specify the mode of
operation, either 'controls' or 'properties' to allow the code generator
to correctly set the #define string.

As a drive-by, sort and redefine the output command line argument in
gen-controls.py and gen-py-controls.py to ('--output', '-o') for
consistency.

Signed-off-by: Naushir Patuck <naush@raspberrypi.com>
Reviewed-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>
Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
2023-11-29 09:05:37 +00:00
..
hooks utils: hooks: pre-push: Catch commits without author's SoB 2022-03-28 13:29:32 +03:00
ipc utils: ipc: Update parser.py 2023-04-05 08:24:11 +03:00
ipu3 utils: ipu3-capture.sh: Fix the script to work with recent media-ctl versions 2023-07-05 00:51:34 +01:00
raspberrypi utils: raspberrypi: ctt: Code tidying 2023-07-28 08:32:40 +01:00
rkisp1 utils: rkisp1: gen-csc-table: Add support for inverting the CSC 2022-09-30 22:30:17 +03:00
tracepoints libcamera: tracing: fix header generation when built as subproject 2022-11-24 14:52:00 +00:00
tuning utils: tuning: Add tuning script for rkisp1 2022-11-25 15:38:17 +09:00
abi-compat.sh utils: ABI Compatibility checker 2023-07-04 20:25:10 +01:00
checkstyle.py utils: checkstyle.py: Extract title and trailers with one command 2023-07-28 19:11:56 +03:00
gen-controls.py controls: Add vendor control/property support to generation scripts 2023-11-29 09:05:37 +00:00
gen-formats.py utils: gen-formats: Support big-endian DRM formats 2021-02-01 22:33:55 +02:00
gen-header.sh utils: Convert to pragma once 2021-11-24 12:19:03 +00:00
gen-ipa-priv-key.sh libcamera: ipa: Move key generation to utils 2020-09-24 10:56:22 +01:00
gen-ipa-pub-key.py libcamera: ipa: Move key generation to utils 2020-09-24 10:56:22 +01:00
gen-version.sh meson: Really fix git version parsing 2023-04-05 07:16:07 +03:00
meson.build README, meson: Add dependency on ply and jinja2 for IPA interface generation 2020-11-11 19:23:16 +09:00
release.sh utils: Provide a release script 2022-10-13 12:40:24 +01:00
run-dist.sh build: Preserve upstream git versioning using meson dist 2021-10-19 13:14:54 +03:00
semver utils: semver: Add version helper 2022-10-13 12:40:23 +01:00
update-kernel-headers.sh utils: update-kernel-headers: Support git worktrees 2023-10-18 16:17:18 +03:00
update-mojo.sh utils: update-mojo.sh: Add script for updating mojo 2021-05-26 13:03:12 +09:00