summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJacopo Mondi <jacopo@jmondi.org>2019-12-30 18:03:29 +0100
committerLaurent Pinchart <laurent.pinchart@ideasonboard.com>2020-03-06 18:10:31 +0200
commitabd96336ed0f4e4a109d9742ee5f39388654ef22 (patch)
tree38e52ee6cc994db7c02fe4a138d0b22e0916cc75
parent3556ae95ecb049eb7befb4c2115aa1646c5b4daf (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-xsrc/libcamera/gen-controls.py14
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')