f@0: #pragma once f@0: f@0: #include "cinder/audio/dsp/RingBuffer.h" f@0: f@0: f@0: /* Packs together a RingBuffer and the erlated array used to exchange data (read/write) with the ring buffer f@0: */ f@0: template f@0: class RingBufferPack { f@0: f@0: public: f@0: f@0: RingBufferPack( size_t size ) : f@0: mSize( size ), f@0: mBuffer( size ) f@0: { f@0: mArray = new T[size]; f@0: } f@0: f@0: ~RingBufferPack() f@0: { f@0: delete[] mArray; f@0: } f@0: f@0: // no copy f@0: RingBufferPack( const RingBufferPack © ) = delete; f@0: RingBufferPack & operator=(const RingBufferPack ©) = delete; f@0: f@0: ci::audio::dsp::RingBufferT & getBuffer() { return mBuffer; } f@0: f@0: T* getExchangeArray() { return mArray; } f@0: f@0: std::size_t getSize() { return mSize; } f@0: f@0: private: f@0: size_t mSize; f@0: f@0: ci::audio::dsp::RingBufferT mBuffer; f@0: f@0: T* mArray; f@0: f@0: f@0: };