Mercurial > hg > opencollidoscope
diff CollidoscopeApp/include/RingBufferPack.h @ 0:02467299402e
First import
CollidoscopeApp for Raspberry Pi
JackDevice
Teensy code for Collidoscope
author | Fiore Martin <f.martin@qmul.ac.uk> |
---|---|
date | Thu, 30 Jun 2016 14:50:06 +0200 |
parents | |
children | 7fb593d53361 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/CollidoscopeApp/include/RingBufferPack.h Thu Jun 30 14:50:06 2016 +0200 @@ -0,0 +1,43 @@ +#pragma once + +#include "cinder/audio/dsp/RingBuffer.h" + + +/* Packs together a RingBuffer and the erlated array used to exchange data (read/write) with the ring buffer +*/ +template <typename T> +class RingBufferPack { + +public: + + RingBufferPack( size_t size ) : + mSize( size ), + mBuffer( size ) + { + mArray = new T[size]; + } + + ~RingBufferPack() + { + delete[] mArray; + } + + // no copy + RingBufferPack( const RingBufferPack © ) = delete; + RingBufferPack & operator=(const RingBufferPack ©) = delete; + + ci::audio::dsp::RingBufferT<T> & getBuffer() { return mBuffer; } + + T* getExchangeArray() { return mArray; } + + std::size_t getSize() { return mSize; } + +private: + size_t mSize; + + ci::audio::dsp::RingBufferT<T> mBuffer; + + T* mArray; + + +}; \ No newline at end of file