summaryrefslogtreecommitdiff
path: root/include/libcamera/controls.h
diff options
context:
space:
mode:
authorLaurent Pinchart <laurent.pinchart@ideasonboard.com>2020-02-29 03:39:46 +0200
committerLaurent Pinchart <laurent.pinchart@ideasonboard.com>2020-04-28 20:44:47 +0300
commitd4680c8ca2b5cac4f723ec869b297099000b1100 (patch)
tree3ba027f269d3701afe251e381e5062d1e8376701 /include/libcamera/controls.h
parent8a9be175a76d34ed9fcf4c4f0233ef73736b8eab (diff)
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>
Diffstat (limited to 'include/libcamera/controls.h')
-rw-r--r--include/libcamera/controls.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/include/libcamera/controls.h b/include/libcamera/controls.h
index 4b2e7e9c..80944efc 100644
--- a/include/libcamera/controls.h
+++ b/include/libcamera/controls.h
@@ -13,6 +13,7 @@
#include <string>
#include <unordered_map>
+#include <libcamera/geometry.h>
#include <libcamera/span.h>
namespace libcamera {
@@ -27,6 +28,8 @@ enum ControlType {
ControlTypeInteger64,
ControlTypeFloat,
ControlTypeString,
+ ControlTypeRectangle,
+ ControlTypeSize,
};
namespace details {
@@ -70,6 +73,16 @@ struct control_type<std::string> {
static constexpr ControlType value = ControlTypeString;
};
+template<>
+struct control_type<Rectangle> {
+ static constexpr ControlType value = ControlTypeRectangle;
+};
+
+template<>
+struct control_type<Size> {
+ static constexpr ControlType value = ControlTypeSize;
+};
+
template<typename T, std::size_t N>
struct control_type<Span<T, N>> : public control_type<std::remove_cv_t<T>> {
};