1 /*---------------------------------------------------------------------------*
2 
3   Copyright (C) 2012 Nintendo.  All rights reserved.
4 
5   These coded instructions, statements, and computer programs contain
6   proprietary information of Nintendo of America Inc. and/or Nintendo
7   Company Ltd., and are protected by Federal copyright law.  They may
8   not be disclosed to third parties or copied or duplicated in any form,
9   in whole or in part, without the prior written consent of Nintendo.
10 
11  *---------------------------------------------------------------------------*/
12 
13 #ifndef NN_AC_AC_CONFIG_H_
14 #define NN_AC_AC_CONFIG_H_
15 
16 #include <nn/ac/ac_Types.h>
17 #include <nn/ac/ac_TypesDebug.h>
18 #include <nn/ac/ac_TypesConfig.h>
19 #include <nn/ac/ac_Result.h>
20 
21 // Macros representing errors in get-type functions:
22 #define AC_CONFIG_NIC_ERROR_VALUE                           0xff
23 #define AC_CONFIG_MTU_ERROR_VALUE                           0
24 #define AC_CONFIG_ADDRESS_ERROR_VALUE                       0
25 #define AC_CONFIG_METHOD_ERROR_VALUE                        0xff
26 #define AC_CONFIG_PRIVACY_MODE_ERROR_VALUE                  0xff
27 #define AC_CONFIG_ETHER_SPEED_ERROR_VALUE                   0xff
28 #define AC_CONFIG_ETHER_COMMUNICATION_METHOD_ERROR_VALUE    0xff
29 #define AC_CONFIG_ETHER_AUTO_NEGOTIATION_ERROR_VALUE        0xff
30 #define AC_CONFIG_KEYID_ERROR_VALUE                         0xff
31 #define AC_CONFIG_PROXY_USE_ERROR_VALUE                     0xff
32 #define AC_CONFIG_PROXY_AUTH_TYPE_ERROR_VALUE               0xff
33 #define AC_CONFIG_PROXY_PORT_ERROR_VALUE                    0
34 
35 
36 #ifdef __cplusplus
37 namespace nn {
38 namespace ac {
39 
40 //! @addtogroup   nn_ac_devapi_cpp
41 //! @{
42 
43 //! @name       Wi-Fi and USB Ethernet Common Settings
44 //! @{
45 
46 /*!
47 @brief Initializes the <tt>Config</tt> structure. (For development.)
48 When this function is called, the <tt>Config</tt> structure indicated by <span class="argument">pConfig</span> is initialized.
49 The initialized data is not for configuring Wi-Fi or USB ETH.
50 Use the functions for setting <tt>Config</tt> parameters on the initialized <tt>Config</tt> structure to create data with the desired settings.
51 This creates data with the desired settings.
52 Use this function only during development. Do not use it in the production version of your software.
53 @param[out] pConfig     Config structure.
54 
55 
56 
57 */
58 void ClearConfig( Config* pConfig );
59 
60 // For compatibility. It will be deleted.
SetDefaultConfig(Config * pConfig)61 inline void SetDefaultConfig( Config* pConfig )
62 {
63     ClearConfig( pConfig );
64 }
65 
66 /*!
67 @brief Sets the network interface. (For development.)
68 <table>
69 <tr><th>Value</th><th>Meaning</th></tr>
70 <tr><td><tt>AC_NIC_TYPE_WIFI</tt></td><td>Wi-Fi</td></tr>
71 <tr><td><tt>AC_NIC_TYPE_ETH</tt></td><td>Wired (USB LAN adapter)</td></tr>
72 </table>
73 <b>Note:</b> The values <tt>AC_NIC_WIFI</tt> and <tt>AC_NIC_ETH</tt> are used during development. Do not mistakenly use these values.
74 Use this function only during development. Do not use it in the production version of your software.
75 @param[in] pConfig  Specifies the <tt>Config</tt> structure.
76 @param[in] nic  Specifies the network interface.
77 
78 
79 
80 
81 
82 */
83 void SetNetworkInterface( Config* pConfig, u16 nic );
84 
85 /*!
86 @brief Gets the network interface. (For development.)
87 The values that can be obtained are <tt>AC_NIC_TYPE_WIFI</tt> or <tt>AC_NIC_TYPE_ETH</tt>.
88 For the meanings of these values, see <tt>nn::ac::SetNetworkInterface</tt>.
89 Also, <tt>AC_CONFIG_NIC_ERROR_VALUE</tt> is returned if neither has been finalized yet (such as immediately after calling the <tt>nn::ac::ClearConfig</tt> function).
90 The same value is returned when <tt>Config</tt> is invalid (when <tt>NULL</tt> is specified).
91 <b>Note:</b> The values <tt>AC_NIC_WIFI</tt> and <tt>AC_NIC_ETH</tt> are used during development. Do not mistakenly use these values.
92 Use this function only during development. Do not use it in the production version of your software.
93 @param[in] pConfig  Specifies the <tt>Config</tt> structure.
94 @return Returns the network interface.
95 
96 
97 
98 
99 
100 
101 
102 */
103 u16 GetNetworkInterface( const Config* pConfig );
104 
105 /*!
106 @brief Sets the MTU value. (For development.)
107 The <span class="argument">mtu</span> parameter can be set to values between <tt>AC_MIN_MTU</tt> (576) and <tt>AC_MAX_MTU</tt> (1500).
108 This parameter is set to <tt>AC_DEFAULT_INTERFACE_MTU (1400)</tt> when the <tt>nn::ac::ClearConfig</tt> function is called.
109 Use this function only during development. Do not use it in the production version of your software.
110 @param[in] pConfig  Specifies the <tt>Config</tt> structure.
111 @param[in] mtu  Specifies the MTU value.
112 
113 
114 
115 
116 */
117 void SetMtu( Config* pConfig, u32 mtu );
118 
119 /*!
120 @brief Gets the MTU value. (For development.)
121 Gets a value between <tt>AC_MIN_MTU</tt> (576) and <tt>AC_MAX_MTU</tt> (1500).
122 If the function fails to get a value, <tt>AC_CONFIG_MTU_ERROR_VALUE</tt> is returned.
123 Use this function only during development. Do not use it in the production version of your software.
124 @param[in] pConfig  Specifies the <tt>Config</tt> structure.
125 @return Returns the MTU value.
126 
127 
128 
129 
130 */
131 u32 GetMtu( const Config* pConfig );
132 
133 /*!
134 @brief Sets the address assignment mode. (For development.)
135 <table>
136 <tr><th>Value</th><th>Meaning</th></tr>
137 <tr><td><tt>AC_ADDR_DHCP</tt></td><td>Assignment by DHCP</td></tr>
138 <tr><td><tt>AC_ADDR_STICKY</tt></td><td>Automatic assignment</td></tr>
139 <tr><td><tt>AC_ADDR_MANUAL</tt></td><td>Manual assignment</td></tr>
140 </table>
141 Use this function only during development. Do not use it in the production version of your software.
142 @param[in] pConfig  Specifies the <tt>Config</tt> structure.
143 @param[in] mode  Specifies the address assignment mode.
144 
145 
146 
147 */
148 void SetAddressObtainMode( Config* pConfig, u32 mode );
149 
150 /*!
151 @brief Gets the address assignment mode. (For development.)
152 You can get the following values: <tt>AC_ADDR_DHCP</tt>, <tt>AC_ADDR_STICKY</tt>, or <tt>AC_ADDR_MANUAL</tt>.
153 For the meanings of these values, see <tt>nn::ac::SetAddressObtainMode</tt>.
154 If assignment fails, <tt>AC_CONFIG_ADDRES_ERROR_VALUE</tt> is returned.
155 Use this function only during development. Do not use it in the production version of your software.
156 @param[in] pConfig  Specifies the <tt>Config</tt> structure.
157 @return Returns the address assignment mode.
158 
159 
160 
161 
162 */
163 u32 GetAddressObtainMode( const Config* pConfig );
164 
165 /*!
166 @brief Sets the IP address. (For development.)
167 Sets the IP address specified in <span class="argument">pAddressStr</span>.
168 Specify a string in dot-decimal notation as <i>xxx</i>.<i>xxx</i>.<i>xxx</i>.<i>xxx</i>. (Each <i>xxx</i> is a value in the range from <tt>0</tt> through <tt>255</tt>).
169 Use this function only during development. Do not use it in the production version of your software.
170 @param[in] pConfig  Specifies the <tt>Config</tt> structure.
171 @param[in] pAddressStr  The IP address.
172 
173 
174 
175 */
176 void SetDeviceIpAddress( Config* pConfig, const char* pAddressStr );
177 
178 /*!
179 @brief Gets the IP address. (For development.)
180 The return value is a <tt>u32</tt> long IP address.
181 If assignment fails, <tt>AC_CONFIG_ADDRES_ERROR_VALUE</tt> is returned.
182 Use this function only during development. Do not use it in the production version of your software.
183 @param[in] pConfig  Specifies the <tt>Config</tt> structure.
184 @return Returns the IP address.
185 
186 
187 
188 
189 */
190 u32 GetDeviceIpAddress( const Config* pConfig );
191 
192 /*!
193 @brief Sets the subnet mask. (For development.)
194 In <span class="argument">pAddressStr</span>, specify a string in dot-decimal notation as <i>xxx</i>.<i>xxx</i>.<i>xxx</i>.<i>xxx</i>. (Each <i>xxx</i> is a value in the range from <tt>0</tt> through <tt>255</tt>).
195 Use this function only during development. Do not use it in the production version of your software.
196 @param[in] pConfig  Specifies the <tt>Config</tt> structure.
197 @param[in] pAddressStr  The IP address.
198 
199 
200 
201 
202 */
203 void SetSubnetMask( Config* pConfig, const char* pAddressStr );
204 
205 /*!
206 @brief Gets the subnet mask. (For development.)
207 The return value is a <tt>u32</tt> long IP address.
208 If assignment fails, <tt>AC_CONFIG_ADDRES_ERROR_VALUE</tt> is returned.
209 Use this function only during development. Do not use it in the production version of your software.
210 @param[in] pConfig  Specifies the <tt>Config</tt> structure.
211 @return Returns the subnet mask.
212 
213 
214 
215 
216 */
217 u32 GetSubnetMask( const Config* pConfig );
218 
219 /*!
220 @brief Sets the default gateway. (For development.)
221 In <span class="argument">pAddressStr</span>, specify a string in dot-decimal notation as <i>xxx</i>.<i>xxx</i>.<i>xxx</i>.<i>xxx</i>. (Each <i>xxx</i> is a value in the range from <tt>0</tt> through <tt>255</tt>).
222 Use this function only during development. Do not use it in the production version of your software.
223 @param[in] pConfig  Specifies the <tt>Config</tt> structure.
224 @param[in] pAddressStr  The IP address.
225 
226 
227 
228 
229 */
230 void SetDefaultGateway( Config* pConfig, const char* pAddressStr );
231 
232 /*!
233 @brief Gets the default gateway. (For development.)
234 The return value is a <tt>u32</tt> long IP address.
235 If assignment fails, <tt>AC_CONFIG_ADDRES_ERROR_VALUE</tt> is returned.
236 Use this function only during development. Do not use it in the production version of your software.
237 @param[in] pConfig  Specifies the <tt>Config</tt> structure.
238 @return Returns the default gateway.
239 
240 
241 
242 
243 */
244 u32 GetDefaultGateway( const Config* pConfig );
245 
246 /*!
247 @brief Sets the primary DNS server. (For development.)
248 In <span class="argument">pAddressStr</span>, specify a string in dot-decimal notation as <i>xxx</i>.<i>xxx</i>.<i>xxx</i>.<i>xxx</i>. (Each <i>xxx</i> is a value in the range from <tt>0</tt> through <tt>255</tt>).
249 Use this function only during development. Do not use it in the production version of your software.
250 @param[in] pConfig  Specifies the <tt>Config</tt> structure.
251 @param[in] pAddressStr  The IP address.
252 
253 
254 
255 
256 */
257 void SetPrimaryDnsServer( Config* pConfig, const char* pAddressStr );
258 
259 /*!
260 @brief Gets the primary DNS server. (For development.)
261 The return value is a <tt>u32</tt> long IP address.
262 If assignment fails, <tt>AC_CONFIG_ADDRES_ERROR_VALUE</tt> is returned.
263 Use this function only during development. Do not use it in the production version of your software.
264 @param[in] pConfig  Specifies the <tt>Config</tt> structure.
265 @return Returns the primary DNS server.
266 
267 
268 
269 
270 */
271 u32 GetPrimaryDnsServer( const Config* pConfig );
272 
273 /*!
274 @brief Sets the alternate DNS server. (For development.)
275 In <span class="argument">pAddressStr</span>, specify a string in dot-decimal notation as <i>xxx</i>.<i>xxx</i>.<i>xxx</i>.<i>xxx</i>. (Each <i>xxx</i> is a value in the range from <tt>0</tt> through <tt>255</tt>).
276 Use this function only during development. Do not use it in the production version of your software.
277 @param[in] pConfig  Specifies the <tt>Config</tt> structure.
278 @param[in] pAddressStr  The IP address.
279 
280 
281 
282 
283 */
284 void SetAlternativeDnsServer( Config* pConfig, const char* pAddressStr );
285 
286 /*!
287 @brief Gets the alternate DNS server. (For development.)
288 The return value is a <tt>u32</tt> long IP address.
289 If assignment fails, <tt>AC_CONFIG_ADDRES_ERROR_VALUE</tt> is returned.
290 Use this function only during development. Do not use it in the production version of your software.
291 @param[in] pConfig  Specifies the <tt>Config</tt> structure.
292 @return Returns the alternate DNS server.
293 
294 
295 
296 
297 */
298 u32 GetAlternativeDnsServer( const Config* pConfig );
299 
300 //! @}
301 
302 //! @name Wi-Fi Settings
303 //! @{
304 
305 /*!
306 @brief Sets the Wi-Fi configuration method. (For development.)
307 The following values can be set in <span class="argument">method</span>.
308 <table>
309 <tr><th>Value</th><th>Meaning</th></tr>
310 <tr><td><tt>AC_METHOD_MANUAL</tt></td><td>Set manually.</td></tr>
311 <tr><td><tt>AC_METHOD_WPS</tt></td><td>Set with WPS.</td></tr>
312 <tr><td><tt>AC_METHOD_USBAP</tt></td><td>Set with USBAP.</td></tr>
313 <tr><td><tt>AC_METHOD_AOSS</tt></td><td>Set with AOSS.</td></tr>
314 <tr><td><tt>AC_METHOD_RAKURAKU</tt></td><td>Set using easy wireless start.</td></tr>
315 </table>
316 Normally, <tt>AC_METHOD_MANUAL</tt> is used.
317 Use this function only during development. Do not use it in the production version of your software.
318 @param[in] pConfig  Specifies the <tt>Config</tt> structure.
319 @param[in] method  Specifies the Wi-Fi configuration method
320 
321 
322 
323 
324 
325 */
326 void SetWifiConfigureMethod( Config* pConfig, u16 method );
327 
328 /*!
329 @brief Gets the Wi-Fi configuration method. (For development.)
330 The value that can be obtained is <tt>AC_METHOD_<i>xxx</i></tt>, where <i>xxx</i> is one of:  <tt>MANUAL</tt>, <tt>WPS</tt>, <tt>USBAP</tt>, <tt>AOSS</tt>, or <tt>RAKURAKU</tt>.
331 For the meanings of these values, see <tt>nn::ac::SetWifiConfigureMethod</tt>.
332 If acquisition fails, <tt>AC_CONFIG_METHOD_ERROR_VALUE</tt> is returned.
333 Use this function only during development. Do not use it in the production version of your software.
334 @param[in] pConfig  Specifies the <tt>Config</tt> structure.
335 @return Returns the Wi-Fi configuration method.
336 
337 
338 
339 
340 */
341 u16 GetWifiConfigureMethod( const Config* pConfig );
342 
343 /*!
344 @brief Sets the privacy mode. (For development.)
345 The following values can be set in <span class="argument">mode</span>.
346 <table>
347 <tr><th>Value</th><th>Meaning</th></tr>
348 <tr><td><tt>AC_PRIVACY_MODE_NONE</tt></td><td>None</td></tr>
349 <tr><td><tt>AC_PRIVACY_MODE_WEP40</tt></td><td>WEP (RC4 40-bit)</td></tr>
350 <tr><td><tt>AC_PRIVACY_MODE_WEP104</tt></td><td>WEP (RC 104-bit)</td></tr>
351 <tr><td><tt>AC_PRIVACY_MODE_WPA_PSK_TKIP</tt></td><td>WPA-PSK (TKIP)</td></tr>
352 <tr><td><tt>AC_PRIVACY_MODE_WPA_PSK_AES</tt></td><td>WPA-PSK (AES)</td></tr>
353 <tr><td><tt>AC_PRIVACY_MODE_WPA2_PSK_TKIP</tt></td><td>WPA2-PSK (TKIP)</td></tr>
354 <tr><td><tt>AC_PRIVACY_MODE_WPA2_PSK_AES</tt></td><td>WPA2-PSK (AES)</td></tr>
355 <tr><td><tt>AC_PRIVACY_MODE_WEP</tt></td><td>WEP (use prohibited)</td></tr>
356 </table>
357 <tt>AC_PRIVACY_MODE_WEP</tt> is provided for compatibility, and its use is normally prohibited.
358 Use this function only during development. Do not use it in the production version of your software.
359 @param[in] pConfig  Specifies the <tt>Config</tt> structure.
360 @param[in] mode  Specifies the privacy mode.
361 
362 
363 
364 
365 
366 */
367 void SetPrivacyMode( Config* pConfig, u16 mode );
368 
369 /*!
370 @brief Gets the privacy mode. (For development.)
371 The values that can be obtained are in the form <tt>AC_PRIVACY_MODE_<i>xxx</i></tt>. Replace <i>xxx</i> with one of the following: <tt>NONE</tt>, <tt>WEP40</tt>, <tt>WEP104</tt>, <tt>WPA_PSK_TKIP</tt>, <tt>WPA_PSK_AES</tt>, <tt>WPA2_PSK_TKIP</tt>, <tt>WPA2_PSK_AES</tt>, or <tt>WEP</tt>.
372 For the meanings of these values, see <tt>nn::ac::SetPrivacyMode</tt>.
373 If acquisition fails, <tt>AC_CONFIG_PRIVACY_MODE_ERROR_VALUE</tt> is returned.
374 Use this function only during development. Do not use it in the production version of your software.
375 @param[in] pConfig  Specifies the <tt>Config</tt> structure.
376 @return Returns the privacy mode.
377 
378 
379 
380 
381 
382 */
383 u16 GetPrivacyMode( const Config* pConfig );
384 
385 /*!
386 @brief Sets the SSID. (For development.)
387 The SSID string is specified in <span class="argument">pSsidStr</span>.
388 The string must be valid up to the terminal character, and the string length must be <tt>AC_SSID_SIZE (32)</tt> or less.
389 Use this function only during development. Do not use it in the production version of your software.
390 @param[in] pConfig  Specifies the <tt>Config</tt> structure.
391 @param[out] pSsidStr  Specifies the SSID name string.
392 
393 
394 
395 */
396 void SetSsid( Config* pConfig, const char* pSsidStr );
397 
398 /*!
399 @brief Gets the SSID. (For development.)
400 The length of the SSID string returned in <span class="argument">pLength</span> is the number of characters excluding the terminating character in the SSID string.
401 The <tt>nn::ac::SetSsid</tt> function sets the SSID string.
402 The pointer returned points to the beginning of the SSID string. It is important to note, however, that the string has no terminating null character if the SSID is set to greater than <tt>AC_SSID_SIZE</tt>.
403 Use this function only during development. Do not use it in the production version of your software.
404 @param[in] pConfig  Specifies the <tt>Config</tt> structure.
405 @param[out] pLength  Specifies the length of the SSID string.
406 @return Returns the SSID.
407 
408 
409 
410 
411 
412 */
413 const char* GetSsid( const Config* pConfig, int* pLength );
414 
415 //! @}
416 
417 //! @name USB Ethernet Settings
418 //! @{
419 
420 /*!
421 @brief Sets the Ethernet speed. (For development.)
422 The following values can be specified in <span class="argument">speed</span>.
423 Use this function only during development. Do not use it in the production version of your software.
424 <table>
425 <tr><th>Value</th><th>Meaning</th></tr>
426 <tr><td><tt>AC_ETH_LINK_SPEED_10M</tt></td><td>10 Mbps</td></tr>
427 <tr><td><tt>AC_ETH_LINK_SPEED_100M</tt></td><td>100 Mbps</td></tr>
428 </table>
429 @param[in] pConfig  Specifies the <tt>Config</tt> structure.
430 @param[in] speed  Speed
431 
432 
433 
434 
435 */
436 void SetEthernetSpeed( Config* pConfig, u16 speed );
437 
438 /*!
439 @brief Gets the Ethernet speed. (For development.)
440 The values that can be obtained are <tt>AC_ETH_LINK_SPEED_10M</tt> or <tt>AC_ETH_LINK_SPEED_100M</tt>.
441 For the meanings of these values, see <tt>nn::ac::SetEthernetSpeed</tt>.
442 If acquisition fails, <tt>AC_CONFIG_ETHER_SPEED_ERROR_VALUE</tt> is returned.
443 Use this function only during development. Do not use it in the production version of your software.
444 <b>Note:</b> Due to constraints of the Wii U console, wired connections are always configured with auto-negotiation ON, the speed parameter as 0, and the communication method parameter as 0, regardless of the configuration written with <tt>nn::ac::WriteConfig</tt>.
445 These constraints may change in the future.
446 @param[in] pConfig  Specifies the <tt>Config</tt> structure.
447 @return Returns the SSID.
448 
449 
450 
451 
452 
453 
454 */
455 u16 GetEthernetSpeed( const Config* pConfig );
456 
457 /*!
458 @brief Sets the Ethernet communication method. (For development.)
459 The following values can be specified in <span class="argument">duplex</span>.
460 <table>
461 <tr><th>Value</th><th>Meaning</th></tr>
462 <tr><td><tt>AC_ETH_LINK_HALF_DUPLEX</tt></td><td>Half-duplex</td></tr>
463 <tr><td><tt>AC_ETH_LINK_FULL_DUPLEX</tt></td><td>Full-duplex</td></tr>
464 </table>
465 Use this function only during development. Do not use it in the production version of your software.
466 <b>Note:</b> Due to constraints of the Wii U console, wired connections are always configured with auto-negotiation ON, the speed parameter as 0, and the communication method parameter as 0, regardless of the configuration written with <tt>nn::ac::WriteConfig</tt>.
467 These constraints may change in the future.
468 @param[in] pConfig  Specifies the <tt>Config</tt> structure.
469 @param[in] duplex  Communication method.
470 
471 
472 
473 
474 
475 
476 */
477 void SetEthernetCommunicationMethod( Config* pConfig, u16 duplex );
478 
479 /*!
480 @brief Gets the Ethernet communication method. (For development.)
481 The values that can be obtained are <tt>AC_ETH_LINK_HALF_DUPLEX</tt> or <tt>AC_ETH_LINK_FULL_DUPLEX</tt>.
482 For the meanings of these values, see <tt>nn::ac::GetEthernetCommunicationMethod</tt>.
483 If acquisition fails, <tt>AC_CONFIG_ETHER_COMMUNICATION_METHOD_ERROR_VALUE</tt> is returned.
484 Use this function only during development. Do not use it in the production version of your software.
485 @param[in] pConfig  Specifies the <tt>Config</tt> structure.
486 @return Communication method.
487 
488 
489 
490 
491 */
492 u16 GetEthernetCommunicationMethod( const Config* pConfig );
493 
494 /*!
495 @brief Sets whether there is auto-negotiation. (For development.)
496 The following values can be specified in negotiation.
497 <table>
498 <tr><th>Value</th><th>Meaning</th></tr>
499 <tr><td><tt>AC_ETH_AUTO_NEGOTIATION_OFF</tt></td><td>Auto-negotiation OFF</td></tr>
500 <tr><td><tt>AC_ETH_AUTO_NEGOTIATION_ON</tt></td><td>Auto-negotiation ON</td></tr>
501 </table>
502 Use this function only during development. Do not use it in the production version of your software.
503 <b>Note:</b> Due to constraints of the Wii U console, wired connections are always configured with auto-negotiation ON, the speed parameter as 0, and the communication method parameter as 0, regardless of the configuration written with <tt>nn::ac::WriteConfig</tt>.
504 These constraints may change in the future.
505 @param[in] pConfig  Specifies the <tt>Config</tt> structure.
506 @param[in] negotiation  Whether there is auto-negotiation.
507 
508 
509 
510 
511 
512 
513 */
514 void SetEthernetAutoNegotiation( Config* pConfig, u16 negotiation );
515 
516 /*!
517 @brief Gets whether there is auto-negotiation. (For development.)
518 The values that can be obtained are <tt>AC_ETH_AUTO_NEGOTIATION_OFF</tt> or <tt>AC_ETH_AUTO_NEGOTIATION_OFF</tt>.
519 For the meanings of these values, see <tt>nn::ac::GetEthernetAutoNegotiation</tt>.
520 If acquisition fails, <tt>AC_CONFIG_ETHER_AUTO_NEGOTIATION_ERROR_VALUE</tt> is returned.
521 Use this function only during development. Do not use it in the production version of your software.
522 @param[in] pConfig  Specifies the <tt>Config</tt> structure.
523 @return Whether there is auto-negotiation.
524 
525 
526 
527 
528 */
529 u16 GetEthernetAutoNegotiation( const Config* pConfig );
530 
531 //! @}
532 
533 //! @name Privacy Settings
534 //! @{
535 
536 // WEP40 Settings
537 /*!
538 @brief Sets the WEP-40 key. (For development.)
539 Specifies the WEP-40 key with <span class="argument">index</span> in the range from <tt>0</tt> through <tt>3</tt>.
540 When not specified, <tt>NULL</tt> can be specified.
541 The five bytes from the address pointed to by <span class="argument">pKeyStr</span> are copied as the WEP key.
542 <span class="argument">pKeyStr</span> does not require a terminating character.
543 Use this function only during development. Do not use it in the production version of your software.
544 @param[in] pConfig  Specifies the <tt>Config</tt> structure.
545 @param[in] index  Specifies the index.
546 @param[in] pKeyStr  Specifies the key string.
547 
548 
549 
550 
551 */
552 void SetWep40Key( Config* pConfig, int index, const char* pKeyStr );
553 
554 /*!
555 @brief Gets the WEP-40 key. (For development.)
556 This function returns a pointer to a five-character string comprising the WEP-40 key for the specified <span class="argument">index</span>.
557 The storage region for the string is continuous, so it does not contain a terminating character.
558 For this reason, the returned pointer itself cannot be used as a pointer to the string.
559 It simply indicates the start of a 5-byte data array.
560 When handled as a string, copy the 5 bytes to a 6-byte or greater region, and then add the <tt>NULL</tt> terminator to the end of it.
561 Use this function only during development. Do not use it in the production version of your software.
562 @param[in] pConfig  Specifies the <tt>Config</tt> structure.
563 @param[in] index  Specifies the index.
564 @return Returns the WEP-40 key.
565 
566 
567 
568 
569 
570 */
571 const char* GetWep40Key( const Config* pConfig, int index );
572 
573 /*!
574 @brief Sets the WEP-40 key ID. (For development.)
575 Specifies the index of the WEP-40 key to use.
576 Use a value in the range from <tt>0</tt> through <tt>3</tt>.
577 Use this function only during development. Do not use it in the production version of your software.
578 @param[in] pConfig  Specifies the <tt>Config</tt> structure.
579 @param[in] index  Specifies the index.
580 
581 
582 
583 */
584 void SetWep40KeyId( Config* pConfig, int index );
585 
586 /*!
587 @brief Gets the WEP-40 key ID. (For development.)
588 You can get values in the range from <tt>0</tt> through <tt>3</tt>.
589 If acquisition fails, <tt>AC_CONFIG_KEYID_ERROR_VALUE</tt> is returned.
590 Use this function only during development. Do not use it in the production version of your software.
591 @param[in] pConfig  Specifies the <tt>Config</tt> structure.
592 @return Returns the WEP-40 key ID.
593 
594 
595 
596 */
597 int GetWep40KeyId( const Config* pConfig );
598 
599 // WEP104 Settings
600 /*!
601 @brief Sets the WEP-104 key. (For development.)
602 Specifies a WEP-104 key with an <span class="argument">index</span> of <tt>0</tt> to <tt>3</tt>.
603 When not specified, <tt>NULL</tt> can be specified.
604 For the WEP key, the 13 bytes from the pointer indicated with <span class="argument">pKeyStr</span> are copied.
605 <span class="argument">pKeyStr</span> does not require a terminating character.
606 Use this function only during development. Do not use it in the production version of your software.
607 @param[in] pConfig  Specifies the <tt>Config</tt> structure.
608 @param[in] index  Specifies the index.
609 @param[in] pKeyStr  Specifies the key string.
610 
611 
612 
613 
614 */
615 void SetWep104Key( Config* pConfig, int index, const char* pKeyStr );
616 
617 /*!
618 @brief Gets the WEP-104 key. (For development.)
619 This function returns a pointer to a 13-character string comprising the WEP-104 key for the specified <span class="argument">index</span>.
620 The storage region for the string is continuous, so it does not contain a terminating character.
621 For this reason, the returned pointer itself cannot be used as a pointer to the string.
622 It simply indicates the start of a 13-byte data array.
623 When handled as a string, copy the 13 bytes to a 14-byte or greater region, and then add the <tt>NULL</tt> terminator to the end of it.
624 Use this function only during development. Do not use it in the production version of your software.
625 @param[in] pConfig  Specifies the <tt>Config</tt> structure.
626 @param[in] index  Specifies the index.
627 @return Returns the WEP-104 key.
628 
629 
630 
631 
632 
633 */
634 const char* GetWep104Key( const Config* pConfig, int index );
635 
636 /*!
637 @brief Sets the WEP-104 key ID. (For development.)
638 Specifies the index of the WEP-40 key to use.
639 Use a value in the range from <tt>0</tt> through <tt>3</tt>.
640 Use this function only during development. Do not use it in the production version of your software.
641 @param[in] pConfig  Specifies the <tt>Config</tt> structure.
642 @param[in] index  Specifies the index.
643 
644 
645 
646 */
647 void SetWep104KeyId( Config* pConfig, int index );
648 
649 /*!
650 @brief Gets the WEP-104 key ID. (For development.)
651 You can get values in the range from <tt>0</tt> through <tt>3</tt>.
652 If acquisition fails, <tt>AC_CONFIG_KEYID_ERROR_VALUE</tt> is returned.
653 Use this function only during development. Do not use it in the production version of your software.
654 @param[in] pConfig  Specifies the <tt>Config</tt> structure.
655 @return Returns the WEP-40 key ID.
656 
657 
658 
659 */
660 int GetWep104KeyId( const Config* pConfig );
661 
662 /*!
663 @brief Sets the TKIP key. (For development.)
664 The encryption method must be either <tt>WPA_PSK_TKIP</tt> or <tt>WPA2_PSK_TKIP</tt>.
665 Copies the number of bytes indicated by <span class="argument">keyLength</span>, starting from the address that <span class="argument">pKey</span> points to.
666 The length is specified by <span class="argument">keyLength</span>, so a terminating character is unnecessary.
667 Specify a value in the range from <tt>1</tt> through <tt>63</tt> for <span class="argument">keyLength</span>.
668 (With the TKIP specifications, the key must contain only displayable ASCII characters, and be between 8 and 63 characters long
669 Use this function only during development. Do not use it in the production version of your software.
670 @param[in] pConfig  Specifies the <tt>Config</tt> structure.
671 @param[in] pKey  Specifies the key string.
672 @param[in] keyLength  Specifies the key length.
673 
674 
675 
676 
677 
678 
679 */
680 void SetTkipKey( Config* pConfig, const u8* pKey, int keyLength );
681 
682 /*!
683 @brief Gets the TKIP key. (For development.)
684 The pointer returned by this function is to the beginning of the TKIP key region in <span class="argument">pConfig</span>. Do not handle it as a string as is.
685 The key length returned in <span class="argument">pKeyLength</span> is the length of the key set with <tt>nn::ac::SetTkipKey</tt>.
686 Use this function only during development. Do not use it in the production version of your software.
687 @param[in] pConfig  Specifies the <tt>Config</tt> structure.
688 @param[out] pKeyLength  Specifies the key length.
689 @return Returns the TKIP key.
690 
691 
692 
693 
694 
695 */
696 const u8* GetTkipKey( const Config* pConfig, int* pKeyLength );
697 
698 /*!
699 @brief Sets the AES key. (For development.)
700 The encryption method must be either <tt>WPA_PSK_AES</tt> or <tt>WPA2_PSK_AES</tt>.
701 Copies the number of bytes indicated by <span class="argument">keyLength</span>, starting from the address that <span class="argument">pKey</span> points to.
702 The length is specified by <span class="argument">keyLength</span>, so a terminating character is unnecessary.
703 Specify a value in the range from <tt>1</tt> through <tt>63</tt> for <span class="argument">keyLength</span>.
704 (With the AES specifications, the key must contain only displayable ASCII characters, and be between 8 and 63 characters long.)
705 Use this function only during development. Do not use it in the production version of your software.
706 @param[in] pConfig  Specifies the <tt>Config</tt> structure.
707 @param[in] pKey  Specifies the key string.
708 @param[in] keyLength  Specifies the key length.
709 
710 
711 
712 
713 
714 
715 */
716 void SetAesKey( Config* pConfig, const u8* pKey, int keyLength );
717 
718 /*!
719 @brief Gets the AES key. (For development.)
720 The pointer returned by this function is to the beginning of the AES key region in <span class="argument">pConfig</span>. Do not handle it as a string as is.
721 The key length returned in <span class="argument">pKeyLength</span> is the length of the key set with <tt>nn::ac::SetAesKey</tt>.
722 Use this function only during development. Do not use it in the production version of your software.
723 @param[in] pConfig  Specifies the <tt>Config</tt> structure.
724 @param[out] pKeyLength  Specifies the key length.
725 @return Returns the AES key.
726 
727 
728 
729 
730 
731 */
732 const u8* GetAesKey( const Config* pConfig, int* pKeyLength );
733 
734 //! @}
735 
736 //! @name       Proxy Settings
737 //! @{
738 
739 /*!
740 @brief Sets whether a proxy is used. (For development.)
741 The following values can be specified in <span class="argument">use</span>.
742 <table>
743 <tr><th>Value</th><th>Meaning</th></tr>
744 <tr><td><tt>AC_PROXY_STATE_DISABLE</tt></td><td>Do not use a proxy.</td></tr>
745 <tr><td><tt>AC_PROXY_STATE_ENABLE</tt></td><td>Use a proxy.</td></tr>
746 </table>
747 Use this function only during development. Do not use it in the production version of your software.
748 @param[in] pConfig  Specifies the <tt>Config</tt> structure.
749 @param[in] use  Specifies whether to use.
750 
751 
752 
753 
754 */
755 void SetProxyUse( Config* pConfig, u16 use );
756 
757 /*!
758 @brief Gets whether a proxy is used. (For development.)
759 The values that can be obtained are <tt>AC_PROXY_STATE_DISABLE</tt> or <tt>AC_ROXY_STATE_ENABLE</tt>.
760 For the meanings of these values, see <tt>nn::ac::SetProxyUse</tt>.
761 Use this function only during development. Do not use it in the production version of your software.
762 @param[in] pConfig  Specifies the <tt>Config</tt> structure.
763 @return Returns whether a proxy is used.
764 
765 
766 
767 */
768 u16 GetProxyUse( const Config* pConfig );
769 
770 /*!
771 @brief Sets the proxy port. (For development.)
772 The values that can specified with <span class="argument">port</span> are <tt>AC_MIN_PROXY_PORT_NUMBER</tt> (1) or greater, and <tt>AC_MAX_PROXY_PORT_NUMBER</tt> (65535) or smaller.
773 Immediately after the <tt>nn::ac::ClearConfig</tt> function is called, <tt>AC_DEFAULT_PROXY_PORT</tt> (80) is stored.
774 Use this function only during development. Do not use it in the production version of your software.
775 @param[in] pConfig  Specifies the <tt>Config</tt> structure.
776 @param[in] port  Specifies the port number.
777 
778 
779 
780 
781 */
782 void SetProxyPort( Config* pConfig, u16 port );
783 
784 /*!
785 @brief Gets the proxy port. (For development.)
786 The values that can be obtained are <tt>AC_MIN_PROXY_PORT_NUMBER</tt> (1) or greater, and <tt>AC_MAX_PROXY_PORT_NUMBER</tt> (65535) or smaller.
787 When <span class="argument">pConfig</span> is <tt>NULL</tt>, <tt>AC_CONFIG_PROXY_PORT_ERROR_VALUE</tt> is returned.
788 Use this function only during development. Do not use it in the production version of your software.
789 @param[in] pConfig  Specifies the <tt>Config</tt> structure.
790 @return Returns the proxy port.
791 
792 
793 
794 
795 */
796 u16 GetProxyPort( const Config* pConfig );
797 
798 /*!
799 @brief Sets the proxy authentication type. (For development.)
800 <table>
801 <tr><th>Value</th><th>Meaning</th></tr>
802 <tr><td><tt>AC_PROXY_AUTH_TYPE_NONE</tt></td><td>No authentication</td></tr>
803 <tr><td><tt>AC_PROXY_AUTH_TYPE_BASIC</tt></td><td>Basic authentication</td></tr>
804 <tr><td><tt>AC_PROXY_AUTH_TYPE_DIGEST</tt></td><td>Digest authentication</td></tr>
805 <tr><td><tt>AC_PROXY_AUTH_TYPE_NTLM</tt></td><td>NTLM authentication</td></tr>
806 <tr><td><tt>AC_PROXY_AUTH_TYPE_ANY</tt></td><td>Automatic selection of the authentication type suitable for <tt>libcurl</tt>.</td></tr>
807 </table>
808 Use this function only during development. Do not use it in the production version of your software.
809 @param[in] pConfig  Specifies the <tt>Config</tt> structure.
810 @param[in] authType  Specifies the authentication type.
811 
812 
813 
814 */
815 void SetProxyAuthType( Config* pConfig, u32 authType );
816 
817 /*!
818 @brief Gets the proxy authentication type. (For development.)
819 <tt>AC_PROXY_AUTH_TYPE_<i>xxx</i></tt> can be obtained, where <i>xxx</i> is one of <tt>NONE</tt>, <tt>BASIC</tt>, <tt>DIGEST</tt>, <tt>NTLM</tt>, or <tt>ANY</tt>.
820 For the meanings of these values, see <tt>nn::ac::SetPType</tt>s.
821 When <span class="argument">pConfig</span> is <tt>NULL</tt>, <tt>AC_CONFIG_PROXY_AUTH_TYPE_ERROR_VALUE</tt> is returned.
822 Use this function only during development. Do not use it in the production version of your software.
823 @param[in] pConfig  Specifies the <tt>Config</tt> structure.
824 @return Returns the proxy authentication type.
825 
826 
827 
828 
829 */
830 u32 GetProxyAuthType( const Config* pConfig );
831 
832 /*!
833 @brief Sets the proxy hostname. (For development.)
834 Strings that can be specified in <span class="argument">pHostName</span> can be up to <tt>AC_MAX_PROXY_HOST_LEN - 1</tt> characters long, because a terminal character is required.
835 Use this function only during development. Do not use it in the production version of your software.
836 @param[in] pConfig  Specifies the <tt>Config</tt> structure.
837 @param[in] pHostName  Specifies the hostname.
838 
839 
840 
841 */
842 void SetProxyHostName( Config* pConfig, const char* pHostName );
843 
844 /*!
845 @brief Gets the proxy hostname. (For development.)
846 Use this function only during development. Do not use it in the production version of your software.
847 @param[in] pConfig  Specifies the <tt>Config</tt> structure.
848 @return Returns the proxy hostname.
849 
850 
851 */
852 const char* GetProxyHostName( const Config* pConfig );
853 
854 /*!
855 @brief Sets the proxy user name. (For development.)
856 Strings that can be specified in <span class="argument">pName</span> can be up to <tt>AC_MAX_PROXY_USERNAME_LEN - 1</tt> characters long, because a terminal character is required.
857 Use this function only during development. Do not use it in the production version of your software.
858 @param[in] pConfig  Specifies the <tt>Config</tt> structure.
859 @param[in]  pName       User name.
860 
861 
862 
863 */
864 void SetProxyUserName( Config* pConfig, const char* pName );
865 
866 /*!
867 @brief Gets the proxy user name. (For development.)
868 Use this function only during development. Do not use it in the production version of your software.
869 @param[in] pConfig  Specifies the <tt>Config</tt> structure.
870 @return Returns the proxy user name.
871 
872 
873 */
874 const char* GetProxyUserName( const Config* pConfig );
875 
876 /*!
877 @brief Sets the proxy password. (For development.)
878 Strings that can be specified in <span class="argument">pPassword</span> can be up to <tt>AC_MAX_PROXY_PASSWORD_LEN - 1</tt> characters long, because a terminating character is required.
879 Use this function only during development. Do not use it in the production version of your software.
880 @param[in] pConfig  Specifies the <tt>Config</tt> structure.
881 @param[in]  pPassword   Password.
882 
883 
884 
885 */
886 void SetProxyPassword( Config* pConfig, const char* pPassword );
887 
888 /*!
889 @brief Gets the proxy password. (For development.)
890 Use this function only during development. Do not use it in the production version of your software.
891 @param[in] pConfig  Specifies the <tt>Config</tt> structure.
892 @return     Returns the proxy password.
893 
894 
895 */
896 const char* GetProxyPassword( const Config* pConfig );
897 
898 /*!
899 @brief Sets a host that does not use a proxy. (For development.)
900 Strings that can be specified in <span class="argument">pNoProxyHosts</span> can be up to <tt>AC_MAX_NO_PROXY_HOSTS_LEN - 1</tt> characters long, because a terminating character is required.
901 Use this function only during development. Do not use it in the production version of your software.
902 @param[in] pConfig  Specifies the <tt>Config</tt> structure.
903 @param[in]  pNoProxyHosts   Host that does not use a proxy
904 
905 
906 
907 */
908 void SetProxyNoproxyHosts( Config* pConfig, const char* pNoProxyHosts );
909 
910 /*!
911 @brief Gets a host that does not use a proxy. (For development.)
912 Use this function only during development. Do not use it in the production version of your software.
913 @param[in] pConfig  Specifies the <tt>Config</tt> structure.
914 @return Returns a host that does not use a proxy.
915 
916 
917 */
918 const char* GetProxyNoproxyHosts( const Config* pConfig );
919 
920 //! @}
921 
922 //! @}
923 
924 } // namespace ac
925 } // namespace nn
926 #endif
927 
928 //! @addtogroup   nn_ac_devapi_c
929 //! @{
930 
931 //! @name       Wi-Fi and USB Ethernet Common Settings
932 //! @{
933 
934 /*!
935 @brief See the corresponding C++ function <tt>@ref nn::ac::ClearConfig</tt>.
936  */
937 NN_EXTERN_C void ACClearConfig( ACConfig* pConfig );
938 
939 /*!
940 @brief See the corresponding C++ function <tt>@ref nn::ac::SetNetworkInterface</tt>.
941  */
942 NN_EXTERN_C void ACSetNetworkInterface( ACConfig* pConfig, u16 nic );
943 /*!
944 @brief See the corresponding C++ function <tt>@ref nn::ac::GetNetworkInterface</tt>.
945  */
946 NN_EXTERN_C u16 ACGetNetworkInterface( const ACConfig* pConfig );
947 
948 /*!
949 @brief See the corresponding C++ function <tt>@ref nn::ac::SetMtu</tt>.
950  */
951 NN_EXTERN_C void ACSetMtu( ACConfig* pConfig, u32 mtu );
952 /*!
953 @brief See the corresponding C++ function <tt>@ref nn::ac::GetMtu</tt>.
954  */
955 NN_EXTERN_C u32 ACGetMtu( const ACConfig* pConfig );
956 
957 /*!
958 @brief See the corresponding C++ function <tt>@ref nn::ac::SetAddressObtainMode</tt>.
959  */
960 NN_EXTERN_C void ACSetAddressObtainMode( ACConfig* pConfig, u32 mode );
961 /*!
962 @brief See the corresponding C++ function <tt>@ref nn::ac::GetAddressObtainMode</tt>.
963  */
964 NN_EXTERN_C u32 ACGetAddressObtainMode( const ACConfig* pConfig );
965 
966 /*!
967 @brief See the corresponding C++ function <tt>@ref nn::ac::SetDeviceIpAddress</tt>.
968  */
969 NN_EXTERN_C void ACSetDeviceIpAddress( ACConfig* pConfig, const char* pAddressStr );
970 /*!
971 @brief See the corresponding C++ function <tt>@ref nn::ac::GetDeviceIpAddress</tt>.
972  */
973 NN_EXTERN_C u32 ACGetDeviceIpAddress( const ACConfig* pConfig );
974 
975 /*!
976 @brief See the corresponding C++ function <tt>@ref nn::ac::SetSubnetMask</tt>.
977  */
978 NN_EXTERN_C void ACSetSubnetMask( ACConfig* pConfig, const char* pAddressStr );
979 /*!
980 @brief See the corresponding C++ function <tt>@ref nn::ac::GetSubnetMask</tt>.
981  */
982 NN_EXTERN_C u32 ACGetSubnetMask( const ACConfig* pConfig );
983 
984 /*!
985 @brief See the corresponding C++ function <tt>@ref nn::ac::SetDefaultGateway</tt>.
986  */
987 NN_EXTERN_C void ACSetDefaultGateway( ACConfig* pConfig, const char* pAddressStr );
988 /*!
989 @brief See the corresponding C++ function <tt>@ref nn::ac::GetDefaultGateway</tt>.
990  */
991 NN_EXTERN_C u32 ACGetDefaultGateway( const ACConfig* pConfig );
992 
993 /*!
994 @brief See the corresponding C++ function <tt>@ref nn::ac::SetPrimaryDnsServer</tt>.
995  */
996 NN_EXTERN_C void ACSetPrimaryDnsServer( ACConfig* pConfig, const char* pAddressStr );
997 /*!
998 @brief See the corresponding C++ function <tt>@ref nn::ac::GetPrimaryDnsServer</tt>.
999  */
1000 NN_EXTERN_C u32 ACGetPrimaryDnsServer( const ACConfig* pConfig );
1001 
1002 /*!
1003 @brief See the corresponding C++ function <tt>@ref nn::ac::SetAlternativeDnsServer</tt>.
1004  */
1005 NN_EXTERN_C void ACSetAlternativeDnsServer( ACConfig* pConfig, const char* pAddressStr );
1006 /*!
1007 @brief See the corresponding C++ function <tt>@ref nn::ac::GetAlternativeDnsServer</tt>.
1008  */
1009 NN_EXTERN_C u32 ACGetAlternativeDnsServer( const ACConfig* pConfig );
1010 
1011 //! @}
1012 
1013 //! @name Wi-Fi Settings
1014 //! @{
1015 
1016 /*!
1017 @brief See the corresponding C++ function <tt>@ref nn::ac::SetWifiConfigureMethod</tt>.
1018  */
1019 NN_EXTERN_C void ACSetWifiConfigureMethod( ACConfig* pConfig, u16 method );
1020 /*!
1021 @brief See the corresponding C++ function <tt>@ref nn::ac::GetWifiConfigureMethod</tt>.
1022  */
1023 NN_EXTERN_C u16 ACGetWifiConfigureMethod( const ACConfig* pConfig );
1024 /*!
1025 @brief See the corresponding C++ function <tt>@ref nn::ac::SetPrivacyMode</tt>.
1026  */
1027 NN_EXTERN_C void ACSetPrivacyMode( ACConfig* pConfig, u16 mode );
1028 /*!
1029 @brief See the corresponding C++ function <tt>@ref nn::ac::GetPrivacyMode</tt>.
1030  */
1031 NN_EXTERN_C u16 ACGetPrivacyMode( const ACConfig* pConfig );
1032 /*!
1033 @brief See the corresponding C++ function <tt>@ref nn::ac::SetSsid</tt>.
1034  */
1035 NN_EXTERN_C void ACSetSsid( ACConfig* pConfig, const char* pSsidStr );
1036 /*!
1037 @brief See the corresponding C++ function <tt>@ref nn::ac::GetSsid</tt>.
1038  */
1039 NN_EXTERN_C const char* ACGetSsid( const ACConfig* pConfig, int* pLength );
1040 
1041 //! @}
1042 
1043 //! @name USB Ethernet Settings
1044 //! @{
1045 
1046 /*!
1047 @brief See the corresponding C++ function <tt>@ref nn::ac::SetEthernetSpeed</tt>.
1048  */
1049 NN_EXTERN_C void ACSetEthernetSpeed( ACConfig* pConfig, u16 speed );
1050 /*!
1051 @brief See the corresponding C++ function <tt>@ref nn::ac::GetEthernetSpeed</tt>.
1052  */
1053 NN_EXTERN_C u16 ACGetEthernetSpeed( const ACConfig* pConfig );
1054 /*!
1055 @brief See the corresponding C++ function <tt>@ref nn::ac::SetEthernetCommunicationMethod</tt>.
1056  */
1057 NN_EXTERN_C void ACSetEthernetCommunicationMethod( ACConfig* pConfig, u16 duplex );
1058 /*!
1059 @brief See the corresponding C++ function <tt>@ref nn::ac::GetEthernetCommunicationMethod</tt>.
1060  */
1061 NN_EXTERN_C u16 ACGetEthernetCommunicationMethod( const ACConfig* pConfig );
1062 /*!
1063 @brief See the corresponding C++ function <tt>@ref nn::ac::SetEthernetAutoNegotiation</tt>.
1064  */
1065 NN_EXTERN_C void ACSetEthernetAutoNegotiation( ACConfig* pConfig, u16 negotiation );
1066 /*!
1067 @brief See the corresponding C++ function <tt>@ref nn::ac::GetEthernetAutoNegotiation</tt>.
1068  */
1069 NN_EXTERN_C u16 ACGetEthernetAutoNegotiation( const ACConfig* pConfig );
1070 
1071 //! @}
1072 
1073 //! @name Privacy Settings
1074 //! @{
1075 
1076 /*!
1077 @brief See the corresponding C++ function <tt>@ref nn::ac::SetWep40Key</tt>.
1078  */
1079 NN_EXTERN_C void ACSetWep40Key( ACConfig* pConfig, int index, const char* pKeyStr );
1080 /*!
1081 @brief See the corresponding C++ function <tt>@ref nn::ac::GetWep40Key</tt>.
1082  */
1083 NN_EXTERN_C const char* ACGetWep40Key( const ACConfig* pConfig, int index );
1084 /*!
1085 @brief See the corresponding C++ function <tt>@ref nn::ac::SetWep40KeyId</tt>.
1086  */
1087 NN_EXTERN_C void ACSetWep40KeyId( ACConfig* pConfig, int index );
1088 /*!
1089 @brief See the corresponding C++ function <tt>@ref nn::ac::GetWep40KeyId</tt>.
1090  */
1091 NN_EXTERN_C int ACGetWep40KeyId( const ACConfig* pConfig );
1092 /*!
1093 @brief See the corresponding C++ function <tt>@ref nn::ac::SetWep104Key</tt>.
1094  */
1095 NN_EXTERN_C void ACSetWep104Key( ACConfig* pConfig, int index, const char* pKeyStr );
1096 /*!
1097 @brief See the corresponding C++ function <tt>@ref nn::ac::GetWep104Key</tt>.
1098  */
1099 NN_EXTERN_C const char* ACGetWep104Key( const ACConfig* pConfig, int index );
1100 /*!
1101 @brief See the corresponding C++ function <tt>@ref nn::ac::SetWep104KeyId</tt>.
1102  */
1103 NN_EXTERN_C void ACSetWep104KeyId( ACConfig* pConfig, int index );
1104 /*!
1105 @brief See the corresponding C++ function <tt>@ref nn::ac::GetWep104KeyId</tt>.
1106  */
1107 NN_EXTERN_C int ACGetWep104KeyId( const ACConfig* pConfig );
1108 /*!
1109 @brief See the corresponding C++ function <tt>@ref nn::ac::SetTkipKey</tt>.
1110  */
1111 NN_EXTERN_C void ACSetTkipKey( ACConfig* pConfig, const u8* pKey, int keyLength );
1112 /*!
1113 @brief See the corresponding C++ function <tt>@ref nn::ac::GetTkipKey</tt>.
1114  */
1115 NN_EXTERN_C const u8* ACGetTkipKey( const ACConfig* pConfig, int* pKeyLength );
1116 /*!
1117 @brief See the corresponding C++ function <tt>@ref nn::ac::SetAesKey</tt>.
1118  */
1119 NN_EXTERN_C void ACSetAesKey( ACConfig* pConfig, const u8* pKey, int keyLength );
1120 /*!
1121 @brief See the corresponding C++ function <tt>@ref nn::ac::GetAesKey</tt>.
1122  */
1123 NN_EXTERN_C const u8* ACGetAesKey( const ACConfig* pConfig, int* pKeyLength );
1124 
1125 //! @}
1126 
1127 //! @name       Proxy Settings
1128 //! @{
1129 
1130 /*!
1131 @brief See the corresponding C++ function <tt>@ref nn::ac::SetProxyUse</tt>.
1132  */
1133 NN_EXTERN_C void ACSetProxyUse( ACConfig* pConfig, u16 use );
1134 /*!
1135 @brief See the corresponding C++ function <tt>@ref nn::ac::GetProxyUse</tt>.
1136  */
1137 NN_EXTERN_C u16 ACGetProxyUse( const ACConfig* pConfig );
1138 /*!
1139 @brief See the corresponding C++ function <tt>@ref nn::ac::SetProxyPort</tt>.
1140  */
1141 NN_EXTERN_C void ACSetProxyPort( ACConfig* pConfig, u16 port );
1142 /*!
1143 @brief See the corresponding C++ function <tt>@ref nn::ac::GetProxyPort</tt>.
1144  */
1145 NN_EXTERN_C u16 ACGetProxyPort( const ACConfig* pConfig );
1146 /*!
1147 @brief See the corresponding C++ function <tt>@ref nn::ac::SetProxyAuthType</tt>.
1148  */
1149 NN_EXTERN_C void ACSetProxyAuthType( ACConfig* pConfig, u32 authType );
1150 /*!
1151 @brief See the corresponding C++ function <tt>@ref nn::ac::GetProxyAuthType</tt>.
1152  */
1153 NN_EXTERN_C u32 ACGetProxyAuthType( const ACConfig* pConfig );
1154 /*!
1155 @brief See the corresponding C++ function <tt>@ref nn::ac::SetProxyHostName</tt>.
1156  */
1157 NN_EXTERN_C void ACSetProxyHostName( ACConfig* pConfig, const char* pHostName );
1158 /*!
1159 @brief See the corresponding C++ function <tt>@ref nn::ac::GetProxyHostName</tt>.
1160  */
1161 NN_EXTERN_C const char* ACGetProxyHostName( const ACConfig* pConfig );
1162 /*!
1163 @brief See the corresponding C++ function <tt>@ref nn::ac::SetProxyUserName</tt>.
1164  */
1165 NN_EXTERN_C void ACSetProxyUserName( ACConfig* pConfig, const char* pName );
1166 /*!
1167 @brief See the corresponding C++ function <tt>@ref nn::ac::GetProxyUserName</tt>.
1168  */
1169 NN_EXTERN_C const char* ACGetProxyUserName( const ACConfig* pConfig );
1170 /*!
1171 @brief See the corresponding C++ function <tt>@ref nn::ac::SetProxyPassword</tt>.
1172  */
1173 NN_EXTERN_C void ACSetProxyPassword( ACConfig* pConfig, const char* pPassword );
1174 /*!
1175 @brief See the corresponding C++ function <tt>@ref nn::ac::GetProxyPassword</tt>.
1176  */
1177 NN_EXTERN_C const char* ACGetProxyPassword( const ACConfig* pConfig );
1178 /*!
1179 @brief See the corresponding C++ function <tt>@ref nn::ac::SetProxyNoproxyHosts</tt>.
1180  */
1181 NN_EXTERN_C void ACSetProxyNoproxyHosts( ACConfig* pConfig, const char* pNoProxyHosts );
1182 /*!
1183 @brief See the corresponding C++ function <tt>@ref nn::ac::GetProxyNoproxyHosts</tt>.
1184  */
1185 NN_EXTERN_C const char* ACGetProxyNoproxyHosts( const ACConfig* pConfig );
1186 
1187 //! @}
1188 
1189 //! @}
1190 
1191 #endif // NN_AC_AC_CONFIG_H_
1192