summaryrefslogtreecommitdiff
path: root/include/libcamera/control_ids.h
diff options
context:
space:
mode:
authorKieran Bingham <kieran.bingham@ideasonboard.com>2019-06-19 16:56:40 +0100
committerLaurent Pinchart <laurent.pinchart@ideasonboard.com>2019-07-02 16:59:20 +0300
commit20d5640ca49c76c89be5bebcc00981942c7a9c19 (patch)
tree2df084fecebca0484467093def94e443d1d6459b /include/libcamera/control_ids.h
parenta110cc94ab5dfb26bf6a5eae61ea5ba2deb6d3f3 (diff)
libcamera: controls: Introduce control-related data types
Add a set of data types to support controls: - ControlValue stores a control type and value in a generic way - ControlId enumerates all the control identifiers - ControlIdentifier declares the types of a control and map their names - ControlInfo stores runtime information for controls - ControlList contains a set of control info and value pairs The control definitions map is generated from the controls documentation to ensure that the two will always be synchronised. Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com> Reviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>
Diffstat (limited to 'include/libcamera/control_ids.h')
-rw-r--r--include/libcamera/control_ids.h35
1 files changed, 35 insertions, 0 deletions
diff --git a/include/libcamera/control_ids.h b/include/libcamera/control_ids.h
new file mode 100644
index 00000000..d0e700da
--- /dev/null
+++ b/include/libcamera/control_ids.h
@@ -0,0 +1,35 @@
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
+/*
+ * Copyright (C) 2019, Google Inc.
+ *
+ * control_ids.h : Control ID list
+ */
+
+#ifndef __LIBCAMERA_CONTROL_IDS_H__
+#define __LIBCAMERA_CONTROL_IDS_H__
+
+#include <functional>
+
+namespace libcamera {
+
+enum ControlId {
+};
+
+} /* namespace libcamera */
+
+namespace std {
+
+template<>
+struct hash<libcamera::ControlId> {
+ using argument_type = libcamera::ControlId;
+ using result_type = std::size_t;
+
+ result_type operator()(const argument_type &key) const noexcept
+ {
+ return std::hash<std::underlying_type<argument_type>::type>()(key);
+ }
+};
+
+} /* namespace std */
+
+#endif // __LIBCAMERA_CONTROL_IDS_H__