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