/*---------------------------------------------------------------------------* Project: Horizon File: friends_Api.h Copyright 2009 Nintendo. All rights reserved. These coded instructions, statements, and computer programs contain proprietary information of Nintendo of America Inc. and/or Nintendo Company Ltd., and are protected by Federal copyright law. They may not be disclosed to third parties or copied or duplicated in any form, in whole or in part, without the prior written consent of Nintendo. $Rev: 25983 $ *---------------------------------------------------------------------------*/ #ifndef NN_FRIENDS_CTR_FRIENDS_API_H_ #define NN_FRIENDS_CTR_FRIENDS_API_H_ /*! @file @brief Friend & Presence機能に関する API の宣言 */ #include #include #include #ifdef __cplusplus namespace nn { namespace friends { namespace CTR { namespace detail { // ライブラリの初期化・終了 Result Initialize(); Result Finalize(); // ライブラリ状態確認 bool IsInitialized(); bool HasLoggedIn(); // 接続管理 Result Login( os::Event* pEvent ); Result Logout( os::Event* pEvent ); // 自分情報取得(ローカル) PrincipalId GetMyPrincipalId(); LocalFriendCode GetMyLocalFriendCode(); Result GetMyFriendKey( FriendKey* pFriendKey ); Result GetMyPreference( bool* pIsPublicMode, bool* pIsShowGameName, bool* pIsShowPlayedGame ); Result GetMyProfile( Profile* pProfile ); Result GetMyPresence( MyPresence* pMyPresence ); Result GetMyMii( MiiInformation* pMiiInformation ); // 友達情報取得 Result GetFriendKeyList( FriendKey* pFriendKeyList, size_t* pNum, size_t offset, size_t size ); Result GetFriendPresence( FriendPresence* pFriendPresenceList, const FriendKey* pFriendKeyList, size_t size ); Result GetFriendPresence( FriendPresence* pFriendPresenceList, const PrincipalId* pPrincipalIdList, size_t size ); Result GetFriendMii( MiiInformation* pMiiInformationList, const FriendKey* pFriendKeyList, size_t size ); Result GetFriendMii( MiiInformation* pMiiInformationList, const PrincipalId* pPrincipalIdList, size_t size ); Result GetFriendProfile( Profile* pProfileList, const FriendKey* pFriendKeyList, size_t size ); Result GetFriendProfile( Profile* pProfileList, const PrincipalId* pPrincipalIdList, size_t size ); Result GetFriendAttributeFlags( bit32* pAttributeFlagsList, const FriendKey* pFriendKeyList, size_t size ); Result GetFriendAttributeFlags( bit32* pAttributeFlagsList, const PrincipalId* pPrincipalIdList, size_t size ); bool IsIncludedInFriendList( LocalFriendCode localFriendCode ); // 自分情報更新 Result UpdateGameModeDescription( const char16 description[MODE_DESCRIPTION_SIZE] ); Result UpdateGameMode( const GameMode& gameMode, const char16 description[MODE_DESCRIPTION_SIZE] ); // 送信 Result SendInvitation( const FriendKey* pFriendKeyList, size_t size ); Result SendInvitation( const PrincipalId* principalIdList, size_t size ); // 通知内容取得 Result AttachToEventNotification( nn::os::Event* pEvent ); u32 GetEventNotification( EventNotification* pEventNotificationList, size_t size ); Result GetLastResponseResult(); // フレンドコード u64 PrincipalIdToFriendCode( PrincipalId principalId ); PrincipalId FriendCodeToPrincipalId( u64 friendCode ); void FriendCodeToFriendKey( FriendKey* pFriendKey, u64 friendCode ); bool IsValidFriendCode( u64 friendCode ); // エラーコード取得 u32 ResultToErrorCode( const Result& result ); } // TODO 移動 namespace { static const char PORT_NAME_USER[] = "frd:u"; } /*------------------------------------------------------------------- ライブラリの初期化/終了 -------------------------------------------------------------------*/ /*! @brief FRIENDS ライブラリの初期化を行い、プレゼンス機能を使用可能な状態にします。 @return 処理の結果が返ってきます。
*/ Result Initialize(); inline Result Initialize() { return detail::Initialize(); } /*! @brief FRIENDS ライブラリを終了します。 @return 処理の結果が返ってきます。
*/ Result Finalize(); inline Result Finalize() { return detail::Finalize(); } /*! @brief FRIENDS ライブラリが初期化済みか否かを確認します。 @return FRIENDS ライブラリが初期化済みであれば true 、未初期化であれば false が返ってきます。 */ bool IsInitialized(); inline bool IsInitialized() { return detail::IsInitialized(); } /*! @brief ログイン状態を確認します。 自分が @ref nn::friends::CTR::Login 関数を呼んだ上でオンライン状態になっているかを確認します。 @return 自分がログイン中であれば true 、ログインしていなければ false が返ってきます。 この関数の結果が true であれば必ずオンライン状態ですが、結果が false であってもオフライン状態とは限りません。 */ bool HasLoggedIn(); inline bool HasLoggedIn() { return detail::HasLoggedIn(); } /*! @brief サーバへのログインを要求します。 この関数が成功で返った場合は非同期処理が発生し、非同期処理が完了した時点で引数に指定した @ref nn::os::Event がシグナルされます。 非同期処理の結果は @ref nn::friends::CTR::GetLastResponseResult で取得できます。 この関数が失敗で返った場合は、非同期処理が発生することはありません。

バックグラウンドでサーバからの切断処理が走っていた場合、この関数は一時的に @ref nn::friends::CTR::ResultTemporarilyBusy を返します。 その場合は比較的短時間が経過した後に再試行することで成功する可能性があります。

すでにログインしている状態でコールしても成功します。その場合、非同期処理は瞬時に成功で完了します。

非同期処理が成功した場合、必ずオンライン状態になります。 @param[in] pEvent 非同期処理の完了を通知する @ref nn::os::Event へのポインタを指定します。事前に @ref nn::os::Event::Initialize で初期化しておいてください。 @return 処理の結果が返ってきます。 */ Result Login( os::Event* pEvent ); inline Result Login( os::Event* pEvent ) { return detail::Login( pEvent ); } /*! @brief サーバへのログイン要求を撤回します。 この関数が成功で返った場合は非同期処理が発生し、非同期処理が完了した時点で引数に指定した @ref nn::os::Event がシグナルされます。 非同期処理の結果は @ref nn::friends::CTR::GetLastResponseResult で取得できます。 この関数が失敗で返った場合は、非同期処理が発生することはありません。

バックグラウンドでサーバへの接続処理が走っていた場合、この関数は一時的に @ref nn::friends::CTR::ResultTemporarilyBusy を返します。 その場合は比較的短時間が経過した後に再試行することで成功する可能性があります。

すでにログアウトしている状態でコールしても成功します。その場合、非同期処理は瞬時に成功で完了します。

非同期処理が成功しても、オフライン状態であることは保証されません。

何らかの要因によりサーバとの接続が切断された場合、この関数をコール済みの状態へ暗黙的に遷移します。 @param[out] pEvent 非同期処理の完了を通知する @ref nn::os::Event へのポインタを指定します。事前に @ref nn::os::Event::Initialize で初期化しておいてください。 @return 処理の結果が返ってきます。 */ Result Logout( os::Event* pEvent ); inline Result Logout( os::Event* pEvent ) { return detail::Logout( pEvent ); } /*! @brief 自分のプリンシパル ID を取得します。 @return 自分のプリンシパル ID が返ってきます。

ライブラリが未初期化であったり、まだ一度もサーバに接続したことがないと @ref nn::friends::CTR::INVALID_PRINCIPAL_ID が返ってきます。 */ PrincipalId GetMyPrincipalId(); inline PrincipalId GetMyPrincipalId() { return detail::GetMyPrincipalId(); } /*! @brief 自分のローカルフレンドコードを取得します。 @return 自分のローカルフレンドコードが返ってきます。
ライブラリが未初期化だと @ref nn::friends::CTR::INVALID_LOCAL_FRIEND_CODE が返ってきます。 */ LocalFriendCode GetMyLocalFriendCode(); inline LocalFriendCode GetMyLocalFriendCode() { return detail::GetMyLocalFriendCode(); } /*! @brief 自分のフレンドキーを取得します。 ライブラリが未初期化であったり、まだ一度もサーバに接続したことがないと、プリンシパル ID の値は @ref nn::friends::CTR::INVALID_PRINCIPAL_ID になります。 ライブラリが未初期化だと、ローカルフレンドコードの値は @ref nn::friends::CTR::INVALID_LOCAL_FRIEND_CODE になります。 @param[out] pFriendKey フレンドキーを格納する構造体へのポインタを指定します。 @return 処理の結果が返ってきます。
*/ Result GetMyFriendKey( FriendKey* pFriendKey ); inline Result GetMyFriendKey( FriendKey* pFriendKey ) { return detail::GetMyFriendKey( pFriendKey ); } /*! @brief 自分の情報の公開レベルを取得します。 @param[out] pIsPublicMode 公開モードを格納するバッファへのポインタを指定します。 @param[out] pIsShowGameName 遊んでいるゲームを公開するかを格納するバッファへのポインタを指定します。 @param[out] pIsShowPlayedGame ゲーム履歴を公開するかを格納するバッファへのポインタを指定します。 @return 処理の結果が返ってきます。 */ Result GetMyPreference( bool* pIsPublicMode, bool* pIsShowGameName, bool* pIsShowPlayedGame ); inline Result GetMyPreference( bool* pIsPublicMode, bool* pIsShowGameName, bool* pIsShowPlayedGame ) { return detail::GetMyPreference( pIsPublicMode, pIsShowGameName, pIsShowPlayedGame ); } /*! @brief 自分のプロフィール情報を取得します。 @param[out] pProfile 自分のプロフィール情報を格納する構造体へのポインタを指定します。 @return 処理の結果が返ってきます。 */ Result GetMyProfile( Profile* pProfile ); inline Result GetMyProfile( Profile* pProfile ) { return detail::GetMyProfile( pProfile ); } /*! @brief 自分のプレゼンス情報を取得します。 @param[out] pMyPresence 自分のプレゼンス情報を格納する構造体へのポインタを指定します。 @return 処理の結果が返ってきます。 */ Result GetMyPresence( MyPresence* pMyPresence ); inline Result GetMyPresence( MyPresence* pMyPresence ) { return detail::GetMyPresence( pMyPresence ); } /*! @brief 自分の Mii 情報を取得します。 @param[out] pMiiInformation 自分の Mii 情報を格納する構造体へのポインタを指定します。 @return 処理の結果が返ってきます。 */ Result GetMyMii( MiiInformation* pMiiInformation ); inline Result GetMyMii( MiiInformation* pMiiInformation ) { return detail::GetMyMii( pMiiInformation ); } /*! @brief フレンドリストに登録されたのフレンドキーのリストを取得します。 取得されるフレンドキーには、まだフレンド関係が成立していないものも含まれます。 @param[out] pFriendKeyList 取得したフレンドキーを格納するバッファへのポインタを指定します。 @param[out] num 実際に取得された数を格納するバッファへのポインタを指定します。 @param[in] offset 取得を開始するフレンドキーのインデックスを指定します。 @param[in] size 取得するフレンドキーの最大数(バッファの要素数)を指定します。 @return 処理の結果が返ってきます。 */ Result GetFriendKeyList( FriendKey* pFriendKeyList, size_t* pNum, size_t offset = 0, size_t size = FRIEND_LIST_SIZE ); inline Result GetFriendKeyList( FriendKey* pFriendKeyList, size_t* pNum, size_t offset, size_t size) { return detail::GetFriendKeyList( pFriendKeyList, pNum, offset, size ); } /*! @brief フレンドプレゼンスのリストを取得します。 引数で与えられたキーに対応するフレンドが存在しないと、空のプレゼンスが返されます。 @param[out] pFriendPresenceList 取得したフレンドプレゼンスを格納するバッファへのポインタを指定します。 @param[in] pFriendKeyList フレンドキーのリストへのポインタを指定します。 @param[in] size フレンドキーのリストの要素数(バッファの要素数)を指定します。 @return 処理の結果が返ってきます。 */ Result GetFriendPresence( FriendPresence* pFriendPresenceList, const FriendKey* pFriendKeyList, size_t size = 1 ); inline Result GetFriendPresence( FriendPresence* pFriendPresenceList, const FriendKey* pFriendKeyList, size_t size) { return detail::GetFriendPresence( pFriendPresenceList, pFriendKeyList, size ); } /*! @brief フレンドプレゼンスのリストを取得します。 引数で与えられたキーに対応するフレンドが存在しないと、空のプレゼンスが返されます。 @param[out] pFriendPresenceList 取得したフレンドプレゼンスを格納するバッファへのポインタを指定します。 @param[in] pPrincipalIdList プリンシパル ID のリストへのポインタを指定します。 @param[in] size プリンシパル ID のリストの要素数(バッファの要素数)を指定します。 @return 処理の結果が返ってきます。 */ Result GetFriendPresence( FriendPresence* pFriendPresenceList, const PrincipalId* pPrincipalIdList, size_t size = 1 ); inline Result GetFriendPresence( FriendPresence* pFriendPresenceList, const PrincipalId* pPrincipalIdList, size_t size) { return detail::GetFriendPresence( pFriendPresenceList, pPrincipalIdList, size ); } /*! @brief フレンドの Mii 情報のリストを取得します。 引数で与えられたキーに対応するフレンドが存在しないと、空の Mii 情報が返されます。 @param[out] pMiiInformationList 取得した Mii 情報を格納するバッファへのポインタを指定します。 @param[in] pFriendKeyList フレンドキーのリストへのポインタを指定します。 @param[in] size フレンドキーのリストの要素数(バッファの要素数)を指定します。 @return 処理の結果が返ってきます。 */ Result GetFriendMii( MiiInformation* pMiiInformationList, const FriendKey* pFriendKeyList, size_t size = 1 ); inline Result GetFriendMii( MiiInformation* pMiiInformationList, const FriendKey* pFriendKeyList, size_t size) { return detail::GetFriendMii( pMiiInformationList, pFriendKeyList, size ); } /*! @brief フレンドの Mii 情報のリストを取得します。 引数で与えられたキーに対応するフレンドが存在しないと、空の Mii 情報が返されます。 @param[out] pMiiInformationList 取得した Mii 情報を格納するバッファへのポインタを指定します。 @param[in] pPrincipalIdList プリンシパル ID のリストへのポインタを指定します。 @param[in] size プリンシパル ID のリストの要素数(バッファの要素数)を指定します。 @return 処理の結果が返ってきます。 */ Result GetFriendMii( MiiInformation* pMiiInformationList, const PrincipalId* pPrincipalIdList, size_t size = 1); inline Result GetFriendMii( MiiInformation* pMiiInformationList, const PrincipalId* pPrincipalIdList, size_t size) { return detail::GetFriendMii( pMiiInformationList, pPrincipalIdList, size ); } /*! @brief フレンドのプロフィール情報のリストを取得します。 引数で与えられたキーに対応するフレンドが存在しないと、空のプロフィール情報が返されます。 @param[out] pProfileList 取得したプロフィール情報を格納するバッファへのポインタを指定します。 @param[in] pFriendKeyList フレンドキーのリストへのポインタを指定します。 @param[in] size フレンドキーのリストの要素数(バッファの要素数)を指定します。 @return 処理の結果が返ってきます。 */ Result GetFriendProfile( Profile* pProfileList, const FriendKey* pFriendKeyList, size_t size = 1 ); inline Result GetFriendProfile( Profile* pProfileList, const FriendKey* pFriendKeyList, size_t size) { return detail::GetFriendProfile( pProfileList, pFriendKeyList, size ); } /*! @brief フレンドのプロフィール情報のリストを取得します。 引数で与えられたキーに対応するフレンドが存在しないと、空のプロフィール情報が返されます。 @param[out] pProfileList 取得したプロフィール情報を格納するバッファへのポインタを指定します。 @param[in] pPrincipalIdList プリンシパル ID のリストへのポインタを指定します。 @param[in] size プリンシパル ID のリストの要素数(バッファの要素数)を指定します。 @return 処理の結果が返ってきます。 */ Result GetFriendProfile( Profile* pProfileList, const PrincipalId* pPrincipalIdList, size_t size = 1 ); inline Result GetFriendProfile( Profile* pProfileList, const PrincipalId* pPrincipalIdList, size_t size) { return detail::GetFriendProfile( pProfileList, pPrincipalIdList, size ); } /*! @brief フレンドの関係のリストを取得します。 フレンド関係は、属性のビットの OR であらわされます。 一度でもフレンド関係が成立したことがあるフレンドは @ref nn::friends::CTR::ATTRIBUTE_FLAG_ESTABLISHED ビットが 1 になります。 @param[out] pAttributeFlagsList 取得した関係情報を格納するバッファへのポインタを指定します。 @param[in] pFriendKeyList フレンドキーのリストへのポインタを指定します。 @param[in] size フレンドキーのリストの要素数(バッファの要素数)を指定します。 @return 処理の結果が返ってきます。 */ Result GetFriendAttributeFlags( bit32* pAttributeFlagsList, const FriendKey* pFriendKeyList, size_t size = 1 ); inline Result GetFriendAttributeFlags( bit32* pAttributeFlagsList, const FriendKey* pFriendKeyList, size_t size) { return detail::GetFriendAttributeFlags( pAttributeFlagsList, pFriendKeyList, size ); } /*! @brief フレンドの関係のリストを取得します。 フレンド関係は、属性のビットの OR であらわされます。 一度でもフレンド関係が成立したことがあるフレンドは @ref nn::friends::CTR::ATTRIBUTE_FLAG_ESTABLISHED ビットが 1 になります。 @param[out] pAttributeFlagsList 取得した関係情報を格納するバッファへのポインタを指定します。 @param[in] pPrincipalIdList プリンシパル ID のリストへのポインタを指定します。 @param[in] size プリンシパル ID のリストの要素数(バッファの要素数)を指定します。 @return 処理の結果が返ってきます。 */ Result GetFriendAttributeFlags( bit32* pAttributeFlagsList, const PrincipalId* pPrincipalIdList, size_t size = 1 ); inline Result GetFriendAttributeFlags( bit32* pAttributeFlagsList, const PrincipalId* pPrincipalIdList, size_t size) { return detail::GetFriendAttributeFlags( pAttributeFlagsList, pPrincipalIdList, size ); } /*! @brief 指定したローカルフレンドコードがフレンドリストに存在するかを確認します @param[in] localFriendCode チェックするローカルフレンドコードを指定します。 @return 指定したローカルフレンドコードがフレンドリストに存在すれば true 、しなければ false が返ります。 */ bool IsIncludedInFriendList( LocalFriendCode localFriendCode ); inline bool IsIncludedInFriendList( LocalFriendCode localFriendCode ) { return detail::IsIncludedInFriendList( localFriendCode ); } /*! @brief ゲームモード説明文字列を更新します。 @param[in] description ゲームモード説明文字列を指定します。 @return 処理の結果が返ってきます。 */ Result UpdateGameModeDescription( const char16 description[MODE_DESCRIPTION_SIZE] ); inline Result UpdateGameModeDescription( const char16 description[MODE_DESCRIPTION_SIZE] ) { return detail::UpdateGameModeDescription( description ); } /*! @brief ゲームモードを更新します。 @param[in] gameMode ゲームモード構造体を指定します。 @param[in] description ゲームモード説明文字列を指定します。 @return 処理の結果が返ってきます。 */ Result UpdateGameMode( const GameMode& gameMode, const char16 description[MODE_DESCRIPTION_SIZE] ); inline Result UpdateGameMode( const GameMode& gameMode, const char16 description[MODE_DESCRIPTION_SIZE] ) { return detail::UpdateGameMode( gameMode, description ); } /*! @brief フレンドにおさそいメッセージを送信します。 この関数を使用するには、事前に @ref nn::friends::CTR::Login を使用してログイン状態になっている必要があります。 @param[in] pFriendKeyList フレンドキーのリストへのポインタを指定します。 @param[in] size フレンドキーのリストの要素数を指定します。 @return 処理の結果が返ってきます。 */ Result SendInvitation( const FriendKey* pFriendKeyList, size_t size = 1 ); inline Result SendInvitation( const FriendKey* pFriendKeyList, size_t size) { return detail::SendInvitation( pFriendKeyList, size ); } /*! @brief フレンドにおさそいメッセージを送信します。 この関数を使用するには、事前に @ref nn::friends::CTR::Login を使用してログイン状態になっている必要があります。 @param[in] pPrincipalIdList プリンシパル ID のリストへのポインタを指定します。 @param[in] size プリンシパル ID のリストの要素数を指定します。 @return 処理の結果が返ってきます。 */ Result SendInvitation( const PrincipalId* pPrincipalIdList, size_t size = 1 ); inline Result SendInvitation( const PrincipalId* pPrincipalIdList, size_t size) { return detail::SendInvitation( pPrincipalIdList, size ); } /*! @brief 自分のログイン状態や、フレンドの状態変更を通知するイベントを指定します。 この関数を複数回呼んだ場合、最後に指定した @ref nn::os::Event のみがシグナルします。 @param[out] pEvent 変更を通知する @ref nn::os::Event へのポインタを指定します。事前に @ref nn::os::Event::Initialize で初期化しておいてください。 @return 処理の結果が返ってきます。 */ Result AttachToEventNotification( nn::os::Event* pEvent ); inline Result AttachToEventNotification( nn::os::Event* pEvent ) { return detail::AttachToEventNotification( pEvent ); } /*! @brief 自分のオンライン状態や、フレンドの状態変更の通知の履歴を取得します。 この関数を呼ぶと、まだ取得していない通知の内容を古いものから順に取得します。 返値が 0 になるまで繰り返し呼ぶことで、たまっている通知を時系列順に取得することができます。

ライブラリが保存できる通知は16件までです。 16件を超えた通知は古いほうから削除されます。 通知の保存件数は今後調整される可能性があります。 @param[out] pEventNotificationList 取得した通知の内容を格納するバッファへのポインタを指定します。 @param[in] size バッファの要素数を指定します。 @return 実際に取得できた通知の数が返ってきます。 */ u32 GetEventNotification( EventNotification* pEventNotificationList, size_t size = 1 ); inline u32 GetEventNotification( EventNotification* pEventNotificationList, size_t size ) { return detail::GetEventNotification( pEventNotificationList, size ); } /*! @brief 完了した非同期処理の結果を取得します。 @return 非同期処理の処理の結果が返ってきます。 */ Result GetLastResponseResult(); inline Result GetLastResponseResult() { return detail::GetLastResponseResult(); } /*! @brief フレンドキーからフレンドコードを生成します。 @param[in] friendKey フレンドコードに変換したいフレンドキーを指定します。 @return 指定したフレンドキーに対応したフレンドコードが返ってきます。

ライブラリが未初期化であったり、無効なフレンドキーを渡した場合、 @ref nn::friends::CTR::INVALID_FRIEND_CODE が返ってきます。 */ u64 FriendKeyToFriendCode( const FriendKey& friendKey ); inline u64 FriendKeyToFriendCode( const FriendKey& friendKey ) { return detail::PrincipalIdToFriendCode( friendKey.principalId ); } /*! @brief プリンシパル ID からフレンドコードを生成します。 @param[in] principalId フレンドコードに変換したいプリンシパル ID を指定します。 @return 指定したプリンシパル ID に対応したフレンドコードが返ってきます。

ライブラリが未初期化であったり、無効なプリンシパル ID を渡した場合、 @ref nn::friends::CTR::INVALID_FRIEND_CODE が返ってきます。 */ u64 PrincipalIdToFriendCode( PrincipalId principalId ); inline u64 PrincipalIdToFriendCode( PrincipalId principalId ) { return detail::PrincipalIdToFriendCode( principalId ); } /*! @brief フレンドコードからフレンドキーを取得します。 ライブラリが未初期化であったり、不正なフレンドコードを渡した場合、無効なフレンドキーが格納されます。 また、フレンドキーのローカルフレンドコードには常に @ref nn::friends::CTR::INVALID_LOCAL_FRIEND_CODE が格納されます。 @param[out] friendKey フレンドキーを格納する構造体へのポインタを指定します。 @param[in] friendCode フレンドキーに変換したいフレンドコードを指定します。 @return なし
*/ void FriendCodeToFriendKey( FriendKey* pFriendKey, u64 friendCode ); inline void FriendCodeToFriendKey( FriendKey* pFriendKey, u64 friendCode ) { return detail::FriendCodeToFriendKey( pFriendKey, friendCode ); } /*! @brief フレンドコードからプリンシパル ID を取得します。 @param[in] friendCode プリンシパル ID に変換したいフレンドコードを指定します。 @return 指定したフレンドコードに対応したプリンシパル ID が返ってきます。

ライブラリが未初期化であったり、不正なフレンドコードを渡した場合、 @ref nn::friends::CTR::INVALID_PRINCIPAL_ID が返ってきます。 */ PrincipalId FriendCodeToPrincipalId( u64 friendCode ); inline PrincipalId FriendCodeToPrincipalId( u64 friendCode ) { return detail::FriendCodeToPrincipalId( friendCode ); } /*! @brief フレンドコードの正当性を確認します。 @param[in] friendCode 正当性を確認したいフレンドコードを指定します。 @return 正当なフレンドコードであれば true 、不正なフレンドコードであれば false が返ってきます。 */ bool IsValidFriendCode( u64 friendCode ); inline bool IsValidFriendCode( u64 friendCode ) { return detail::IsValidFriendCode( friendCode ); } /*! @brief FRIENDS ライブラリの API の結果からエラーコードを取得します。 @param[in] result FRIENDS ライブラリ API から取得した結果を指定します。 @return 指定した結果に対応するエラーコードが返ってきます。
エラーコードを表示する必要がない結果や、 FRIENDS ライブラリ API 以外の結果を指定した場合は 0 が返ってきます。 */ u32 ResultToErrorCode( Result& result ); inline u32 ResultToErrorCode( Result& result ) { return detail::ResultToErrorCode( result ); } } // end of namespace CTR } // end of namespace friends } // end of namespace nn #endif // __cplusplus // 以下、C 用宣言 #include /*! @addtogroup nn_friends friends @{ */ /*! @} */ #endif // ifndef NN_FRIENDS_CTR_FRIENDS_API_H_