diff options
Diffstat (limited to 'libs/pbd3/pbd/ringbufferNPT.h')
-rw-r--r-- | libs/pbd3/pbd/ringbufferNPT.h | 52 |
1 files changed, 26 insertions, 26 deletions
diff --git a/libs/pbd3/pbd/ringbufferNPT.h b/libs/pbd3/pbd/ringbufferNPT.h index ccfcae42a5..fee2efce3d 100644 --- a/libs/pbd3/pbd/ringbufferNPT.h +++ b/libs/pbd3/pbd/ringbufferNPT.h @@ -21,12 +21,12 @@ #ifndef ringbuffer_npt_h #define ringbuffer_npt_h -#include <sys/mman.h> -#include <pbd/atomic.h> +//#include <sys/mman.h> + +#include <glib.h> + +/* ringbuffer class where the element size is not required to be a power of two */ -/** Ringbuffer class where the element size is not required to be a - * power of two. - */ template<class T> class RingBufferNPT { @@ -44,14 +44,14 @@ class RingBufferNPT void reset () { /* !!! NOT THREAD SAFE !!! */ - atomic_set (&write_ptr, 0); - atomic_set (&read_ptr, 0); + g_atomic_int_set (&write_ptr, 0); + g_atomic_int_set (&read_ptr, 0); } void set (size_t r, size_t w) { /* !!! NOT THREAD SAFE !!! */ - atomic_set (&write_ptr, w); - atomic_set (&read_ptr, r); + g_atomic_int_set (&write_ptr, w); + g_atomic_int_set (&read_ptr, r); } size_t read (T *dest, size_t cnt); @@ -66,22 +66,22 @@ class RingBufferNPT void get_write_vector (rw_vector *); void decrement_read_ptr (size_t cnt) { - atomic_set (&read_ptr, (atomic_read(&read_ptr) - cnt) % size); + g_atomic_int_set (&read_ptr, (g_atomic_int_get(&read_ptr) - cnt) % size); } void increment_read_ptr (size_t cnt) { - atomic_set (&read_ptr, (atomic_read(&read_ptr) + cnt) % size); + g_atomic_int_set (&read_ptr, (g_atomic_int_get(&read_ptr) + cnt) % size); } void increment_write_ptr (size_t cnt) { - atomic_set (&write_ptr, (atomic_read(&write_ptr) + cnt) % size); + g_atomic_int_set (&write_ptr, (g_atomic_int_get(&write_ptr) + cnt) % size); } size_t write_space () { size_t w, r; - w = atomic_read (&write_ptr); - r = atomic_read (&read_ptr); + w = g_atomic_int_get (&write_ptr); + r = g_atomic_int_get (&read_ptr); if (w > r) { return ((r - w + size) % size) - 1; @@ -95,8 +95,8 @@ class RingBufferNPT size_t read_space () { size_t w, r; - w = atomic_read (&write_ptr); - r = atomic_read (&read_ptr); + w = g_atomic_int_get (&write_ptr); + r = g_atomic_int_get (&read_ptr); if (w > r) { return w - r; @@ -106,8 +106,8 @@ class RingBufferNPT } T *buffer () { return buf; } - size_t get_write_ptr () const { return atomic_read (&write_ptr); } - size_t get_read_ptr () const { return atomic_read (&read_ptr); } + size_t get_write_ptr () const { return g_atomic_int_get (&write_ptr); } + size_t get_read_ptr () const { return g_atomic_int_get (&read_ptr); } size_t bufsize () const { return size; } protected: @@ -126,7 +126,7 @@ RingBufferNPT<T>::read (T *dest, size_t cnt) size_t n1, n2; size_t priv_read_ptr; - priv_read_ptr=atomic_read(&read_ptr); + priv_read_ptr=g_atomic_int_get(&read_ptr); if ((free_cnt = read_space ()) == 0) { return 0; @@ -152,7 +152,7 @@ RingBufferNPT<T>::read (T *dest, size_t cnt) priv_read_ptr = n2; } - atomic_set(&read_ptr, priv_read_ptr); + g_atomic_int_set(&read_ptr, priv_read_ptr); return to_read; } @@ -165,7 +165,7 @@ RingBufferNPT<T>::write (T *src, size_t cnt) size_t n1, n2; size_t priv_write_ptr; - priv_write_ptr=atomic_read(&write_ptr); + priv_write_ptr=g_atomic_int_get(&write_ptr); if ((free_cnt = write_space ()) == 0) { return 0; @@ -191,7 +191,7 @@ RingBufferNPT<T>::write (T *src, size_t cnt) priv_write_ptr = n2; } - atomic_set(&write_ptr, priv_write_ptr); + g_atomic_int_set(&write_ptr, priv_write_ptr); return to_write; } @@ -202,8 +202,8 @@ RingBufferNPT<T>::get_read_vector (RingBufferNPT<T>::rw_vector *vec) size_t cnt2; size_t w, r; - w = atomic_read (&write_ptr); - r = atomic_read (&read_ptr); + w = g_atomic_int_get (&write_ptr); + r = g_atomic_int_get (&read_ptr); if (w > r) { free_cnt = w - r; @@ -241,8 +241,8 @@ RingBufferNPT<T>::get_write_vector (RingBufferNPT<T>::rw_vector *vec) size_t cnt2; size_t w, r; - w = atomic_read (&write_ptr); - r = atomic_read (&read_ptr); + w = g_atomic_int_get (&write_ptr); + r = g_atomic_int_get (&read_ptr); if (w > r) { free_cnt = ((r - w + size) % size) - 1; |