[libcamera-devel] [PATCH 18/31] libcamera: controls: Add a 'size' yaml property
Laurent Pinchart
laurent.pinchart at ideasonboard.com
Sat Feb 29 17:42:41 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 constrols. 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>
---
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