- added MultiBuffer

- improved tests
This commit is contained in:
2025-10-27 21:48:51 +01:00
parent 9fedd040b3
commit 7f66f9e60d
7 changed files with 153 additions and 19 deletions
+41 -4
View File
@@ -31,6 +31,7 @@
#include <stdint.h>
#include <sys/types.h>
#include <dsp_types.hpp>
#include <iostream>
namespace dsp {
@@ -41,7 +42,7 @@ class Buffer
uint m_mask;
size_t m_capacity;
vector<T> m_buffer;
public:
Buffer(size_t capacity)
: m_index(0)
@@ -75,13 +76,13 @@ class Buffer
}
T & operator[](int offset)
{
return m_buffer[(m_index + (uint)offset) & m_mask];
{
return at(offset);
}
const T & operator[](int offset) const
{
return m_buffer[(m_index + (uint)offset) & m_mask];
return at(offset);
}
Buffer & operator ++()
@@ -112,7 +113,43 @@ class Buffer
return *this;
}
typedef std::vector<T>::iterator iterator;
typedef std::vector<T>::const_iterator const_iterator;
iterator begin()
{
return m_buffer.begin();
}
iterator end()
{
return m_buffer.end();
}
const_iterator begin() const
{
return m_buffer.begin();
}
const_iterator end() const
{
return m_buffer.end();
}
protected:
virtual T & at(int offset)
{
int i = (m_index + (uint)offset) & m_mask;
return m_buffer[i];
}
virtual const T & at(int offset) const
{
return at(offset);
}
};
}
#endif // DSP_BUFFER_H