11#include <unordered_map>
30 const std::unordered_map<uint32_t, ControlParams> &controlParams);
57 static constexpr int listSize = 16;
58 class ControlRingBuffer :
public std::array<Info, listSize>
61 Info &operator[](
unsigned int index)
63 return std::array<Info, listSize>::operator[](index % listSize);
66 const Info &operator[](
unsigned int index)
const
68 return std::array<Info, listSize>::operator[](index % listSize);
74 std::unordered_map<const ControlId *, ControlParams> controlParams_;
75 unsigned int maxDelay_;
80 std::unordered_map<const ControlId *, ControlRingBuffer> values_;
Associate a list of ControlId with their values for an object.
Definition controls.h:411
Abstract type representing the value of a control.
Definition controls.h:134
DelayedControls(V4L2Device *device, const std::unordered_map< uint32_t, ControlParams > &controlParams)
Construct a DelayedControls instance.
Definition delayed_controls.cpp:74
ControlList get(uint32_t sequence)
Read back controls in effect at a sequence number.
Definition delayed_controls.cpp:203
bool push(const ControlList &controls)
Push a set of controls on the queue.
Definition delayed_controls.cpp:149
void reset()
Reset state machine.
Definition delayed_controls.cpp:116
void applyControls(uint32_t sequence)
Inform DelayedControls of the start of a new frame.
Definition delayed_controls.cpp:232
Object(Object *parent=nullptr)
Construct an Object instance.
Definition object.cpp:69
Base class for V4L2VideoDevice and V4L2Subdevice.
Definition v4l2_device.h:33
Framework to manage controls related to an object.
Namespace for libcamera controls.
Definition control_ids.h:21
Top-level libcamera namespace.
Definition backtrace.h:17
Base object to support automatic signal disconnection.
Parameters associated with controls handled by the DelayedControls helper class.
Definition delayed_controls.h:24
unsigned int delay
Frame delay from setting the control on a sensor device to when it is consumed during framing.
Definition delayed_controls.h:25
bool priorityWrite
Flag to indicate that this control must be applied ahead of, and separately from the other controls.
Definition delayed_controls.h:26