Mercurial > hg > opencollidoscope
annotate CollidoscopeApp/include/RingBufferPack.h @ 3:7fb593d53361
added comments
author | Fiore Martin <f.martin@qmul.ac.uk> |
---|---|
date | Tue, 12 Jul 2016 18:29:38 +0200 |
parents | 02467299402e |
children | 75b744078d66 |
rev | line source |
---|---|
f@0 | 1 #pragma once |
f@0 | 2 |
f@0 | 3 #include "cinder/audio/dsp/RingBuffer.h" |
f@0 | 4 |
f@0 | 5 |
f@3 | 6 /** Packs together a cinder::audio::dsp::RingBuffer and the related array used passed as argument to exchange data (read/write) with the ring buffer */ |
f@0 | 7 template <typename T> |
f@0 | 8 class RingBufferPack { |
f@0 | 9 |
f@0 | 10 public: |
f@0 | 11 |
f@0 | 12 RingBufferPack( size_t size ) : |
f@0 | 13 mSize( size ), |
f@0 | 14 mBuffer( size ) |
f@0 | 15 { |
f@0 | 16 mArray = new T[size]; |
f@0 | 17 } |
f@0 | 18 |
f@0 | 19 ~RingBufferPack() |
f@0 | 20 { |
f@0 | 21 delete[] mArray; |
f@0 | 22 } |
f@0 | 23 |
f@0 | 24 // no copy |
f@0 | 25 RingBufferPack( const RingBufferPack © ) = delete; |
f@0 | 26 RingBufferPack & operator=(const RingBufferPack ©) = delete; |
f@0 | 27 |
f@0 | 28 ci::audio::dsp::RingBufferT<T> & getBuffer() { return mBuffer; } |
f@0 | 29 |
f@0 | 30 T* getExchangeArray() { return mArray; } |
f@0 | 31 |
f@0 | 32 std::size_t getSize() { return mSize; } |
f@0 | 33 |
f@0 | 34 private: |
f@0 | 35 size_t mSize; |
f@0 | 36 |
f@0 | 37 ci::audio::dsp::RingBufferT<T> mBuffer; |
f@0 | 38 |
f@0 | 39 T* mArray; |
f@0 | 40 |
f@0 | 41 |
f@3 | 42 }; |