#include <cstring>
#include <glib.h>
+#include "pbd/libpbd_visibility.h"
+
template<class T>
-class RingBuffer
+class /*LIBPBD_API*/ RingBuffer
{
public:
RingBuffer (guint sz) {
}
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];
guint size_mask;
};
-template<class T> guint
+template<class T> /*LIBPBD_API*/ guint
RingBuffer<T>::read (T *dest, guint cnt)
{
guint free_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;
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;
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;