summaryrefslogtreecommitdiff
path: root/src/ipa/raspberrypi/controller/metadata.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/ipa/raspberrypi/controller/metadata.hpp')
0 files changed, 0 insertions, 0 deletions
b">unsigned int delay; bool priorityWrite; }; DelayedControls(V4L2Device *device, const std::unordered_map<uint32_t, ControlParams> &controlParams); void reset(unsigned int cookie); bool push(const ControlList &controls, unsigned int cookie); std::pair<ControlList, unsigned int> get(uint32_t sequence); void applyControls(uint32_t sequence); private: class Info : public ControlValue { public: Info() : updated(false) { } Info(const ControlValue &v, bool updated_ = true) : ControlValue(v), updated(updated_) { } bool updated; }; static constexpr int listSize = 16; template<typename T> class RingBuffer : public std::array<T, listSize> { public: T &operator[](unsigned int index) { return std::array<T, listSize>::operator[](index % listSize); } const T &operator[](unsigned int index) const { return std::array<T, listSize>::operator[](index % listSize); } }; V4L2Device *device_; std::unordered_map<const ControlId *, ControlParams> controlParams_; unsigned int maxDelay_; uint32_t queueCount_; uint32_t writeCount_; std::unordered_map<const ControlId *, RingBuffer<Info>> values_; RingBuffer<unsigned int> cookies_; }; } /* namespace RPi */ } /* namespace libcamera */