libcamera: controls: Add ControlTypePoint
Add a control_type<> specialization for libcamera::Point to allow storing data of that type in a ControlValue instance. The new control type will be used by controls introduced in the next patches. Signed-off-by: Yudhistira Erlandinata <yerlandinata@chromium.org> Co-developed-by: Becker Hsieh <beckerh@chromium.org> Co-developed-by: Harvey Yang <chenghaoyang@chromium.org> Reviewed-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com> Signed-off-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com> Reviewed-by: Harvey Yang <chenghaoyang@chromium.org> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
This commit is contained in:
parent
724bbf7d25
commit
200d535ca8
2 changed files with 12 additions and 0 deletions
|
@ -35,6 +35,7 @@ enum ControlType {
|
|||
ControlTypeString,
|
||||
ControlTypeRectangle,
|
||||
ControlTypeSize,
|
||||
ControlTypePoint,
|
||||
};
|
||||
|
||||
namespace details {
|
||||
|
@ -97,6 +98,11 @@ struct control_type<Size> {
|
|||
static constexpr std::size_t size = 0;
|
||||
};
|
||||
|
||||
template<>
|
||||
struct control_type<Point> {
|
||||
static constexpr ControlType value = ControlTypePoint;
|
||||
};
|
||||
|
||||
template<typename T, std::size_t N>
|
||||
struct control_type<Span<T, N>> : public control_type<std::remove_cv_t<T>> {
|
||||
static constexpr std::size_t size = N;
|
||||
|
|
|
@ -60,6 +60,7 @@ static constexpr size_t ControlValueSize[] = {
|
|||
[ControlTypeString] = sizeof(char),
|
||||
[ControlTypeRectangle] = sizeof(Rectangle),
|
||||
[ControlTypeSize] = sizeof(Size),
|
||||
[ControlTypePoint] = sizeof(Point),
|
||||
};
|
||||
|
||||
} /* namespace */
|
||||
|
@ -254,6 +255,11 @@ std::string ControlValue::toString() const
|
|||
str += value->toString();
|
||||
break;
|
||||
}
|
||||
case ControlTypePoint: {
|
||||
const Point *value = reinterpret_cast<const Point *>(data);
|
||||
str += value->toString();
|
||||
break;
|
||||
}
|
||||
case ControlTypeNone:
|
||||
case ControlTypeString:
|
||||
break;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue