ArDrone SDK 1.8 added
[mardrone] / mardrone / ARDrone_SDK_Version_1_8_20110726 / ARDroneLib / VP_SDK / ATcodec / ATcodec_Buffer.h
1 /**
2  * @file ATcodec_Buffer.h
3  * @author aurelien.morelle@parrot.fr
4  * @date 2006/12/06
5  */
6
7 #ifndef _AT_CODEC_BUFFER_INCLUDE_
8 #define _AT_CODEC_BUFFER_INCLUDE_
9
10 typedef struct _ATcodec_Buffer_
11 {
12         void *data;
13         void *topElement;
14
15         int nbElements;
16
17         size_t elementSize;
18         size_t totalSize;
19 }
20 ATcodec_Buffer_t;
21
22
23 void
24 ATcodec_Buffer_init (ATcodec_Buffer_t *buffer, size_t elementSize, int nbElementsStart);
25
26 void
27 ATcodec_Buffer_destroy (ATcodec_Buffer_t *buffer);
28
29
30 void
31 ATcodec_Buffer_popElement (ATcodec_Buffer_t *buffer, void *dest);
32
33 void
34 ATcodec_Buffer_justPopElement (ATcodec_Buffer_t *buffer);
35
36
37 void
38 ATcodec_Buffer_pushElement (ATcodec_Buffer_t *buffer, const void *element);
39
40 void
41 ATcodec_Buffer_pushElements (ATcodec_Buffer_t *buffer, const void *elements, int nb);
42
43
44 void *
45 ATcodec_Buffer_topElement (ATcodec_Buffer_t *buffer);
46
47 void *
48 ATcodec_Buffer_getElement (ATcodec_Buffer_t *buffer, int index);
49
50
51 #endif // ! _AT_CODEC_BUFFER_INCLUDE_