Mercurial > hg > opencollidoscope
annotate 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 |
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@0 | 6 /* Packs together a RingBuffer and the erlated array used to exchange data (read/write) with the ring buffer |
f@0 | 7 */ |
f@0 | 8 template <typename T> |
f@0 | 9 class RingBufferPack { |
f@0 | 10 |
f@0 | 11 public: |
f@0 | 12 |
f@0 | 13 RingBufferPack( size_t size ) : |
f@0 | 14 mSize( size ), |
f@0 | 15 mBuffer( size ) |
f@0 | 16 { |
f@0 | 17 mArray = new T[size]; |
f@0 | 18 } |
f@0 | 19 |
f@0 | 20 ~RingBufferPack() |
f@0 | 21 { |
f@0 | 22 delete[] mArray; |
f@0 | 23 } |
f@0 | 24 |
f@0 | 25 // no copy |
f@0 | 26 RingBufferPack( const RingBufferPack © ) = delete; |
f@0 | 27 RingBufferPack & operator=(const RingBufferPack ©) = delete; |
f@0 | 28 |
f@0 | 29 ci::audio::dsp::RingBufferT<T> & getBuffer() { return mBuffer; } |
f@0 | 30 |
f@0 | 31 T* getExchangeArray() { return mArray; } |
f@0 | 32 |
f@0 | 33 std::size_t getSize() { return mSize; } |
f@0 | 34 |
f@0 | 35 private: |
f@0 | 36 size_t mSize; |
f@0 | 37 |
f@0 | 38 ci::audio::dsp::RingBufferT<T> mBuffer; |
f@0 | 39 |
f@0 | 40 T* mArray; |
f@0 | 41 |
f@0 | 42 |
f@0 | 43 }; |