implement breakpoint API (breakpoints don't actually trigger yet)
[swfdec.git] / libswfdec / swfdec_ringbuffer.h
blobd7aad1b7b49c7558921540612a293b65b22202fa
2 #ifndef __SWFDEC_RING_BUFFER_H__
3 #define __SWFDEC_RING_BUFFER_H__
5 #include <glib.h>
7 G_BEGIN_DECLS
10 typedef struct _SwfdecRingBuffer SwfdecRingBuffer;
12 struct _SwfdecRingBuffer
14 unsigned char * data; /* our data */
15 gsize element_size; /* size of one element */
16 guint size; /* number of elements in the buffer */
18 guint head; /* index of first element */
19 guint tail; /* index after last element */
20 guint n_elements; /* number of elements in ringbuffer */
23 SwfdecRingBuffer * swfdec_ring_buffer_new (guint element_size,
24 guint size);
25 #define swfdec_ring_buffer_new_for_type(element_type,size) \
26 swfdec_ring_buffer_new (sizeof (element_type), (size))
27 void swfdec_ring_buffer_free (SwfdecRingBuffer * buffer);
29 guint swfdec_ring_buffer_get_size (SwfdecRingBuffer * buffer);
30 void swfdec_ring_buffer_set_size (SwfdecRingBuffer * buffer,
31 guint new_size);
32 guint swfdec_ring_buffer_get_n_elements (SwfdecRingBuffer * buffer);
34 gpointer swfdec_ring_buffer_push (SwfdecRingBuffer * buffer);
35 gpointer swfdec_ring_buffer_pop (SwfdecRingBuffer * buffer);
36 gpointer swfdec_ring_buffer_peek_nth (SwfdecRingBuffer * buffer,
37 guint id);
39 G_END_DECLS
41 #endif