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-30#$
14   $Rev: 32066 $
15   $Author: niwa_kazutomo $
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       ResultProcessing                    接続処理がまだ完了していません。
196         @retval       ResultNotFoundAccessPoint           接続できるアクセスポイントが見つかりませんでした。
197         @retval       ResultCanceled                      接続処理中にキャンセルされました。
198         @retval       ResultAlreadyConnectUnsupportAp     利用できないAPに接続中です。
199         @retval       ResultWifiOff                       フライトモードの為、ネットワークを利用できません。
200         @retval       ResultFailedScan                    スキャンに失敗しました。
201         @retval       ResultConflictIpAddress             IPアドレスが衝突しています。
202         @retval       ResultFailedDhcp                    DHCPに失敗しました。
203         @retval       ResultInvalidDns                    名前解決に失敗しました。
204         @retval       ResultInvalidProxy                  プロキシに失敗しました。
205         @retval       ResultFailedConnTest                インターネット接続テストに失敗しました。
206         @retval       ResultFailedHotspotAuthentication   ホットスポット認証に失敗しました。
207         @retval       ResultFailedHotspotConntest         ホットスポット認証通過後にインターネット接続テストに失敗しました。
208         @retval       ResultOutOfMemory                   メモリの確保に失敗しました。
209         @retval       ResultUnsupportAuthAlgorithm        非対応の暗号化方式のアクセスポイントだった為、接続できませんでした。
210         @retval       ResultDenyUsbAp                     ニンテンドーWi-Fi USBコネクタにアクセス拒否されました。
211         @retval       ResultUnsupportPlace                ネットワークを利用できない場所のため接続できませんでした。
212         @retval       上記以外                            上記以外の理由で失敗しました。
213     */
214     Result GetConnectResult();
215 
216     /*!
217         @brief 非同期で自動接続処理中の場合、処理をキャンセルします。
218 
219                キャンセルしたときには、Result にはキャンセルされたことを示す値が返ります。<BR>
220                @ref GetLastErrorCode で取得できるエラーコードは、キャンセルされたタイミングで失敗した相当のエラーコードが返ります。<BR>
221                キャンセルされたかの確認には Result の値を使うようにしてください。<BR>
222                <BR>
223                キャンセルが成功するか、キャンセルが受け入れられるまでに接続処理が終了した場合は<BR>
224                @ref ConnectAsync で渡した @ref nn::os::Event がシグナルし、@ref GetConnectResult でキャンセルされたことを取得できます。
225                @ref Connect 実行中に他スレッドから実行した場合は、@ref Connect の戻り値からキャンセルされたことを取得できます。
226 
227         @return 結果
228         @retval       ResultSuccess                       正常に終了しました。
229         @retval       ResultNotConnecting                 接続処理中ではありません。
230         @retval       ResultAlreadyConnecting             既に接続処理が完了し、接続が確立しています。
231         @retval       上記以外                            上記以外の理由で失敗しました。
232     */
233     Result CancelConnectAsync();
234 
235     /*!
236         @brief 現在接続中のアクセスポイントとの電波強度を取得します。
237                <BR>
238                データ取得時にエラーが発生した時には、LINK_LEVEL_0 を結果として返します。<BR>
239                そのため、LinkLevelを書き換えるなどのエラーハンドリングは特に必要ありません。<BR>
240 
241         @param[out] linkLevel    電波強度 @ref LinkLevel
242 
243         @return 結果
244         @retval       ResultSuccess                       正常に終了しました。
245         @retval       ResultInvalidData                   引数にNULLを指定しました。
246         @retval       上記以外                            上記以外の理由で失敗しました。
247     */
248     Result GetLinkLevel( LinkLevel* linkLevel );
249 
250     /*!
251         @brief 現在接続中のアクセスポイントとの電波強度を取得します。
252                <BR>
253                本APIは内部的に引数指定の @ref GetLinkLevel を呼び出します。<BR>
254                引数指定の @ref GetLinkLevel に失敗した場合は<BR>
255                LINK_LEVEL_0 を結果として返します。<BR>
256 
257         @return 電波強度 @ref LinkLevel
258     */
259     LinkLevel GetLinkLevel();
260 
261     /*!
262         @brief ネットワーク設定1に設定します。
263                <BR>
264                設定内容は即座にNANDに反映されます。<BR>
265                <BR>
266                本関数はデバッグ用関数です。Releaseビルドでは動作しませんのでご注意ください。<BR>
267 
268         @param[in] ssid        アクセスポイントのSSID
269         @param[in] ssidLength  アクセスポイントのSSID長
270         @param[in] securityMode アクセスポイントの暗号化方式
271         @param[in] key         アクセスポイントの暗号化鍵
272         @param[in] keyLen      アクセスポイントの暗号化鍵長
273 
274         @return 結果
275         @retval       ResultSuccess                       正常に終了しました。
276         @retval       ResultOutOfMemory                   メモリの確保に失敗しました。
277         @retval       上記以外                            上記以外の理由で失敗しました。
278     */
279     Result DebugSetNetworkSetting1( const u8 ssid[], u8 ssidLength, SecurityMode securityMode, const u8 key[], u8 keyLen );
280 
281     /*!
282         @brief 自動接続によって確立した接続を切断します。
283 
284         @return 結果
285         @retval       ResultSuccess                       正常に終了しました。
286         @retval       ResultAlreadyExists                 既に処理中です。
287         @retval       ResultNotConnecting                 接続していません。
288         @retval       上記以外                            上記以外の理由で失敗しました。
289     */
290     Result Close();
291 
292     /*!
293         @brief 非同期で自動接続によって確立した接続を切断します。
294 
295                処理の成功・失敗に関わらず、処理が終了した段階で<BR>
296                引数に指定した @ref nn::os::Event がシグナルします。<BR>
297 
298         @param[in] event       処理の完了を通知する初期化済み @ref nn::os::Event
299 
300         @return 結果
301         @retval       ResultSuccess                       正常に終了しました。
302         @retval       ResultInvalidData                   引数にNULLを指定したか、未初期化のEventを指定しました。
303         @retval       ResultAlreadyExists                 既に処理中です。
304         @retval       上記以外                            上記以外の理由で失敗しました。
305     */
306     Result CloseAsync( os::Event* event );
307 
308     /*!
309         @brief 非同期で自動接続によって確立した接続を切断した際の処理結果を取得します。
310 
311                @ref CloseAsync で接続処理を行った場合、<BR>
312                @ref nn::os::Event がシグナルしたら、この関数を利用して結果を確認してください。<BR>
313 
314         @return 結果
315         @retval       ResultSuccess                       正常に終了しました。
316         @retval       ResultProcessing                    切断処理がまだ完了していません。
317         @retval       ResultNotConnecting                 接続していません。
318         @retval       上記以外                            上記以外の理由で失敗しました。
319     */
320     Result GetCloseResult();
321 
322     /*!
323         @brief 自動接続で最後に発生したエラーのエラーコードを取得します。
324 
325                エラーコードの詳細については別途資料を参考にしてください。<BR>
326 
327         @param[out] errorCode   エラーコードを書き出す変数
328 
329         @return 結果
330         @retval       ResultSuccess                       正常に終了しました。
331         @retval       ResultInvalidData                   引数にNULLを指定しました。
332         @retval       上記以外                            上記以外の理由で失敗しました。
333     */
334     Result GetLastErrorCode( u32* errorCode );
335 
336     /*!
337         @brief 自動接続で最後に発生したエラーの詳細なエラーコードを取得します。
338 
339                本エラーコードはACライブラリのサポートで利用します。<BR>
340                一般のゲーム開発では使用しないようにしてください。<BR>
341 
342         @param[out] errorCode   エラーコードを書き出す変数
343 
344         @return 結果
345         @retval       ResultSuccess                       正常に終了しました。
346         @retval       ResultInvalidData                   引数にNULLを指定しました。
347         @retval       上記以外                            上記以外の理由で失敗しました。
348     */
349     Result GetLastDetailErrorCode( u32* errorCode );
350 
351     /*!
352         @brief APに接続中かを取得します。
353 
354                本関数は毎ゲームフレーム呼び出すには重い処理です。<BR>
355 
356                本関数は @ref Initialize を呼び出していなくても利用でき、失敗が帰ります。<BR>
357 
358         @return APに接続中かの真偽値
359     */
360     bool IsConnected();
361 
362     /*!
363         @brief 現在接続中のアクセスポイントの種類を取得します。
364 
365         本APIは基本的に参考値として取得することを想定してます。
366         ApTypeの種類はファームウェアアップデートで増減する可能性がありますので、
367         この値を元に処理を分岐する際は else も考慮した実装にしてください。
368 
369         なお、この関数の想定する利用用途は
370         AP_TYPE_NINTENDO_ZONE だった時に @ref GetConnectingNintendoZoneBeaconSubset を呼び出したり、
371         AP_TYPE_HOTSPOT だった時に @ref GetConnectingHotspotSubset を呼び出すことで、
372         インターネット接続中のロケーションを取得することを想定しています。
373 
374         @param[out] apType      アクセスポイントの種類を書き出す変数
375 
376         @return 結果
377         @retval       ResultSuccess                       正常に終了しました。
378         @retval       ResultInvalidData                   引数にNULLを指定しました。
379         @retval       ResultNotConnecting                 ネットワークに接続していません。
380         @retval       上記以外                            上記以外の理由で失敗しました。
381     */
382     Result GetConnectingApType( ApType* apType );
383 
384     /*!
385         @brief 現在接続しているニンテンドーゾーンの情報を取得します。
386 
387         @param[out] beacon      ゾーンビーコンを書き出すポインタ
388 
389         @return 結果
390         @retval       ResultSuccess                       正常に終了しました。
391         @retval       ResultInvalidData                   引数にNULLを指定しました。
392         @retval       ResultNotConnecting                 ネットワークに接続していません。
393         @retval       ResultInvalidLocation               ニンテンドーゾーンに接続していません。
394         @retval       上記以外                            上記以外の理由で失敗しました。
395     */
396     Result GetConnectingNintendoZoneBeaconSubset( NintendoZoneBeaconSubset* beacon );
397 
398     /*!
399         @brief 現在接続しているホットスポットの情報を取得します。
400 
401         @param[out] hotspot      ホットスポットを書き出すポインタ
402 
403         @return 結果
404         @retval       ResultSuccess                       正常に終了しました。
405         @retval       ResultInvalidData                   引数にNULLを指定しました。
406         @retval       ResultNotConnecting                 ネットワークに接続していません。
407         @retval       ResultInvalidLocation               ホットスポットに接続していません。
408         @retval       上記以外                            上記以外の理由で失敗しました。
409     */
410     Result GetConnectingHotspotSubset( HotspotSubset* hotspot );
411 
412     /*!
413         @brief AP切断時に通知される @ref nn::os::Event を設定します。
414 
415         @param[out] event       通知を受ける初期化済み @ref nn::os::Event のポインタ
416 
417         @return 結果
418         @retval       ResultSuccess                       正常に終了しました。
419         @retval       ResultInvalidData                   引数にNULLを指定したか、未初期化のEventを指定しました。
420         @retval       上記以外                            上記以外の理由で失敗しました。
421     */
422     Result RegisterDisconnectEvent(nn::os::Event* event);
423 
424     namespace
425     {
426         const char PORT_NAME_USER[]      = "ac:u";
427     }
428 }
429 }
430 }
431 
432 #endif // __cplusplus
433 
434 // 以下、C 用宣言
435 
436 #include <nn/util/detail/util_CLibImpl.h>
437 
438 /*!
439     @addtogroup   nn_ac   ac
440 
441     @brief        @ref nn::ac の C インタフェースモジュールです。
442 
443     @{
444 */
445 
446 /*!
447 @brief      対応する C++ 関数 @ref nn::ac::CTR::Initialize を参照してください。
448 */
449 NN_EXTERN_C nnResult nnacInitialize(void);
450 
451 /*!
452 @brief      対応する C++ 関数 @ref nn::ac::CTR::Finalize を参照してください。
453 */
454 NN_EXTERN_C nnResult nnacFinalize(void);
455 
456 /*!
457   @brief    対応する C++ 関数 @ref nn::ac::CTR::CreateDefaultConfig を参照してください。
458 */
459 NN_EXTERN_C nnResult nnacCreateDefaultConfig( nnacConfig* config );
460 
461 /*!
462   @brief    対応する C++ 関数 @ref nn::ac::CTR::DebugSetNetworkArea を参照してください。
463 */
464 NN_EXTERN_C nnResult nnacDebugSetNetworkArea( nnacConfig* config, nnacNetworkArea networkArea );
465 
466 /*!
467   @brief    対応する C++ 関数 @ref nn::ac::CTR::Connect を参照してください。
468 */
469 NN_EXTERN_C nnResult nnacConnect( nnacConfig* config );
470 
471 /*!
472   @brief    対応する C++ 関数 @ref nn::ac::CTR::ConnectAsync を参照してください。
473 */
474 NN_EXTERN_C nnResult nnacConnectAsync( nnacConfig* config, nnosEvent* event );
475 
476 /*!
477   @brief    対応する C++ 関数 @ref nn::ac::CTR::CancelConnectAsync を参照してください。
478 */
479 NN_EXTERN_C nnResult nnacCancelConnectAsync(void);
480 
481 /*!
482   @brief    対応する C++ 関数 @ref nn::ac::CTR::GetConnectResult を参照してください。
483 */
484 NN_EXTERN_C nnResult nnacGetConnectResult(void);
485 
486 /*!
487   @brief    対応する C++ 関数 @ref nn::ac::CTR::DebugSetNetworkSetting1 を参照してください。
488 */
489 NN_EXTERN_C nnResult nnacDebugSetNetworkSetting1( const u8 ssid[], u8 ssidLength, nnacSecurityMode securityMode, const u8 key[], u8 keyLen );
490 
491 /*!
492   @brief    対応する C++ 関数 @ref nn::ac::CTR::DebugFlushNetworkSetting を参照してください。
493 */
494 NN_EXTERN_C nnResult nnacDebugFlushNetworkSetting(void);
495 
496 /*!
497   @brief    対応する C++ 関数 @ref nn::ac::CTR::Close を参照してください。
498 */
499 NN_EXTERN_C nnResult nnacClose(void);
500 
501 /*!
502   @brief    対応する C++ 関数 @ref nn::ac::CTR::CloseAsync を参照してください。
503 */
504 NN_EXTERN_C nnResult nnacCloseAsync( nnosEvent* event );
505 
506 /*!
507   @brief    対応する C++ 関数 @ref nn::ac::CTR::GetCloseResult を参照してください。
508 */
509 NN_EXTERN_C nnResult nnacGetCloseResult(void);
510 
511 /*!
512   @brief    対応する C++ 関数 @ref nn::ac::CTR::GetLinkLevel を参照してください。
513 */
514 NN_EXTERN_C nnResult nnacGetLinkLevel( nnacLinkLevel* linkLevel );
515 
516 /*!
517   @brief    対応する C++ 関数 @ref nn::ac::CTR::GetLastErrorCode を参照してください。
518 */
519 NN_EXTERN_C nnResult nnacGetLastErrorCode( u32* errorCode );
520 
521 /*!
522   @brief    対応する C++ 関数 @ref nn::ac::CTR::GetLastDetailErrorCode を参照してください。
523 */
524 NN_EXTERN_C nnResult nnacGetLastDetailErrorCode( u32* errorCode );
525 
526 /*!
527   @brief    対応する C++ 関数 @ref nn::ac::CTR::GetConnectingApType を参照してください。
528 */
529 NN_EXTERN_C nnResult nnacGetConnectingApType( nnacApType* apType );
530 
531 /*!
532   @brief    対応する C++ 関数 @ref nn::ac::CTR::GetConnectingNintendoZoneBeaconSubset を参照してください。
533 */
534 NN_EXTERN_C nnResult nnacGetConnectingNintendoZoneBeaconSubset( nnacNintendoZoneBeaconSubset* beacon );
535 
536 /*!
537   @brief    対応する C++ 関数 @ref nn::ac::CTR::GetConnectingHotspotSubset を参照してください。
538 */
539 NN_EXTERN_C nnResult nnacGetConnectingHotspotSubset( nnacHotspotSubset* hotspot );
540 
541 /*!
542   @brief    対応する C++ 関数 @ref nn::ac::CTR::RegisterDisconnectEvent を参照してください。
543 */
544 NN_EXTERN_C nnResult nnacRegisterDisconnectEvent( nnosEvent* event );
545 
546 /*!
547     @}
548 */
549 
550 #endif  // ifndef NN_AC_CTR_AC_API_H_
551