libcamera: libcamera::ControlInfoMap Class Reference

libcamera v0.5.0 Supporting cameras in Linux since 2019 |

Loading...
Searching...
No Matches
Public Types | Public Member Functions | List of all members
libcamera::ControlInfoMap Class Reference

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.
| ControlInfoMap (std::initializer_list< Map::value_type > init, const ControlIdMap &idmap)
| Construct a ControlInfoMap from an initializer list.
| ControlInfoMap (Map &&info, const ControlIdMap &idmap)
| Construct a ControlInfoMap from a plain map.
ControlInfoMap & | operator= (const ControlInfoMap &other)=default
| Copy assignment operator, replace the contents with a copy of other.
mapped_type & | at (unsigned int key)
| Access specified element by numerical ID.
const mapped_type & | at (unsigned int key) const
| Access specified element by numerical ID.
size_type | count (unsigned int key) const
| Count the number of elements matching a numerical ID.
iterator | find (unsigned int key)
| Find the element matching a numerical ID.
const_iterator | find (unsigned int key) const
| Find the element matching a numerical ID.
const ControlIdMap & | idmap () const
| Retrieve the ControlId map.

## Detailed Description

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 to be immutable once constructed, and thus only exposes the read accessors of the std::unsorted_map<> base class.

The class is constructed with a reference to a ControlIdMap. This allows providing access to the mapped elements using numerical ID keys, in addition to the features of the standard unsorted map. All ControlId keys in the map must appear in the ControlIdMap.

## Constructor & Destructor Documentation

## ◆ ControlInfoMap() [1/3]

libcamera::ControlInfoMap::ControlInfoMap | ( | const ControlInfoMap & | other | ) |
| default

Copy constructor, construct a ControlInfoMap from a copy of other.

Parameters

  [in] | other | The other ControlInfoMap

## ◆ ControlInfoMap() [2/3]

libcamera::ControlInfoMap::ControlInfoMap | ( | std::initializer_list< Map::value_type > | init,
|  | const ControlIdMap & | idmap )

Construct a ControlInfoMap from an initializer list.

Parameters

  [in] | init | The initializer list
  [in] | idmap | The idmap used by the ControlInfoMap

## ◆ ControlInfoMap() [3/3]

libcamera::ControlInfoMap::ControlInfoMap | ( | Map && | info,
|  | const ControlIdMap & | idmap )

Construct a ControlInfoMap from a plain map.

Parameters

  [in] | info | The control info plain map
  [in] | idmap | The idmap used by the ControlInfoMap

Construct a new ControlInfoMap and populate its contents with those of info using move semantics. Upon return the info map will be empty.

## Member Function Documentation

## ◆ at() [1/2]

ControlInfoMap::mapped_type & libcamera::ControlInfoMap::at | ( | unsigned int | id | ) |

Access specified element by numerical ID.

Parameters

  [in] | id | The numerical ID

Returns
  A reference to the element whose ID is equal to id

## ◆ at() [2/2]

const ControlInfoMap::mapped_type & libcamera::ControlInfoMap::at | ( | unsigned int | id | ) | const

Access specified element by numerical ID.

Parameters

  [in] | id | The numerical ID

Returns
  A const reference to the element whose ID is equal to id

## ◆ count()

ControlInfoMap::size_type libcamera::ControlInfoMap::count | ( | unsigned int | id | ) | const

Count the number of elements matching a numerical ID.

Parameters

  [in] | id | The numerical ID

Returns
  The number of elements matching the numerical id

## ◆ find() [1/2]

ControlInfoMap::iterator libcamera::ControlInfoMap::find | ( | unsigned int | id | ) |

Find the element matching a numerical ID.

Parameters

  [in] | id | The numerical ID

Returns
  An iterator pointing to the element matching the numerical id, or end() if no such element exists

## ◆ find() [2/2]

ControlInfoMap::const_iterator libcamera::ControlInfoMap::find | ( | unsigned int | id | ) | const

Find the element matching a numerical ID.

Parameters

  [in] | id | The numerical ID

Returns
  A const iterator pointing to the element matching the numerical id, or end() if no such element exists

## ◆ idmap()

const ControlIdMap & libcamera::ControlInfoMap::idmap | ( |  | ) | const
| 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 function returns a suitable idmap for that purpose.

Returns
  The ControlId map

## ◆ operator=()

ControlInfoMap & libcamera::ControlInfoMap::operator= | ( | const ControlInfoMap & | other | ) |
| default

Copy assignment operator, replace the contents with a copy of other.

Parameters

  [in] | other | The other ControlInfoMap

Returns
  A reference to the ControlInfoMap

The documentation for this class was generated from the following files:

- include/libcamera/controls.h
- src/libcamera/controls.cpp