- added MultiBuffer
- improved tests
This commit is contained in:
+15
-8
@@ -31,18 +31,17 @@
|
||||
namespace dsp {
|
||||
|
||||
template <typename T>
|
||||
class BufferMulti
|
||||
class BufferMulti : public Buffer<T>
|
||||
{
|
||||
Buffer<T> m_buffer;
|
||||
size_t m_capacity;
|
||||
size_t m_numChannels;
|
||||
size_t m_capacity;
|
||||
|
||||
public:
|
||||
BufferMulti(size_t capacity, size_t numChannels)
|
||||
: m_capacity(capacity)
|
||||
BufferMulti(size_t numChannels, size_t capacity)
|
||||
: Buffer<T>(capacity*numChannels)
|
||||
, m_numChannels(numChannels)
|
||||
, m_capacity(capacity)
|
||||
{
|
||||
m_buffer.resize(capacity*numChannels);
|
||||
}
|
||||
|
||||
size_t capacity()
|
||||
@@ -55,11 +54,19 @@ class BufferMulti
|
||||
return m_numChannels;
|
||||
}
|
||||
|
||||
void reset()
|
||||
using Buffer<T>::at;
|
||||
T & at(uint channel, int offset)
|
||||
{
|
||||
m_buffer.reset();
|
||||
return at(int(m_capacity*channel + offset));
|
||||
}
|
||||
|
||||
const T & at(uint channel, int offset) const
|
||||
{
|
||||
return at(channel, offset);
|
||||
}
|
||||
|
||||
protected:
|
||||
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user