diff options
author | Naushir Patuck <naush@raspberrypi.com> | 2022-11-15 09:07:50 +0000 |
---|---|---|
committer | Laurent Pinchart <laurent.pinchart@ideasonboard.com> | 2022-11-29 17:15:55 +0200 |
commit | c7524b10e0a07623b8fbb2c4becfd01ca9cb936a (patch) | |
tree | 6126b6a94471a13b9544c8ca396e4f9b5c318453 | |
parent | dd0a75401f0cf3578ec2d02070dad0df863462d9 (diff) |
pipeline: raspberrypi: delayed_controls: Template the ControlRingBuffer class
Convert ControlRingBuffer to a templated class to allow arbitrary ring buffer
array types to be defined. Rename ControlRingBuffer to RingBuffer to indicate
this.
Signed-off-by: Naushir Patuck <naush@raspberrypi.com>
Reviewed-by: David Plowman <david.plowman@raspberrypi.com>
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
-rw-r--r-- | src/libcamera/pipeline/raspberrypi/delayed_controls.h | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/src/libcamera/pipeline/raspberrypi/delayed_controls.h b/src/libcamera/pipeline/raspberrypi/delayed_controls.h index f7f24648..238b86ab 100644 --- a/src/libcamera/pipeline/raspberrypi/delayed_controls.h +++ b/src/libcamera/pipeline/raspberrypi/delayed_controls.h @@ -56,17 +56,18 @@ private: }; static constexpr int listSize = 16; - class ControlRingBuffer : public std::array<Info, listSize> + template<typename T> + class RingBuffer : public std::array<T, listSize> { public: - Info &operator[](unsigned int index) + T &operator[](unsigned int index) { - return std::array<Info, listSize>::operator[](index % listSize); + return std::array<T, listSize>::operator[](index % listSize); } - const Info &operator[](unsigned int index) const + const T &operator[](unsigned int index) const { - return std::array<Info, listSize>::operator[](index % listSize); + return std::array<T, listSize>::operator[](index % listSize); } }; @@ -76,7 +77,7 @@ private: uint32_t queueCount_; uint32_t writeCount_; - std::unordered_map<const ControlId *, ControlRingBuffer> values_; + std::unordered_map<const ControlId *, RingBuffer<Info>> values_; }; } /* namespace RPi */ |