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