20 #ifndef __XMMS_RINGBUF_H__ 21 #define __XMMS_RINGBUF_H__ struct xmms_ringbuf_St xmms_ringbuf_t
gboolean xmms_ringbuf_iseos(const xmms_ringbuf_t *ringbuf)
Tell if the ringbuffer is EOS.
guint xmms_ringbuf_read_wait(xmms_ringbuf_t *ringbuf, gpointer data, guint length, GMutex *mtx)
Same as xmms_ringbuf_read but blocks until you have all the data you want.
guint xmms_ringbuf_peek(xmms_ringbuf_t *ringbuf, gpointer data, guint length)
Same as xmms_ringbuf_read but does not advance in the buffer after the data has been read...
void xmms_ringbuf_wait_free(const xmms_ringbuf_t *ringbuf, guint len, GMutex *mtx)
Block until we have free space in the ringbuffer.
guint xmms_ringbuf_size(xmms_ringbuf_t *ringbuf)
The usable size of the ringbuffer.
guint xmms_ringbuf_peek_wait(xmms_ringbuf_t *ringbuf, gpointer data, guint length, GMutex *mtx)
Same as xmms_ringbuf_peek but blocks until you have all the data you want.
guint xmms_ringbuf_write(xmms_ringbuf_t *ringbuf, gconstpointer data, guint length)
Write data to the ringbuffer.
guint xmms_ringbuf_bytes_free(const xmms_ringbuf_t *ringbuf)
Number of bytes free in the ringbuffer.
guint xmms_ringbuf_bytes_used(const xmms_ringbuf_t *ringbuf)
Number of bytes used in the buffer.
void xmms_ringbuf_wait_used(const xmms_ringbuf_t *ringbuf, guint len, GMutex *mtx)
Block until we have used space in the buffer.
guint xmms_ringbuf_read(xmms_ringbuf_t *ringbuf, gpointer data, guint length)
Reads data from the ringbuffer.
xmms_ringbuf_t * xmms_ringbuf_new(guint size)
Allocate a new ringbuffer.
void xmms_ringbuf_wait_eos(const xmms_ringbuf_t *ringbuf, GMutex *mtx)
Block until we are EOSed.
void xmms_ringbuf_hotspot_set(xmms_ringbuf_t *ringbuf, gboolean(*cb)(void *), void(*destroy)(void *), void *arg)
guint xmms_ringbuf_write_wait(xmms_ringbuf_t *ringbuf, gconstpointer data, guint length, GMutex *mtx)
Same as xmms_ringbuf_write but blocks until there is enough free space.
void xmms_ringbuf_clear(xmms_ringbuf_t *ringbuf)
Clear the ringbuffers data.
void xmms_ringbuf_set_eos(xmms_ringbuf_t *ringbuf, gboolean eos)
Set EOS flag on ringbuffer.
void xmms_ringbuf_destroy(xmms_ringbuf_t *ringbuf)
Free all memory used by the ringbuffer.