view 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 source
#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 &copy ) = delete;
    RingBufferPack & operator=(const RingBufferPack &copy) = 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;


};