[libcamera-devel] [PATCH v2 18/32] libcamera: controls: Add a 'size' yaml property
Laurent Pinchart
laurent.pinchart at ideasonboard.com
Fri Mar 6 16:59:48 CET 2020
From: Jacopo Mondi <jacopo at jmondi.org>
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 at jmondi.org>
Signed-off-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
Reviewed-by: Kieran Bingham <kieran.bingham at ideasonboard.com>
---
src/libcamera/gen-controls.py | 14 ++++++++++++--
1 file changed, 12 insertions(+), 2 deletions(-)
diff --git a/src/libcamera/gen-controls.py b/src/libcamera/gen-controls.py
index 6f020a327827..ff8bda6b16c1 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')
--
Regards,
Laurent Pinchart
More information about the libcamera-devel
mailing list