Add a couple of visibility specifiers that were missing
[ardour.git] / libs / pbd / pbd / ringbuffer.h
index 1d9431ca071515becf2807d1df61c99ff95f7beb..e3cec6adf1b5a42c14daed05f67e7e669a4a1250 100644 (file)
 #include <cstring>
 #include <glib.h>
 
+#include "pbd/libpbd_visibility.h"
+
 template<class T>
-class RingBuffer 
+class /*LIBPBD_API*/ RingBuffer 
 {
   public:
        RingBuffer (guint sz) {
@@ -55,7 +57,7 @@ class RingBuffer
        }
        
        guint read  (T *dest, guint cnt);
-       guint write (T *src,  guint cnt);
+       guint write (T const * src,  guint cnt);
 
        struct rw_vector {
            T *buf[2];
@@ -118,7 +120,7 @@ class RingBuffer
        guint size_mask;
 };
 
-template<class T> guint 
+template<class T> /*LIBPBD_API*/ guint 
 RingBuffer<T>::read (T *dest, guint cnt)
 {
         guint free_cnt;
@@ -157,8 +159,8 @@ RingBuffer<T>::read (T *dest, guint cnt)
         return to_read;
 }
 
-template<class T> guint
-RingBuffer<T>::write (T *src, guint cnt)
+template<class T> /*LIBPBD_API*/ guint
+RingBuffer<T>::write (T const *src, guint cnt)
 
 {
         guint free_cnt;
@@ -197,8 +199,8 @@ RingBuffer<T>::write (T *src, guint cnt)
         return to_write;
 }
 
-template<class T> void
-RingBuffer<T>::get_read_vector (RingBuffer<T>::rw_vector *vec)
+template<class T> /*LIBPBD_API*/ void
+RingBuffer<T>::get_read_vector (typename RingBuffer<T>::rw_vector *vec)
 
 {
        guint free_cnt;
@@ -233,12 +235,13 @@ RingBuffer<T>::get_read_vector (RingBuffer<T>::rw_vector *vec)
                
                vec->buf[0] = &buf[r];
                vec->len[0] = free_cnt;
+               vec->buf[1] = 0;
                vec->len[1] = 0;
        }
 }
 
-template<class T> void
-RingBuffer<T>::get_write_vector (RingBuffer<T>::rw_vector *vec)
+template<class T> /*LIBPBD_API*/ void
+RingBuffer<T>::get_write_vector (typename RingBuffer<T>::rw_vector *vec)
 
 {
        guint free_cnt;