diff options
author | Kieran Bingham <kieran.bingham@ideasonboard.com> | 2019-06-19 16:56:40 +0100 |
---|---|---|
committer | Laurent Pinchart <laurent.pinchart@ideasonboard.com> | 2019-07-02 16:59:20 +0300 |
commit | 20d5640ca49c76c89be5bebcc00981942c7a9c19 (patch) | |
tree | 2df084fecebca0484467093def94e443d1d6459b /include/libcamera/control_ids.h | |
parent | a110cc94ab5dfb26bf6a5eae61ea5ba2deb6d3f3 (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.h | 35 |
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__ |