X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fpbd%2Fpbd%2FringbufferNPT.h;h=e43f9675922cca5c3fcf3a514a8ee45b9c6f0671;hb=b6afce39a40f5a6f06de665c242d96934b7e3f8e;hp=fee2efce3d8c78c4900eb09d0cb08580bf04c456;hpb=79986643c0c904f6574bb5323e2233a43a9e622e;p=ardour.git diff --git a/libs/pbd/pbd/ringbufferNPT.h b/libs/pbd/pbd/ringbufferNPT.h index fee2efce3d..e43f967592 100644 --- a/libs/pbd/pbd/ringbufferNPT.h +++ b/libs/pbd/pbd/ringbufferNPT.h @@ -15,7 +15,6 @@ along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - $Id$ */ #ifndef ringbuffer_npt_h @@ -23,8 +22,11 @@ //#include +#include #include +namespace PBD { + /* ringbuffer class where the element size is not required to be a power of two */ template @@ -35,10 +37,9 @@ class RingBufferNPT size = sz; buf = new T[size]; reset (); - - }; + } - virtual ~RingBufferNPT() { + virtual ~RingBufferNPT () { delete [] buf; } @@ -55,7 +56,7 @@ class RingBufferNPT } size_t read (T *dest, size_t cnt); - size_t write (T *src, size_t cnt); + size_t write (const T *src, size_t cnt); struct rw_vector { T *buf[2]; @@ -157,7 +158,7 @@ RingBufferNPT::read (T *dest, size_t cnt) } template size_t -RingBufferNPT::write (T *src, size_t cnt) +RingBufferNPT::write (const T *src, size_t cnt) { size_t free_cnt; size_t cnt2; @@ -230,6 +231,7 @@ RingBufferNPT::get_read_vector (RingBufferNPT::rw_vector *vec) vec->buf[0] = &buf[r]; vec->len[0] = free_cnt; + vec->buf[1] = 0; vec->len[1] = 0; } } @@ -272,4 +274,6 @@ RingBufferNPT::get_write_vector (RingBufferNPT::rw_vector *vec) } } +} /* namespace */ + #endif /* __ringbuffer_npt_h__ */