ArDrone SDK 1.8 added
[mardrone] / mardrone / ARDrone_SDK_Version_1_8_20110726 / ARDroneLib / VP_SDK / VP_Stages / vp_stages_configs.c
1
2 /**
3  *  \brief    VP Stages. Vision Stage default configurations
4  *  \author   Aurelien Morelle <aurelien.morelle@parrot.com>
5  *  \version  1.0
6  *  \date     first release 2007/11/06
7  */
8
9
10 #include <VP_Os/vp_os_types.h>
11 #include <VP_Os/vp_os_assert.h>
12 #include <VP_Os/vp_os_malloc.h>
13
14 #include <VP_Stages/vp_stages_configs.h>
15
16 #include <VP_Stages/vp_stages_io_com.h>
17
18 #if defined(USE_LINUX) && !(SBOX_UNAME_MACHINE == arm )
19 #    include <VP_Stages/vp_stages_o_sdl.h>
20 #endif // USE_LINUX
21
22 vp_api_picture_t vp_api_picture;
23
24 #if defined(USE_LINUX) && !(SBOX_UNAME_MACHINE == arm )
25 static vp_stages_output_sdl_config_t
26 decoding_qcif_sdl_config = {
27   .width         = QVGA_WIDTH,
28   .height        = QVGA_HEIGHT,
29   .bpp           = 16,
30   .window_width  = QVGA_WIDTH,
31   .window_height = QVGA_HEIGHT,
32   .pic_width     = QCIF_WIDTH,
33   .pic_height    = QCIF_HEIGHT,
34   .y_size        = QCIF_WIDTH*QCIF_HEIGHT,
35   .c_size        = (QCIF_WIDTH*QCIF_HEIGHT)>>2,
36 };
37
38
39 static vp_stages_output_sdl_config_t
40 raw_qcif_sdl_config = {
41   .width         = QVGA_WIDTH,
42   .height        = QVGA_HEIGHT,
43   .bpp           = 16,
44   .window_width  = QVGA_WIDTH,
45   .window_height = QVGA_HEIGHT,
46   .pic_width     = QCIF_WIDTH,
47   .pic_height    = QCIF_HEIGHT,
48   .y_size        = QCIF_WIDTH*QCIF_HEIGHT,
49   .c_size        = 0,
50 };
51
52
53 static vp_stages_output_sdl_config_t
54 raw_qqcif_sdl_config = {
55   .width         = QVGA_WIDTH,
56   .height        = QVGA_HEIGHT,
57   .bpp           = 16,
58   .window_width  = QVGA_WIDTH,
59   .window_height = QVGA_HEIGHT,
60   .pic_width     = QQCIF_WIDTH,
61   .pic_height    = QQCIF_HEIGHT,
62   .y_size        = QQCIF_WIDTH*QQCIF_HEIGHT,
63   .c_size        = 0,
64 };
65
66
67 static vp_stages_output_sdl_config_t
68 decoding_qvga_sdl_config = {
69   .width         = QVGA_WIDTH,
70   .height        = QVGA_HEIGHT,
71   .bpp           = 16,
72   .window_width  = QVGA_WIDTH,
73   .window_height = QVGA_HEIGHT,
74   .pic_width     = QVGA_WIDTH,
75   .pic_height    = QVGA_HEIGHT,
76   .y_size        = QVGA_WIDTH*QVGA_HEIGHT,
77   .c_size        = (QVGA_WIDTH*QVGA_HEIGHT)>>2,
78 };
79
80
81 static vp_stages_output_sdl_config_t
82 raw_qvga_sdl_config = {
83   .width         = QVGA_WIDTH,
84   .height        = QVGA_HEIGHT,
85   .bpp           = 16,
86   .window_width  = QVGA_WIDTH,
87   .window_height = QVGA_HEIGHT,
88   .pic_width     = QVGA_WIDTH,
89   .pic_height    = QVGA_HEIGHT,
90   .y_size        = QVGA_WIDTH*QVGA_HEIGHT,
91   .c_size        = 0,
92 };
93
94 static vp_stages_output_sdl_config_t
95 raw_tweaky_qqvga_sdl_config = {
96   .width         = QVGA_WIDTH,
97   .height        = QVGA_HEIGHT,
98   .bpp           = 16,
99   .window_width  = QVGA_WIDTH,
100   .window_height = QVGA_HEIGHT,
101   .pic_width     = TWEAKY_QQVGA_WIDTH,
102   .pic_height    = TWEAKY_QQVGA_HEIGHT,
103   .y_size        = TWEAKY_QQVGA_WIDTH*TWEAKY_QQVGA_HEIGHT,
104   .c_size        = 0,
105 };
106 #endif // ! __linux__ || USE_MINGW32
107
108 #if defined(USE_LINUX) 
109 static vp_com_serial_config_t
110 uart0_serial_config = {
111 #ifdef __linux__
112   .itfName          = "/dev/ttyUSB0",
113 #else // ! __linux__
114   .itfName          = "/dev/ser0",
115 #endif // -> __linux__
116   .blocking         = 1,
117   .sync             = 1,
118   .sync_done        = 0,
119   .initial_baudrate = VP_COM_BAUDRATE_115200,
120   .baudrate         = VP_COM_BAUDRATE_460800,
121 };
122
123
124 static vp_com_serial_config_t
125 uart1_serial_config = {
126 #ifdef __linux__
127   .itfName          = "/dev/ttyUSB1",
128 #else // ! __linux__
129   .itfName          = "/dev/ser1",
130 #endif // -> __linux__
131   .blocking         = 1,
132   .sync             = 1,
133   .sync_done        = 0,
134   .initial_baudrate = VP_COM_BAUDRATE_115200,
135   .baudrate         = VP_COM_BAUDRATE_460800,
136 };
137 #endif // ! __NDS__
138
139
140 #if defined(USE_BLUEZ)
141 static vp_com_bluetooth_config_t
142 bluetooth_config = {
143   .itfName   = "bnep0",
144 #ifdef __linux__
145   .localHost = "192.168.2.58",
146 #else // ! __linux__
147   .localHost = "192.168.2.23",
148 #endif // -> __linux__
149   .netmask   = "255.255.255.0",
150   .broadcast = "192.168.2.255",
151   .gateway   = "192.168.2.0",
152   .server    = "192.168.2.0",
153   .secure    = 1,
154   .passkey   = "1234",
155 };
156 #endif // ! defined(USE_BLUEZ)
157
158
159 #ifdef USE_WIFI
160 static vp_com_wifi_config_t
161 wifi_config = {
162 #ifdef __linux__
163   .itfName              = "rausb0",
164   .localHost            = "10.10.10.2",
165 #else // ! __linux__
166   .itfName              = "wl0",
167   .localHost            = "10.10.10.1",
168 #endif // -> __linux__
169   .netmask              = "255.255.255.0",
170   .broadcast            = "10.10.10.255",
171   .gateway              = "10.10.10.2",
172   .server               = "10.10.10.1",
173   .secure               = 1,
174   .passkey              = "9F1C3EE11CBA230B27BF1C1B6F",
175   .infrastructure       = 1,
176 };
177 #endif // ! USE_WIFI
178
179
180 #define _internal_vp_stages_fill_default_config(cfg, config, size) \
181   do                                                               \
182   {                                                                \
183     VP_OS_ASSERT(size >= sizeof(config));                          \
184     vp_os_memcpy(cfg, &config, sizeof(config));                    \
185   }                                                                \
186   while(0)
187
188
189 C_RESULT
190 vp_stages_fill_default_config(DEFAULT_STAGE_CONFIG config, void *cfg, size_t size)
191 {
192   C_RESULT res = VP_SUCCESS;
193
194   VP_OS_ASSERT(cfg);
195   VP_OS_ASSERT(size);
196
197   vp_os_memset(cfg, 0, size);
198
199   switch(config)
200     {
201
202 #if defined(USE_LINUX) && !(SBOX_UNAME_MACHINE == arm )
203   
204     case SDL_RAW_QCIF_CONFIG:
205       _internal_vp_stages_fill_default_config(cfg, raw_qcif_sdl_config, size);
206       break;
207     case SDL_RAW_QQCIF_CONFIG:
208       _internal_vp_stages_fill_default_config(cfg, raw_qqcif_sdl_config, size);
209       break;
210     case SDL_DECODING_QCIF_CONFIG:
211       _internal_vp_stages_fill_default_config(cfg, decoding_qcif_sdl_config, size);
212       break;
213     case SDL_RAW_QVGA_CONFIG:
214       _internal_vp_stages_fill_default_config(cfg, raw_qvga_sdl_config, size);
215       break;
216     case SDL_RAW_TWEAKY_QQVGA_CONFIG:
217       _internal_vp_stages_fill_default_config(cfg, raw_tweaky_qqvga_sdl_config, size);
218       break;
219     case SDL_DECODING_QVGA_CONFIG:
220       _internal_vp_stages_fill_default_config(cfg, decoding_qvga_sdl_config, size);
221       break;
222 #endif // ! __linux__ || USE_MINGW32 || USE_ELINUX
223
224 #if defined(USE_LINUX)
225     case UART0_COM_CONFIG:
226       _internal_vp_stages_fill_default_config(cfg, uart0_serial_config, size);
227       break;
228     case UART1_COM_CONFIG:
229       _internal_vp_stages_fill_default_config(cfg, uart1_serial_config, size);
230       break;
231 #endif // ! __NDS__
232
233 #if defined(USE_BLUEZ)
234     case BLUETOOTH_COM_CONFIG:
235       _internal_vp_stages_fill_default_config(cfg, bluetooth_config, size);
236       break;
237 #endif // ! defined(USE_BLUEZ)
238 #ifdef USE_WIFI
239     case WIFI_COM_CONFIG:
240       _internal_vp_stages_fill_default_config(cfg, wifi_config, size);
241       break;
242 #endif // ! USE_WIFI
243     default:
244       res = VP_FAILURE;
245       break;
246     }
247
248   return res;
249 }
250
251 #undef _internal_vp_stages_fill_default_config
252