libcamera
v0.0.0
Supporting cameras in Linux since 2019
|
A map of ControlId to ControlInfo. More...
Public Types | |
using | Map = std::unordered_map< const ControlId *, ControlInfo > |
The base std::unsorted_map<> container. | |
Public Member Functions | |
ControlInfoMap (const ControlInfoMap &other)=default | |
Copy constructor, construct a ControlInfoMap from a copy of other. More... | |
ControlInfoMap (std::initializer_list< Map::value_type > init) | |
Construct a ControlInfoMap from an initializer list. More... | |
ControlInfoMap (Map &&info) | |
Construct a ControlInfoMap from a plain map. More... | |
ControlInfoMap & | operator= (const ControlInfoMap &other)=default |
Copy assignment operator, replace the contents with a copy of other. More... | |
ControlInfoMap & | operator= (std::initializer_list< Map::value_type > init) |
Replace the contents with those from the initializer list. More... | |
ControlInfoMap & | operator= (Map &&info) |
Move assignment operator from a plain map. More... | |
mapped_type & | at (unsigned int key) |
Access specified element by numerical ID. More... | |
const mapped_type & | at (unsigned int key) const |
Access specified element by numerical ID. More... | |
size_type | count (unsigned int key) const |
Count the number of elements matching a numerical ID. More... | |
iterator | find (unsigned int key) |
Find the element matching a numerical ID. More... | |
const_iterator | find (unsigned int key) const |
Find the element matching a numerical ID. More... | |
const ControlIdMap & | idmap () const |
Retrieve the ControlId map. More... | |
A map of ControlId to ControlInfo.
The ControlInfoMap class describes controls supported by an object as an unsorted map of ControlId pointers to ControlInfo instances. Unlike the standard std::unsorted_map<> class, it is designed the be immutable once constructed, and thus only exposes the read accessors of the std::unsorted_map<> base class.
In addition to the features of the standard unsorted map, this class also provides access to the mapped elements using numerical ID keys. It maintains an internal map of numerical ID to ControlId for this purpose, and exposes it through the idmap() method to help construction of ControlList instances.
|
default |
Copy constructor, construct a ControlInfoMap from a copy of other.
[in] | other | The other ControlInfoMap |
libcamera::ControlInfoMap::ControlInfoMap | ( | std::initializer_list< Map::value_type > | init | ) |
Construct a ControlInfoMap from an initializer list.
[in] | init | The initializer list |
libcamera::ControlInfoMap::ControlInfoMap | ( | Map && | info | ) |
Construct a ControlInfoMap from a plain map.
[in] | info | The control info plain map |
Construct a new ControlInfoMap and populate its contents with those of info using move semantics. Upon return the info map will be empty.
ControlInfoMap::mapped_type & libcamera::ControlInfoMap::at | ( | unsigned int | id | ) |
Access specified element by numerical ID.
[in] | id | The numerical ID |
const ControlInfoMap::mapped_type & libcamera::ControlInfoMap::at | ( | unsigned int | id | ) | const |
Access specified element by numerical ID.
[in] | id | The numerical ID |
ControlInfoMap::size_type libcamera::ControlInfoMap::count | ( | unsigned int | id | ) | const |
Count the number of elements matching a numerical ID.
[in] | id | The numerical ID |
ControlInfoMap::iterator libcamera::ControlInfoMap::find | ( | unsigned int | id | ) |
Find the element matching a numerical ID.
[in] | id | The numerical ID |
ControlInfoMap::const_iterator libcamera::ControlInfoMap::find | ( | unsigned int | id | ) | const |
Find the element matching a numerical ID.
[in] | id | The numerical ID |
|
inline |
Retrieve the ControlId map.
Constructing ControlList instances for V4L2 controls requires a ControlIdMap for the V4L2 device that the control list targets. This helper method returns a suitable idmap for that purpose.
|
default |
Copy assignment operator, replace the contents with a copy of other.
[in] | other | The other ControlInfoMap |
ControlInfoMap & libcamera::ControlInfoMap::operator= | ( | Map && | info | ) |
Move assignment operator from a plain map.
[in] | info | The control info plain map |
Populate the map by replacing its contents with those of info using move semantics. Upon return the info map will be empty.
ControlInfoMap & libcamera::ControlInfoMap::operator= | ( | std::initializer_list< Map::value_type > | init | ) |
Replace the contents with those from the initializer list.
[in] | init | The initializer list |