ArDrone SDK 1.8 added
[mardrone] / mardrone / ARDrone_SDK_Version_1_8_20110726 / ARDroneLib / VP_SDK / VP_Api / vp_api_io_multi_stage.h
1 /**
2  *  \brief    VP Api. Composite Stage Declaration
3  *  \author   Sylvain Gaeremynck <sylvain.gaeremynck@parrot.fr>
4  *  \author   Aurelien Morelle <aurelien.morelle@parrot.fr>
5  *  \author   Thomas Landais <thomas.landais@parrot.fr>
6  *  \todo     This stage need to be tested
7  *  \version  1.0
8  *  \date     first release 21/03/2007
9  */
10
11 #ifndef _VP_API_IO_MULTI_STAGE_H_
12 #define _VP_API_IO_MULTI_STAGE_H_
13
14 #include <VP_Api/vp_api.h>
15
16
17 ///////////////////////////////////////////////
18 // DEFINES
19
20 #define VP_API_EXECUTE_ALL_STAGES -1
21 #define VP_API_EXECUTE_NO_STAGE   -2
22
23 ///////////////////////////////////////////////
24 // TYPEDEFS
25
26 typedef struct _vp_api_io_multi_stage_config_
27 {
28   int32_t             activ_stage; // if activ_stage == -1 then all stages are executed
29   uint32_t            nb_stages;
30   vp_api_io_stage_t*  stages;
31 } vp_api_io_multi_stage_config_t;
32
33
34 ///////////////////////////////////////////////
35 // FUNCTIONS
36
37 /**
38  * @fn      Open the multi stage
39  * @param   vp_api_io_multi_stage_config_t *cfg
40  * @todo    A COMMENTER
41  * @return  VP_SUCCESS
42  */
43 C_RESULT
44 vp_api_multi_stage_open(vp_api_io_multi_stage_config_t *cfg);
45
46
47 /**
48  * @fn      Transform the multi stage
49  * @param   vp_api_io_multi_stage_config_t *cfg
50  * @param   vp_api_io_data_t *in
51  * @param   vp_api_io_data_t *out
52  * @todo    A COMMENTER
53  * @return  VP_SUCCESS
54  */
55 C_RESULT
56 vp_api_multi_stage_transform(vp_api_io_multi_stage_config_t *cfg, vp_api_io_data_t *in, vp_api_io_data_t *out);
57
58
59 /**
60  * @fn      Close the multi stage
61  * @param   vp_api_io_multi_stage_config_t *cfg
62  * @todo    A COMMENTER
63  * @return  VP_SUCCESS
64  */
65 C_RESULT
66 vp_api_multi_stage_close(vp_api_io_multi_stage_config_t *cfg);
67
68
69 #endif // _VP_API_IO_MULTI_STAGE_H_