view 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
line wrap: on
line source
#pragma once

#include "cinder/audio/dsp/RingBuffer.h"


/** Packs together a cinder::audio::dsp::RingBuffer and the related array used passed as argument 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;


};