libcamera: controls: Add rectangle and size control types

Add two control types to store rectangles and sizes. These will be
useful for the properties related to the pixel array.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>
Reviewed-by: Jacopo Mondi <jacopo@jmondi.org>
This commit is contained in:
Laurent Pinchart
2020-02-29 03:39:46 +02:00
parent 8a9be175a7
commit d4680c8ca2
2 changed files with 25 additions and 0 deletions
+12
View File
@@ -58,6 +58,8 @@ static constexpr size_t ControlValueSize[] = {
[ControlTypeInteger64] = sizeof(int64_t),
[ControlTypeFloat] = sizeof(float),
[ControlTypeString] = sizeof(char),
[ControlTypeRectangle] = sizeof(Rectangle),
[ControlTypeSize] = sizeof(Size),
};
} /* namespace */
@@ -242,6 +244,16 @@ std::string ControlValue::toString() const
str += std::to_string(*value);
break;
}
case ControlTypeRectangle: {
const Rectangle *value = reinterpret_cast<const Rectangle *>(data);
str += value->toString();
break;
}
case ControlTypeSize: {
const Size *value = reinterpret_cast<const Size *>(data);
str += value->toString();
break;
}
case ControlTypeNone:
case ControlTypeString:
break;