ringbuffer.h

Go to the documentation of this file.
00001 #ifndef _RINGBUFFER_H
00002 #define _RINGBUFFER_H
00003 
00004 #include <sys/types.h>
00005 
00020 typedef struct  
00021 {
00022   char  *buf;
00023   size_t len;
00024 } 
00025 jack_ringbuffer_data_t ;
00026 
00027 typedef struct
00028 {
00029   char           *buf;
00030   volatile size_t write_ptr;
00031   volatile size_t read_ptr;
00032   size_t          size;
00033   size_t          size_mask;
00034   int             mlocked;
00035 } 
00036 jack_ringbuffer_t ;
00037 
00048 jack_ringbuffer_t *jack_ringbuffer_create(size_t sz);
00049 
00056 void jack_ringbuffer_free(jack_ringbuffer_t *rb);
00057 
00078 void jack_ringbuffer_get_read_vector(jack_ringbuffer_t *rb,
00079                                      jack_ringbuffer_data_t *vec);
00080 
00100 void jack_ringbuffer_get_write_vector(jack_ringbuffer_t *rb,
00101                                       jack_ringbuffer_data_t *vec);
00102 
00113 size_t jack_ringbuffer_read(jack_ringbuffer_t *rb, char *dest, size_t cnt);
00114 
00126 void jack_ringbuffer_read_advance(jack_ringbuffer_t *rb, size_t cnt);
00127 
00135 size_t jack_ringbuffer_read_space(jack_ringbuffer_t *rb);
00136 
00144 int jack_ringbuffer_mlock(jack_ringbuffer_t *rb);
00145 
00153 void jack_ringbuffer_reset(jack_ringbuffer_t *rb);
00154 
00164 size_t jack_ringbuffer_write(jack_ringbuffer_t *rb, char *src, size_t cnt);
00165 
00177 void jack_ringbuffer_write_advance(jack_ringbuffer_t *rb, size_t cnt);
00178 
00186 size_t jack_ringbuffer_write_space(jack_ringbuffer_t *rb);
00187 
00188 
00189 #endif

Generated on Thu Nov 27 14:04:06 2003 for JACK-AUDIO-CONNECTION-KIT by doxygen 1.3.3