cam: capture_script: Make parseRectangles work for non-array

parseRectangles currently always parses Rectangle controls as an array
of Rectangles. This causes non-array Rectangle controls to not be parsed
correctly, as when the ControlValue is get()ed, the non-array assertion
will fail.

Set the ControlValue with a single Rectangle in case a single Rectangle
has been specified in the yaml capture script to fix that.

Signed-off-by: Paul Elder <paul.elder@ideasonboard.com>
Signed-off-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>
Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Reviewed-by: Umang Jain <umang.jain@ideasonboard.com>
Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
This commit is contained in:
Paul Elder 2024-03-08 11:42:18 +01:00 committed by Kieran Bingham
parent cdb07a0217
commit 01935edbba

View file

@ -351,7 +351,10 @@ ControlValue CaptureScript::parseRectangles()
}
ControlValue controlValue;
controlValue.set(Span<const Rectangle>(rectangles));
if (rectangles.size() == 1)
controlValue.set(rectangles.at(0));
else
controlValue.set(Span<const Rectangle>(rectangles));
return controlValue;
}