Typedefs | |
typedef struct xmms_ringbuf_hotspot_St | xmms_ringbuf_hotspot_t |
Functions | |
guint | xmms_ringbuf_size (xmms_ringbuf_t *ringbuf) |
The usable size of the ringbuffer. | |
xmms_ringbuf_t * | xmms_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_read (xmms_ringbuf_t *ringbuf, gpointer data, guint len) |
Reads data from the ringbuffer. | |
guint | xmms_ringbuf_peek (xmms_ringbuf_t *ringbuf, gpointer data, guint len) |
Same as xmms_ringbuf_read but does not advance in the buffer after the data has been read. | |
guint | xmms_ringbuf_read_wait (xmms_ringbuf_t *ringbuf, gpointer data, guint len, GMutex *mtx) |
Same as xmms_ringbuf_read but blocks until you have all the data you want. | |
guint | xmms_ringbuf_peek_wait (xmms_ringbuf_t *ringbuf, gpointer data, guint len, 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 len) |
Write data to the ringbuffer. | |
guint | xmms_ringbuf_write_wait (xmms_ringbuf_t *ringbuf, gconstpointer data, guint len, GMutex *mtx) |
Same as xmms_ringbuf_write but blocks until there is enough free space. | |
void | xmms_ringbuf_wait_free (const xmms_ringbuf_t *ringbuf, guint len, GMutex *mtx) |
Block until we have free space in the ringbuffer. | |
void | xmms_ringbuf_wait_used (const 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 (const xmms_ringbuf_t *ringbuf, GMutex *mtx) |
Block until we are EOSed. |
typedef struct xmms_ringbuf_hotspot_St xmms_ringbuf_hotspot_t |
guint xmms_ringbuf_bytes_free | ( | const xmms_ringbuf_t * | ringbuf | ) |
Number of bytes free in the ringbuffer.
Definition at line 142 of file ringbuf.c.
Referenced by xmms_ringbuf_wait_free(), and xmms_ringbuf_write().
guint xmms_ringbuf_bytes_used | ( | const xmms_ringbuf_t * | ringbuf | ) |
Number of bytes used in the buffer.
Definition at line 154 of file ringbuf.c.
Referenced by xmms_ringbuf_bytes_free(), xmms_ringbuf_iseos(), and xmms_ringbuf_wait_used().
void xmms_ringbuf_clear | ( | xmms_ringbuf_t * | ringbuf | ) |
void xmms_ringbuf_destroy | ( | xmms_ringbuf_t * | ringbuf | ) |
gboolean xmms_ringbuf_iseos | ( | const xmms_ringbuf_t * | ringbuf | ) |
Tell if the ringbuffer is EOS.
Definition at line 416 of file ringbuf.c.
Referenced by xmms_output_read(), and xmms_ringbuf_wait_eos().
xmms_ringbuf_t* xmms_ringbuf_new | ( | guint | size | ) |
Allocate a new ringbuffer.
size | The total size of the new ringbuffer |
Definition at line 74 of file ringbuf.c.
Referenced by xmms_output_new().
guint xmms_ringbuf_peek | ( | xmms_ringbuf_t * | ringbuf, | |
gpointer | data, | |||
guint | len | |||
) |
Same as xmms_ringbuf_read but does not advance in the buffer after the data has been read.
Definition at line 249 of file ringbuf.c.
Referenced by xmms_ringbuf_peek_wait().
guint xmms_ringbuf_peek_wait | ( | xmms_ringbuf_t * | ringbuf, | |
gpointer | data, | |||
guint | len, | |||
GMutex * | mtx | |||
) |
Same as xmms_ringbuf_peek but blocks until you have all the data you want.
guint xmms_ringbuf_read | ( | xmms_ringbuf_t * | ringbuf, | |
gpointer | data, | |||
guint | len | |||
) |
Reads data from the ringbuffer.
This is a non-blocking call and can return less data than you wanted. Use xmms_ringbuf_wait_used to ensure that you get as much data as you want.
ringbuf | Buffer to read from | |
data | Allocated buffer where the readed data will end up | |
len | number of bytes to read |
Definition at line 222 of file ringbuf.c.
Referenced by xmms_output_read(), and xmms_ringbuf_read_wait().
guint xmms_ringbuf_read_wait | ( | xmms_ringbuf_t * | ringbuf, | |
gpointer | data, | |||
guint | len, | |||
GMutex * | mtx | |||
) |
Same as xmms_ringbuf_read but blocks until you have all the data you want.
void xmms_ringbuf_set_eos | ( | xmms_ringbuf_t * | ringbuf, | |
gboolean | eos | |||
) |
guint xmms_ringbuf_size | ( | xmms_ringbuf_t * | ringbuf | ) |
void xmms_ringbuf_wait_eos | ( | const xmms_ringbuf_t * | ringbuf, | |
GMutex * | mtx | |||
) |
void xmms_ringbuf_wait_free | ( | const xmms_ringbuf_t * | ringbuf, | |
guint | len, | |||
GMutex * | mtx | |||
) |
void xmms_ringbuf_wait_used | ( | const xmms_ringbuf_t * | ringbuf, | |
guint | len, | |||
GMutex * | mtx | |||
) |
Block until we have used space in the buffer.
Definition at line 397 of file ringbuf.c.
Referenced by xmms_output_read(), and xmms_ringbuf_peek_wait().
guint xmms_ringbuf_write | ( | xmms_ringbuf_t * | ringbuf, | |
gconstpointer | data, | |||
guint | len | |||
) |
Write data to the ringbuffer.
If not all data can be written to the buffer the function will not block.
ringbuf | Ringbuffer to put data in. | |
data | Data to put in ringbuffer | |
len | Length of data |
Definition at line 321 of file ringbuf.c.
Referenced by xmms_ringbuf_write_wait().
guint xmms_ringbuf_write_wait | ( | xmms_ringbuf_t * | ringbuf, | |
gconstpointer | data, | |||
guint | len, | |||
GMutex * | mtx | |||
) |
Same as xmms_ringbuf_write but blocks until there is enough free space.