diff options
author | Jacopo Mondi <jacopo@jmondi.org> | 2019-12-30 18:03:29 +0100 |
---|---|---|
committer | Laurent Pinchart <laurent.pinchart@ideasonboard.com> | 2020-03-06 18:10:31 +0200 |
commit | abd96336ed0f4e4a109d9742ee5f39388654ef22 (patch) | |
tree | 38e52ee6cc994db7c02fe4a138d0b22e0916cc75 | |
parent | 3556ae95ecb049eb7befb4c2115aa1646c5b4daf (diff) |
libcamera: controls: Add a 'size' yaml property
Add a 'size' property to the control yaml description, to convey the
size constraints of array controls. The semantics of the property
contents is currently unspecified, but its presence triggers the
generation of an array control (Control<Span<const T>>).
Example:
- BayerGains:
type: float
description: Gains to apply to the four Bayer colour components for white balance
size: [4]
Signed-off-by: Jacopo Mondi <jacopo@jmondi.org>
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
-rwxr-xr-x | src/libcamera/gen-controls.py | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/src/libcamera/gen-controls.py b/src/libcamera/gen-controls.py index 6f020a32..ff8bda6b 100755 --- a/src/libcamera/gen-controls.py +++ b/src/libcamera/gen-controls.py @@ -42,9 +42,14 @@ ${description} name, ctrl = ctrl.popitem() id_name = snake_case(name).upper() + if ctrl.get('size'): + ctrl_type = 'Span<const %s>' % ctrl['type'] + else: + ctrl_type = ctrl['type'] + info = { 'name': name, - 'type': ctrl['type'], + 'type': ctrl_type, 'description': format_description(ctrl['description']), 'id_name': id_name, } @@ -92,9 +97,14 @@ def generate_h(controls): ids.append('\t' + id_name + ' = ' + str(id_value) + ',') + if ctrl.get('size'): + ctrl_type = 'Span<const %s>' % ctrl['type'] + else: + ctrl_type = ctrl['type'] + info = { 'name': name, - 'type': ctrl['type'], + 'type': ctrl_type, } enum = ctrl.get('enum') |