XMMS2
xmms_ringbuf.h File Reference
#include <glib.h>

Typedefs

typedef struct xmms_ringbuf_St xmms_ringbuf_t
 

Functions

xmms_ringbuf_txmms_ringbuf_new (guint size)
 Allocate a new ringbuffer.
 
void xmms_ringbuf_destroy (xmms_ringbuf_t *ringbuf)
 Free all memory used by the ringbuffer.
 
void xmms_ringbuf_clear (xmms_ringbuf_t *ringbuf)
 Clear the ringbuffers data.
 
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.
 
guint xmms_ringbuf_size (xmms_ringbuf_t *ringbuf)
 The usable size of the ringbuffer.
 
guint xmms_ringbuf_read (xmms_ringbuf_t *ringbuf, gpointer data, guint length)
 Reads data from the ringbuffer.
 
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.
 
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.
 
void xmms_ringbuf_hotspot_set (xmms_ringbuf_t *ringbuf, gboolean(*cb)(void *), void(*destroy)(void *), void *arg)
 
guint xmms_ringbuf_write (xmms_ringbuf_t *ringbuf, gconstpointer data, guint length)
 Write data to the ringbuffer.
 
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_wait_free (xmms_ringbuf_t *ringbuf, guint len, GMutex *mtx)
 Block until we have free space in the ringbuffer.
 
void xmms_ringbuf_wait_used (xmms_ringbuf_t *ringbuf, guint len, GMutex *mtx)
 Block until we have used space in the buffer.
 
gboolean xmms_ringbuf_iseos (const xmms_ringbuf_t *ringbuf)
 Tell if the ringbuffer is EOS.
 
void xmms_ringbuf_set_eos (xmms_ringbuf_t *ringbuf, gboolean eos)
 Set EOS flag on ringbuffer.
 
void xmms_ringbuf_wait_eos (xmms_ringbuf_t *ringbuf, GMutex *mtx)
 Block until we are EOSed.
 

Typedef Documentation

◆ xmms_ringbuf_t

typedef struct xmms_ringbuf_St xmms_ringbuf_t

Function Documentation

◆ xmms_ringbuf_hotspot_set()

void xmms_ringbuf_hotspot_set ( xmms_ringbuf_t * ringbuf,
gboolean(* cb )(void *),
void(* destroy )(void *),
void * arg )