1 /*---------------------------------------------------------------------------*
2   Project:  Horizon
3   File:     ac_API.h
4 
5   Copyright 2009 Nintendo.  All rights reserved.
6 
7   These coded instructions, statements, and computer programs contain
8   proprietary information of Nintendo of America Inc. and/or Nintendo
9   Company Ltd., and are protected by Federal copyright law.  They may
10   not be disclosed to third parties or copied or duplicated in any form,
11   in whole or in part, without the prior written consent of Nintendo.
12 
13   $Date:: 2010-11-18#$
14   $Rev: 31613 $
15   $Author: tominaga_masafumi $
16  *---------------------------------------------------------------------------*/
17 
18 #ifndef NN_AC_CTR_AC_API_H_
19 #define NN_AC_CTR_AC_API_H_
20 
21 /*! @file
22     @brief      AC に関する API の宣言
23 */
24 
25 #include <nn/os/os_Event.h>
26 #include <nn/ac/ac_Result.h>
27 #include <nn/ac/CTR/ac_Types.h>
28 
29 #ifdef __cplusplus
30 
31 namespace nn {
32 namespace ac {
33 namespace CTR {
34 
35     /*!
36         @brief 自動接続の初期化をします。
37 
38                内部で参照カウンターを持っていますので、<BR>
39                多重で本関数を呼び出してもエラーにはなりませんが、<BR>
40                同じ回数 @ref Finalize を呼び出してください。<BR>
41 
42         @return 結果
43         @retval       ResultSuccess                       正常に終了しました。
44         @retval       ResultAlreadyInitialized            既に初期化されています。
45         @retval       上記以外                            上記以外の理由で失敗しました。
46     */
47     Result Initialize();
48 
49     /*!
50         @brief 自動接続の開放処理をします。
51 
52         @return 結果
53         @retval       ResultSuccess                       正常に終了しました。
54         @retval       ResultNotInitialized                初期化されていません。
55         @retval       上記以外                            上記以外の理由で失敗しました。
56     */
57     Result Finalize();
58 
59     /*!
60         @brief 自動接続が初期化済みかを取得します。
61 
62         @return 初期化済みか
63     */
64     bool IsInitialized();
65 
66     /*!
67         @brief 一般的な接続条件を生成します。
68 
69                通常、アプリケーションは確保した Config をこの関数に渡し、<BR>
70                そのまま @ref Connect の引数に指定してください。<BR>
71                <BR>
72                configのフォーマットは将来システムアップデートによって変更される可能性があります。<BR>
73                中身を書き換えるようなコーディングは避けてください。<BR>
74 
75         @param[out] config      接続条件インスタンス
76 
77         @return 結果
78         @retval       ResultSuccess                       正常に終了しました。
79         @retval       ResultInvalidData                   引数にNULLを指定しました。
80         @retval       上記以外                            上記以外の理由で失敗しました。
81     */
82     Result CreateDefaultConfig( Config* config );
83 
84     /*!
85         @brief ネットワーク接続するAPの種類を指定します。
86 
87                @ref ApType の値を aptype に指定します。<BR>
88                @ref ApType は論理和することで、同時に複数のAP種別を指定する事ができます。<BR>
89                <BR>
90                本関数はデバッグ用関数です。Releaseビルドでは動作しませんのでご注意ください。<BR>
91 
92         @param[in] config      接続条件インスタンス
93         @param[in] aptype      APの種類
94 
95         @return 結果
96         @retval       ResultSuccess                       正常に終了しました。
97         @retval       ResultInvalidData                   引数にNULLを指定しました。
98         @retval       上記以外                            上記以外の理由で失敗しました。
99     */
100     Result DebugSetApType( Config* config, u32 aptype );
101 
102     /*!
103         @brief ネットワーク接続要求のレベルを指定します。
104 
105                @ref NETWORK_AREA_WAN を指定した場合は、インターネットに接続されている場合[WAN Connected]ステータスで成功します。<BR>
106                @ref NETWORK_AREA_LAN を指定した場合は、アクセスポイントに接続できた段階で[LAN Connected]ステータスで成功します。<BR>
107                @ref NETWORK_AREA_AUTO を指定した場合は、インターネットに接続されているか検証しますが、<BR>
108                インターネットに接続できていなくても[LAN Connected]ステータスで成功します。<BR>
109                インターネット接続できていた場合は[WAN Connected]ステータスで成功します。<BR>
110                <BR>
111                本関数はデバッグ用関数です。Releaseビルドでは動作しませんのでご注意ください。<BR>
112 
113         @param[in] config      接続条件インスタンス
114         @param[in] networkArea ネットワーク接続要求レベル
115 
116         @return 結果
117         @retval       ResultSuccess                       正常に終了しました。
118         @retval       ResultInvalidData                   引数にNULLを指定しました。
119         @retval       上記以外                            上記以外の理由で失敗しました。
120     */
121     Result DebugSetNetworkArea( Config* config, NetworkArea networkArea );
122 
123     /*!
124         @brief 自動接続を開始します。
125 
126                @ref nn::fs::Initialize を呼び出した後で利用するようにしてください。
127 
128                接続完了後、APから意図せず切断された時には<BR>
129                @ref nn::ac::RegisterDisconnectEvent で登録した @ref nn::os::LightEvent がシグナルします。<BR>
130                この関数内でアプリの EULA バージョンを取得するため、アイコンファイルを設定していないと @ref ResultNotAgreeEula が返ります。
131 
132         @param[in] config      接続条件インスタンス
133 
134         @return 結果
135         @retval       ResultLanConnected                  LAN接続に成功しました。
136         @retval       ResultWanConnected                  WAN接続に成功しました。
137         @retval       nn::fs::ResultNotInitialized        fsが初期化されていません。
138         @retval       ResultNotFoundAccessPoint           接続できるアクセスポイントが見つかりませんでした。
139         @retval       ResultCanceled                      接続処理中にキャンセルされました。
140         @retval       ResultAlreadyExists                 既に処理中です。
141         @retval       ResultNotAgreeEula                  EULAに同意していない、もしくはアイコンファイルが設定されていません。
142         @retval       ResultAlreadyConnectUnsupportAp     利用できないAPに接続中です。
143         @retval       ResultWifiOff                       フライトモードの為、ネットワークを利用できません。
144         @retval       ResultFailedScan                    スキャンに失敗しました。
145         @retval       ResultConflictIpAddress             IPアドレスが衝突しています。
146         @retval       ResultFailedDhcp                    DHCPに失敗しました。
147         @retval       ResultInvalidDns                    名前解決に失敗しました。
148         @retval       ResultInvalidProxy                  プロキシに失敗しました。
149         @retval       ResultFailedConnTest                インターネット接続テストに失敗しました。
150         @retval       ResultFailedHotspotAuthentication   ホットスポット認証に失敗しました。
151         @retval       ResultFailedHotspotConntest         ホットスポット認証通過後にインターネット接続テストに失敗しました。
152         @retval       ResultOutOfMemory                   メモリの確保に失敗しました。
153         @retval       ResultUnsupportAuthAlgorithm        非対応の暗号化方式のアクセスポイントだった為、接続できませんでした。
154         @retval       ResultDenyUsbAp                     ニンテンドーWi-Fi USBコネクタにアクセス拒否されました。
155         @retval       ResultUnsupportPlace                ネットワークを利用できない場所のため接続できませんでした。
156         @retval       上記以外                            上記以外の理由で失敗しました。
157     */
158     Result Connect( Config& config );
159 
160     /*!
161         @brief 非同期で自動接続を開始します。
162 
163                処理の成功・失敗に関わらず、処理が終了した段階で<BR>
164                引数に指定した @ref nn::os::Event がシグナルします。<BR>
165 
166                @ref nn::fs::Initialize を呼び出した後で利用するようにしてください。
167 
168                接続完了後、APから意図せず切断された時には<BR>
169                @ref nn::ac::RegisterDisconnectEvent で登録した @ref nn::os::Event がシグナルします。<BR>
170                この関数内でアプリの EULA バージョンを取得するため、アイコンファイルを設定していないと @ref ResultNotAgreeEula が返ります。
171 
172         @param[in] config      接続条件インスタンス
173         @param[in] event       処理の完了を通知する初期化済み @ref nn::os::Event
174 
175         @return 結果
176         @retval       ResultSuccess                       正常に終了しました。
177         @retval       nn::fs::ResultNotInitialized        fsが初期化されていません。
178         @retval       ResultInvalidData                   引数にNULLを指定したか、未初期化のEventを指定しました。
179         @retval       ResultAlreadyExists                 既に処理中です。
180         @retval       ResultCanceled                      接続処理中にキャンセルされました。
181         @retval       ResultNotAgreeEula                  EULAに同意していない、もしくはアイコンファイルが設定されていません。
182         @retval       上記以外                            上記以外の理由で失敗しました。
183     */
184     Result ConnectAsync( Config& config, os::Event* event );
185 
186     /*!
187         @brief 非同期で自動接続を行った際の処理結果を取得します。
188 
189                @ref ConnectAsync で接続処理を行った場合、<BR>
190                @ref nn::os::Event がシグナルしたら、この関数を利用して結果を確認してください。<BR>
191 
192         @return 結果
193         @retval       ResultLanConnected                  LAN接続に成功しました。
194         @retval       ResultWanConnected                  WAN接続に成功しました。
195         @retval       ResultNotFoundAccessPoint           接続できるアクセスポイントが見つかりませんでした。
196         @retval       ResultCanceled                      接続処理中にキャンセルされました。
197         @retval       ResultAlreadyConnectUnsupportAp     利用できないAPに接続中です。
198         @retval       ResultWifiOff                       フライトモードの為、ネットワークを利用できません。
199         @retval       ResultFailedScan                    スキャンに失敗しました。
200         @retval       ResultConflictIpAddress             IPアドレスが衝突しています。
201         @retval       ResultFailedDhcp                    DHCPに失敗しました。
202         @retval       ResultInvalidDns                    名前解決に失敗しました。
203         @retval       ResultInvalidProxy                  プロキシに失敗しました。
204         @retval       ResultFailedConnTest                インターネット接続テストに失敗しました。
205         @retval       ResultFailedHotspotAuthentication   ホットスポット認証に失敗しました。
206         @retval       ResultFailedHotspotConntest         ホットスポット認証通過後にインターネット接続テストに失敗しました。
207         @retval       ResultOutOfMemory                   メモリの確保に失敗しました。
208         @retval       ResultUnsupportAuthAlgorithm        非対応の暗号化方式のアクセスポイントだった為、接続できませんでした。
209         @retval       ResultDenyUsbAp                     ニンテンドーWi-Fi USBコネクタにアクセス拒否されました。
210         @retval       ResultUnsupportPlace                ネットワークを利用できない場所のため接続できませんでした。
211         @retval       上記以外                            上記以外の理由で失敗しました。
212     */
213     Result GetConnectResult();
214 
215     /*!
216         @brief 非同期で自動接続処理中の場合、処理をキャンセルします。
217 
218                キャンセルしたときには、Result にはキャンセルされたことを示す値が返ります。<BR>
219                @ref GetLastErrorCode で取得できるエラーコードは、キャンセルされたタイミングで失敗した相当のエラーコードが返ります。<BR>
220                キャンセルされたかの確認には Result の値を使うようにしてください。<BR>
221                <BR>
222                キャンセルが成功するか、キャンセルが受け入れられるまでに接続処理が終了した場合は<BR>
223                @ref ConnectAsync で渡した @ref nn::os::Event がシグナルし、@ref GetConnectResult でキャンセルされたことを取得できます。
224                @ref Connect 実行中に他スレッドから実行した場合は、@ref Connect の戻り値からキャンセルされたことを取得できます。
225 
226         @return 結果
227         @retval       ResultSuccess                       正常に終了しました。
228         @retval       ResultNotConnecting                 接続処理中ではありません。
229         @retval       ResultAlreadyConnecting             既に接続処理が完了し、接続が確立しています。
230         @retval       上記以外                            上記以外の理由で失敗しました。
231     */
232     Result CancelConnectAsync();
233 
234     /*!
235         @brief 現在接続中のアクセスポイントとの電波強度を取得します。
236                <BR>
237                データ取得時にエラーが発生した時には、LINK_LEVEL_0 を結果として返します。<BR>
238                そのため、LinkLevelを書き換えるなどのエラーハンドリングは特に必要ありません。<BR>
239 
240         @param[out] linkLevel    電波強度 @ref LinkLevel
241 
242         @return 結果
243         @retval       ResultSuccess                       正常に終了しました。
244         @retval       ResultInvalidData                   引数にNULLを指定しました。
245         @retval       上記以外                            上記以外の理由で失敗しました。
246     */
247     Result GetLinkLevel( LinkLevel* linkLevel );
248 
249     /*!
250         @brief 現在接続中のアクセスポイントとの電波強度を取得します。
251                <BR>
252                本APIは内部的に引数指定の @ref GetLinkLevel を呼び出します。<BR>
253                引数指定の @ref GetLinkLevel に失敗した場合は<BR>
254                LINK_LEVEL_0 を結果として返します。<BR>
255 
256         @return 電波強度 @ref LinkLevel
257     */
258     LinkLevel GetLinkLevel();
259 
260     /*!
261         @brief ネットワーク設定1に設定します。
262                <BR>
263                設定内容は即座にNANDに反映されます。<BR>
264                <BR>
265                本関数はデバッグ用関数です。Releaseビルドでは動作しませんのでご注意ください。<BR>
266 
267         @param[in] ssid        アクセスポイントのSSID
268         @param[in] ssidLength  アクセスポイントのSSID長
269         @param[in] securityMode アクセスポイントの暗号化方式
270         @param[in] key         アクセスポイントの暗号化鍵
271         @param[in] keyLen      アクセスポイントの暗号化鍵長
272 
273         @return 結果
274         @retval       ResultSuccess                       正常に終了しました。
275         @retval       ResultOutOfMemory                   メモリの確保に失敗しました。
276         @retval       上記以外                            上記以外の理由で失敗しました。
277     */
278     Result DebugSetNetworkSetting1( const u8 ssid[], u8 ssidLength, SecurityMode securityMode, const u8 key[], u8 keyLen );
279 
280     /*!
281         @brief 自動接続によって確立した接続を切断します。
282                <BR>
283                本関数を呼び出した時に、他のプロセスがインターネット接続を利用していた場合、<BR>
284                @ref GetStatus で取得できるステートがアイドルになることは保障されません。<BR>
285                切断出来たかの確認は戻り値で判断してください。<BR>
286 
287         @return 結果
288         @retval       ResultSuccess                       正常に終了しました。
289         @retval       ResultAlreadyExists                 既に処理中です。
290         @retval       ResultNotConnecting                 接続していません。
291         @retval       上記以外                            上記以外の理由で失敗しました。
292     */
293     Result Close();
294 
295     /*!
296         @brief 非同期で自動接続によって確立した接続を切断します。
297 
298                処理の成功・失敗に関わらず、処理が終了した段階で<BR>
299                引数に指定した @ref nn::os::Event がシグナルします。<BR>
300 
301         @param[in] event       処理の完了を通知する初期化済み @ref nn::os::Event
302 
303         @return 結果
304         @retval       ResultSuccess                       正常に終了しました。
305         @retval       ResultInvalidData                   引数にNULLを指定したか、未初期化のEventを指定しました。
306         @retval       ResultAlreadyExists                 既に処理中です。
307         @retval       上記以外                            上記以外の理由で失敗しました。
308     */
309     Result CloseAsync( os::Event* event );
310 
311     /*!
312         @brief 非同期で自動接続によって確立した接続を切断した際の処理結果を取得します。
313 
314                @ref CloseAsync で接続処理を行った場合、<BR>
315                @ref nn::os::Event がシグナルしたら、この関数を利用して結果を確認してください。<BR>
316 
317         @return 結果
318         @retval       ResultSuccess                       正常に終了しました。
319         @retval       ResultNotConnecting                 接続していません。
320         @retval       上記以外                            上記以外の理由で失敗しました。
321     */
322     Result GetCloseResult();
323 
324     /*!
325         @brief 自動接続で最後に発生したエラーのエラーコードを取得します。
326 
327                エラーコードの詳細については別途資料を参考にしてください。<BR>
328 
329         @param[out] errorCode   エラーコードを書き出す変数
330 
331         @return 結果
332         @retval       ResultSuccess                       正常に終了しました。
333         @retval       ResultInvalidData                   引数にNULLを指定しました。
334         @retval       上記以外                            上記以外の理由で失敗しました。
335     */
336     Result GetLastErrorCode( u32* errorCode );
337 
338     /*!
339         @brief 自動接続で最後に発生したエラーの詳細なエラーコードを取得します。
340 
341                本エラーコードはACライブラリのサポートで利用します。<BR>
342                一般のゲーム開発では使用しないようにしてください。<BR>
343 
344         @param[out] errorCode   エラーコードを書き出す変数
345 
346         @return 結果
347         @retval       ResultSuccess                       正常に終了しました。
348         @retval       ResultInvalidData                   引数にNULLを指定しました。
349         @retval       上記以外                            上記以外の理由で失敗しました。
350     */
351     Result GetLastDetailErrorCode( u32* errorCode );
352 
353     /*!
354         @brief APに接続中かを取得します。
355 
356                本関数は毎ゲームフレーム呼び出すには重い処理です。<BR>
357 
358                本関数は @ref Initialize を呼び出していなくても利用でき、失敗が帰ります。<BR>
359 
360         @return APに接続中かの真偽値
361     */
362     bool IsConnected();
363 
364     /*!
365         @brief 現在接続中のアクセスポイントの種類を取得します。
366 
367         本APIは基本的に参考値として取得することを想定してます。
368         ApTypeの種類はファームウェアアップデートで増減する可能性がありますので、
369         この値を元に処理を分岐する際は else も考慮した実装にしてください。
370 
371         なお、この関数の想定する利用用途は
372         AP_TYPE_NINTENDO_ZONE だった時に @ref GetConnectingNintendoZoneBeaconSubset を呼び出したり、
373         AP_TYPE_HOTSPOT だった時に @ref GetConnectingHotspotSubset を呼び出すことで、
374         インターネット接続中のロケーションを取得することを想定しています。
375 
376         @param[out] apType      アクセスポイントの種類を書き出す変数
377 
378         @return 結果
379         @retval       ResultSuccess                       正常に終了しました。
380         @retval       ResultInvalidData                   引数にNULLを指定しました。
381         @retval       ResultNotConnecting                 ネットワークに接続していません。
382         @retval       上記以外                            上記以外の理由で失敗しました。
383     */
384     Result GetConnectingApType( ApType* apType );
385 
386     /*!
387         @brief 現在接続しているニンテンドーゾーンの情報を取得します。
388 
389         @param[out] beacon      ゾーンビーコンを書き出すポインタ
390 
391         @return 結果
392         @retval       ResultSuccess                       正常に終了しました。
393         @retval       ResultInvalidData                   引数にNULLを指定しました。
394         @retval       ResultNotConnecting                 ネットワークに接続していません。
395         @retval       ResultInvalidLocation               ニンテンドーゾーンに接続していません。
396         @retval       上記以外                            上記以外の理由で失敗しました。
397     */
398     Result GetConnectingNintendoZoneBeaconSubset( NintendoZoneBeaconSubset* beacon );
399 
400     /*!
401         @brief 現在接続しているホットスポットの情報を取得します。
402 
403         @param[out] hotspot      ホットスポットを書き出すポインタ
404 
405         @return 結果
406         @retval       ResultSuccess                       正常に終了しました。
407         @retval       ResultInvalidData                   引数にNULLを指定しました。
408         @retval       ResultNotConnecting                 ネットワークに接続していません。
409         @retval       ResultInvalidLocation               ホットスポットに接続していません。
410         @retval       上記以外                            上記以外の理由で失敗しました。
411     */
412     Result GetConnectingHotspotSubset( HotspotSubset* hotspot );
413 
414     /*!
415         @brief AP切断時に通知される @ref nn::os::Event を設定します。
416 
417         @param[out] event       通知を受ける初期化済み @ref nn::os::Event のポインタ
418 
419         @return 結果
420         @retval       ResultSuccess                       正常に終了しました。
421         @retval       ResultInvalidData                   引数にNULLを指定したか、未初期化のEventを指定しました。
422         @retval       上記以外                            上記以外の理由で失敗しました。
423     */
424     Result RegisterDisconnectEvent(nn::os::Event* event);
425 
426     namespace
427     {
428         const char PORT_NAME_USER[]      = "ac:u";
429     }
430 }
431 }
432 }
433 
434 #endif // __cplusplus
435 
436 // 以下、C 用宣言
437 
438 #include <nn/util/detail/util_CLibImpl.h>
439 
440 /*!
441     @addtogroup   nn_ac   ac
442 
443     @brief        @ref nn::ac の C インタフェースモジュールです。
444 
445     @{
446 */
447 
448 /*!
449 @brief      対応する C++ 関数 @ref nn::ac::CTR::Initialize を参照してください。
450 */
451 NN_EXTERN_C nnResult nnacInitialize(void);
452 
453 /*!
454 @brief      対応する C++ 関数 @ref nn::ac::CTR::Finalize を参照してください。
455 */
456 NN_EXTERN_C nnResult nnacFinalize(void);
457 
458 /*!
459   @brief    対応する C++ 関数 @ref nn::ac::CTR::CreateDefaultConfig を参照してください。
460 */
461 NN_EXTERN_C nnResult nnacCreateDefaultConfig( nnacConfig* config );
462 
463 /*!
464   @brief    対応する C++ 関数 @ref nn::ac::CTR::DebugSetNetworkArea を参照してください。
465 */
466 NN_EXTERN_C nnResult nnacDebugSetNetworkArea( nnacConfig* config, nnacNetworkArea networkArea );
467 
468 /*!
469   @brief    対応する C++ 関数 @ref nn::ac::CTR::Connect を参照してください。
470 */
471 NN_EXTERN_C nnResult nnacConnect( nnacConfig* config );
472 
473 /*!
474   @brief    対応する C++ 関数 @ref nn::ac::CTR::ConnectAsync を参照してください。
475 */
476 NN_EXTERN_C nnResult nnacConnectAsync( nnacConfig* config, nnosEvent* event );
477 
478 /*!
479   @brief    対応する C++ 関数 @ref nn::ac::CTR::CancelConnectAsync を参照してください。
480 */
481 NN_EXTERN_C nnResult nnacCancelConnectAsync(void);
482 
483 /*!
484   @brief    対応する C++ 関数 @ref nn::ac::CTR::GetConnectResult を参照してください。
485 */
486 NN_EXTERN_C nnResult nnacGetConnectResult(void);
487 
488 /*!
489   @brief    対応する C++ 関数 @ref nn::ac::CTR::DebugSetNetworkSetting1 を参照してください。
490 */
491 NN_EXTERN_C nnResult nnacDebugSetNetworkSetting1( const u8 ssid[], u8 ssidLength, nnacSecurityMode securityMode, const u8 key[], u8 keyLen );
492 
493 /*!
494   @brief    対応する C++ 関数 @ref nn::ac::CTR::DebugFlushNetworkSetting を参照してください。
495 */
496 NN_EXTERN_C nnResult nnacDebugFlushNetworkSetting(void);
497 
498 /*!
499   @brief    対応する C++ 関数 @ref nn::ac::CTR::Close を参照してください。
500 */
501 NN_EXTERN_C nnResult nnacClose(void);
502 
503 /*!
504   @brief    対応する C++ 関数 @ref nn::ac::CTR::CloseAsync を参照してください。
505 */
506 NN_EXTERN_C nnResult nnacCloseAsync( nnosEvent* event );
507 
508 /*!
509   @brief    対応する C++ 関数 @ref nn::ac::CTR::GetCloseResult を参照してください。
510 */
511 NN_EXTERN_C nnResult nnacGetCloseResult(void);
512 
513 /*!
514   @brief    対応する C++ 関数 @ref nn::ac::CTR::GetStatus を参照してください。
515 */
516 NN_EXTERN_C nnResult nnacGetStatus( nnacStatus* status );
517 
518 /*!
519   @brief    対応する C++ 関数 @ref nn::ac::CTR::GetLinkLevel を参照してください。
520 */
521 NN_EXTERN_C nnResult nnacGetLinkLevel( nnacLinkLevel* linkLevel );
522 
523 /*!
524   @brief    対応する C++ 関数 @ref nn::ac::CTR::GetLastErrorCode を参照してください。
525 */
526 NN_EXTERN_C nnResult nnacGetLastErrorCode( u32* errorCode );
527 
528 /*!
529   @brief    対応する C++ 関数 @ref nn::ac::CTR::GetLastDetailErrorCode を参照してください。
530 */
531 NN_EXTERN_C nnResult nnacGetLastDetailErrorCode( u32* errorCode );
532 
533 /*!
534   @brief    対応する C++ 関数 @ref nn::ac::CTR::GetConnectingApType を参照してください。
535 */
536 NN_EXTERN_C nnResult nnacGetConnectingApType( nnacApType* apType );
537 
538 /*!
539   @brief    対応する C++ 関数 @ref nn::ac::CTR::GetConnectingNintendoZoneBeaconSubset を参照してください。
540 */
541 NN_EXTERN_C nnResult nnacGetConnectingNintendoZoneBeaconSubset( nnacNintendoZoneBeaconSubset* beacon );
542 
543 /*!
544   @brief    対応する C++ 関数 @ref nn::ac::CTR::GetConnectingHotspotSubset を参照してください。
545 */
546 NN_EXTERN_C nnResult nnacGetConnectingHotspotSubset( nnacHotspotSubset* hotspot );
547 
548 /*!
549   @brief    対応する C++ 関数 @ref nn::ac::CTR::RegisterDisconnectEvent を参照してください。
550 */
551 NN_EXTERN_C nnResult nnacRegisterDisconnectEvent( nnosEvent* event );
552 
553 /*!
554   @brief    対応する C++ 関数 @ref nn::ac::CTR::GetStatusChangeEvent を参照してください。
555 */
556 NN_EXTERN_C nnResult nnacGetStatusChangeEvent( nnosEvent* event );
557 
558 /*!
559     @}
560 */
561 
562 #endif  // ifndef NN_AC_CTR_AC_API_H_
563