[libcamera-devel] [PATCH 18/31] libcamera: controls: Add a 'size' yaml property
Kieran Bingham
kieran.bingham at ideasonboard.com
Thu Mar 5 15:53:05 CET 2020
Hi
On 29/02/2020 16:42, Laurent Pinchart wrote:
> 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
/constrols/controls/
> 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>
Will we define dynamic sizes ? Or min/max options?
Presuming that this is 'just' for fixed size compound controls so far,
and there will be more to come on this later:
At some point we may want/need a schema and validator for this.
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
--
Kieran
More information about the libcamera-devel
mailing list