[libcamera-devel] [PATCH v2 11/32] libcamera: controls: Add templates to convert a type T to a ControlType
Laurent Pinchart
laurent.pinchart at ideasonboard.com
Fri Mar 6 16:59:41 CET 2020
These will be used to implement ControlValue::get() and set() as
template functions.
Signed-off-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
Reviewed-by: Kieran Bingham <kieran.bingham at ideasonboard.com>
---
Documentation/Doxyfile.in | 2 +-
include/libcamera/controls.h | 28 ++++++++++++++++++++++++++++
2 files changed, 29 insertions(+), 1 deletion(-)
diff --git a/Documentation/Doxyfile.in b/Documentation/Doxyfile.in
index d5ba5c4e3b80..3dffbf823398 100644
--- a/Documentation/Doxyfile.in
+++ b/Documentation/Doxyfile.in
@@ -881,7 +881,7 @@ EXCLUDE_SYMBOLS = libcamera::BoundMethodArgs \
libcamera::BoundMethodStatic \
libcamera::SignalBase \
libcamera::*::Private \
- libcamera::*::details::* \
+ *::details::* \
std::*
# The EXAMPLE_PATH tag can be used to specify one or more files or directories
diff --git a/include/libcamera/controls.h b/include/libcamera/controls.h
index 3b6b231c7c64..429f01b0fd24 100644
--- a/include/libcamera/controls.h
+++ b/include/libcamera/controls.h
@@ -22,6 +22,34 @@ enum ControlType {
ControlTypeInteger64,
};
+namespace details {
+
+template<typename T>
+struct control_type {
+};
+
+template<>
+struct control_type<void> {
+ static constexpr ControlType value = ControlTypeNone;
+};
+
+template<>
+struct control_type<bool> {
+ static constexpr ControlType value = ControlTypeBool;
+};
+
+template<>
+struct control_type<int32_t> {
+ static constexpr ControlType value = ControlTypeInteger32;
+};
+
+template<>
+struct control_type<int64_t> {
+ static constexpr ControlType value = ControlTypeInteger64;
+};
+
+} /* namespace details */
+
class ControlValue
{
public:
--
Regards,
Laurent Pinchart
More information about the libcamera-devel
mailing list