2 #ifndef __SWFDEC_RING_BUFFER_H__
3 #define __SWFDEC_RING_BUFFER_H__
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
,
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
,
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
,