From c97e62b9fb81a37e9adc66090e9a72335a7a4c58 Mon Sep 17 00:00:00 2001 From: Jens Ahrensfeld Date: Mon, 27 Oct 2025 12:39:49 +0100 Subject: [PATCH] added buffer_multi --- delay/buffer_multi.hpp | 66 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 delay/buffer_multi.hpp diff --git a/delay/buffer_multi.hpp b/delay/buffer_multi.hpp new file mode 100644 index 0000000..3363caa --- /dev/null +++ b/delay/buffer_multi.hpp @@ -0,0 +1,66 @@ +/* + * jayDSP, A cross-platform Digital Signal Processing library written in modern C++. + * Copyright (C) 2025 Jens Ahrensfeld, All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to + * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + * the Software, and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NON INFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + * File: dsp_ringbuffer.hpp + * Author Jens Ahrensfeld on 26.10.2025. + */ + +#ifndef DSP_BUFFER_MULTI_H +#define DSP_BUFFER_MULTI_H + +#include "buffer.hpp" + +namespace dsp { + +template +class BufferMulti +{ + Buffer m_buffer; + size_t m_capacity; + size_t m_numChannels; + + public: + BufferMulti(size_t capacity, size_t numChannels) + : m_capacity(capacity) + , m_numChannels(numChannels) + { + m_buffer.resize(capacity*numChannels); + } + + size_t capacity() + { + return m_capacity; + } + + size_t numChannels() + { + return m_numChannels; + } + + void reset() + { + m_buffer.reset(); + } + +}; +} + +#endif // DSP_BUFFER_MULTI_H