libnx v4.9.0
Loading...
Searching...
No Matches
friends_la.h
Go to the documentation of this file.
1/**
2 * @file friends_la.h
3 * @brief Wrapper for using the MyPage (friends) LibraryApplet.
4 * @author yellows8
5 * @copyright libnx Authors
6 */
7#pragma once
8#include "../types.h"
9#include "../services/acc.h"
10#include "../services/friends.h"
11
12/// Arg type values used with \ref FriendsLaArg.
13typedef enum {
14 FriendsLaArgType_ShowFriendList = 0, ///< ShowFriendList. Launches the applet with the "Friend List" menu initially selected.
15 FriendsLaArgType_ShowUserDetailInfo = 1, ///< ShowUserDetailInfo
16 FriendsLaArgType_StartSendingFriendRequest = 2, ///< StartSendingFriendRequest
17 FriendsLaArgType_ShowMethodsOfSendingFriendRequest = 3, ///< ShowMethodsOfSendingFriendRequest. Launches the applet with the "Add Friend" menu initially selected.
18 FriendsLaArgType_StartFacedFriendRequest = 4, ///< StartFacedFriendRequest. Launches the applet where the "Search for Local Users" menu is initially shown. Returning from this menu will exit the applet.
19 FriendsLaArgType_ShowReceivedFriendRequestList = 5, ///< ShowReceivedFriendRequestList. Launches the applet where the "Received Friend Requests" menu is initially shown. Returning from this menu will exit the applet.
20 FriendsLaArgType_ShowBlockedUserList = 6, ///< ShowBlockedUserList. Launches the applet where the "Blocked-User List" menu is initially shown. Returning from this menu will exit the applet.
21 FriendsLaArgType_ShowMyProfile = 7, ///< ShowMyProfile. Launches the applet with the "Profile" menu initially selected. ShowMyProfileForHomeMenu is identical to this except for playStartupSound=true.
22 FriendsLaArgType_StartFriendInvitation = 8, ///< [9.0.0+] StartFriendInvitation. Launches the applet for sending online-play invites to friends, where the friends are selected via the UI.
23 FriendsLaArgType_StartSendingFriendInvitation = 9, ///< [9.0.0+] StartSendingFriendInvitation.
24 FriendsLaArgType_ShowReceivedInvitationDetail = 10, ///< [9.0.0+] ShowReceivedInvitationDetail.
26
27/// Header for the arg struct.
28typedef struct {
29 u32 type; ///< \ref FriendsLaArgType
30 u32 pad; ///< Padding.
31 AccountUid uid; ///< \ref AccountUid
33
34/// Common data for the arg struct, for the pre-9.0.0 types.
35/// This is only set for ::FriendsLaArgType_ShowUserDetailInfo/::FriendsLaArgType_StartSendingFriendRequest, for everything else this is cleared.
36typedef struct {
37 AccountNetworkServiceAccountId id; ///< \ref AccountNetworkServiceAccountId for the other account.
38 FriendsInAppScreenName first_inAppScreenName; ///< First InAppScreenName.
39 FriendsInAppScreenName second_inAppScreenName; ///< Second InAppScreenName.
41
42/// Arg struct pushed for the applet input storage, for pre-9.0.0.
43typedef struct {
44 FriendsLaArgHeader hdr; ///< \ref FriendsLaArgHeader
45 FriendsLaArgCommonData data; ///< \ref FriendsLaArgCommonData
47
48/// Arg struct pushed for the applet input storage, for [9.0.0+].
49typedef struct {
50 FriendsLaArgHeader hdr; ///< \ref FriendsLaArgHeader
51
52 union {
53 u8 raw[0x1090]; ///< Raw data.
54
55 FriendsLaArgCommonData common; ///< \ref FriendsLaArgCommonData
56
57 struct {
58 s32 id_count; ///< \ref AccountNetworkServiceAccountId count, must be 1-15.
59 u32 pad; ///< Padding.
60 u64 userdata_size; ///< User-data size, must be <=0x400.
61 u8 userdata[0x400]; ///< Arbitrary user-data, see above size.
62 FriendsFriendInvitationGameModeDescription desc; ///< \ref FriendsFriendInvitationGameModeDescription
63 } start_friend_invitation; ///< Data for ::FriendsLaArgType_StartFriendInvitation.
64
65 struct {
66 s32 id_count; ///< \ref AccountNetworkServiceAccountId count, must be 1-15.
67 u32 pad; ///< Padding.
68 AccountNetworkServiceAccountId id_list[16]; ///< \ref AccountNetworkServiceAccountId list, see above count.
69 u64 userdata_size; ///< User-data size, must be <=0x400.
70 u8 userdata[0x400]; ///< Arbitrary user-data, see above size.
71 FriendsFriendInvitationGameModeDescription desc; ///< \ref FriendsFriendInvitationGameModeDescription
72 } start_sending_friend_invitation; ///< Data for ::FriendsLaArgType_StartSendingFriendInvitation.
73
74 struct {
75 FriendsFriendInvitationId invitation_id; ///< \ref FriendsFriendInvitationId
76 FriendsFriendInvitationGroupId invitation_group_id; ///< \ref FriendsFriendInvitationGroupId
77 } show_received_invitation_detail; ///< Data for ::FriendsLaArgType_ShowReceivedInvitationDetail.
78 } data; ///< Data for each \ref FriendsLaArgType.
80
81/**
82 * @brief Launches the applet with ::FriendsLaArgType_ShowFriendList, the specified input, and playStartupSound=false.
83 * @param[in] uid \ref AccountUid
84 */
86
87/**
88 * @brief Launches the applet with ::FriendsLaArgType_ShowUserDetailInfo, the specified input, and playStartupSound=false.
89 * @param[in] uid \ref AccountUid
90 * @param[in] id \ref AccountNetworkServiceAccountId for the user to show UserDetailInfo for.
91 * @param[in] first_inAppScreenName First \ref FriendsInAppScreenName.
92 * @param[in] second_inAppScreenName Second \ref FriendsInAppScreenName.
93 */
95
96/**
97 * @brief Launches the applet with ::FriendsLaArgType_StartSendingFriendRequest, the specified input, and playStartupSound=false. On success, this will load the output Result from the output storage.
98 * @param[in] uid \ref AccountUid
99 * @param[in] id \ref AccountNetworkServiceAccountId to send the friend request to.
100 * @param[in] first_inAppScreenName First \ref FriendsInAppScreenName.
101 * @param[in] second_inAppScreenName Second \ref FriendsInAppScreenName.
102 */
104
105/**
106 * @brief Launches the applet with ::FriendsLaArgType_ShowMethodsOfSendingFriendRequest, the specified input, and playStartupSound=false.
107 * @param[in] uid \ref AccountUid
108 */
110
111/**
112 * @brief Launches the applet with ::FriendsLaArgType_StartFacedFriendRequest, the specified input, and playStartupSound=false.
113 * @param[in] uid \ref AccountUid
114 */
116
117/**
118 * @brief Launches the applet with ::FriendsLaArgType_ShowReceivedFriendRequestList, the specified input, and playStartupSound=false.
119 * @param[in] uid \ref AccountUid
120 */
122
123/**
124 * @brief Launches the applet with ::FriendsLaArgType_ShowBlockedUserList, the specified input, and playStartupSound=false.
125 * @param[in] uid \ref AccountUid
126 */
128
129/**
130 * @brief Launches the applet with ::FriendsLaArgType_ShowMyProfile, the specified input, and playStartupSound=false.
131 * @param[in] uid \ref AccountUid
132 */
134
135/**
136 * @brief Same as \ref friendsLaShowMyProfile except with playStartupSound=true.
137 * @param[in] uid \ref AccountUid
138 */
140
141/**
142 * @brief Launches the applet with ::FriendsLaArgType_StartFriendInvitation, the specified input, and playStartupSound=false. On success, this will load the output Result from the output storage.
143 * @note Only available on [9.0.0+].
144 * @param[in] uid \ref AccountUid
145 * @param[in] id_count \ref AccountNetworkServiceAccountId count, must be 1-15. Number of friends to invite.
146 * @param[in] desc \ref FriendsFriendInvitationGameModeDescription
147 * @param[in] userdata Arbitrary user-data. Can be NULL.
148 * @param[in] userdata_size User-data size, must be <=0x400. Can be 0 if userdata is NULL.
149 */
150Result friendsLaStartFriendInvitation(AccountUid uid, s32 id_count, const FriendsFriendInvitationGameModeDescription *desc, const void* userdata, u64 userdata_size);
151
152/**
153 * @brief Launches the applet with ::FriendsLaArgType_StartSendingFriendInvitation, the specified input, and playStartupSound=false. On success, this will load the output Result from the output storage.
154 * @note Only available on [9.0.0+].
155 * @param[in] uid \ref AccountUid
156 * @param[in] id_list \ref AccountNetworkServiceAccountId list.
157 * @param[in] id_count Size of the id_list array in entries, must be 1-15. Number of friends to invite.
158 * @param[in] desc \ref FriendsFriendInvitationGameModeDescription
159 * @param[in] userdata Arbitrary user-data. Can be NULL.
160 * @param[in] userdata_size User-data size, must be <=0x400. Can be 0 if userdata is NULL.
161 */
163
164/**
165 * @brief Launches the applet with ::FriendsLaArgType_ShowReceivedInvitationDetail, the specified input, and playStartupSound=false.
166 * @note Only available on [9.0.0+].
167 * @param[in] uid \ref AccountUid
168 * @param[in] invitation_id \ref FriendsFriendInvitationId
169 * @param[in] invitation_group_id \ref FriendsFriendInvitationGroupId
170 */
172
Result friendsLaStartFriendInvitation(AccountUid uid, s32 id_count, const FriendsFriendInvitationGameModeDescription *desc, const void *userdata, u64 userdata_size)
Launches the applet with FriendsLaArgType_StartFriendInvitation, the specified input,...
Result friendsLaShowReceivedFriendRequestList(AccountUid uid)
Launches the applet with FriendsLaArgType_ShowReceivedFriendRequestList, the specified input,...
Result friendsLaShowMyProfileForHomeMenu(AccountUid uid)
Same as friendsLaShowMyProfile except with playStartupSound=true.
Result friendsLaStartSendingFriendInvitation(AccountUid uid, const AccountNetworkServiceAccountId *id_list, s32 id_count, const FriendsFriendInvitationGameModeDescription *desc, const void *userdata, u64 userdata_size)
Launches the applet with FriendsLaArgType_StartSendingFriendInvitation, the specified input,...
Result friendsLaShowUserDetailInfo(AccountUid uid, AccountNetworkServiceAccountId id, const FriendsInAppScreenName *first_inAppScreenName, const FriendsInAppScreenName *second_inAppScreenName)
Launches the applet with FriendsLaArgType_ShowUserDetailInfo, the specified input,...
Result friendsLaStartSendingFriendRequest(AccountUid uid, AccountNetworkServiceAccountId id, const FriendsInAppScreenName *first_inAppScreenName, const FriendsInAppScreenName *second_inAppScreenName)
Launches the applet with FriendsLaArgType_StartSendingFriendRequest, the specified input,...
Result friendsLaStartFacedFriendRequest(AccountUid uid)
Launches the applet with FriendsLaArgType_StartFacedFriendRequest, the specified input,...
Result friendsLaShowReceivedInvitationDetail(AccountUid uid, FriendsFriendInvitationId invitation_id, FriendsFriendInvitationGroupId invitation_group_id)
Launches the applet with FriendsLaArgType_ShowReceivedInvitationDetail, the specified input,...
Result friendsLaShowMyProfile(AccountUid uid)
Launches the applet with FriendsLaArgType_ShowMyProfile, the specified input, and playStartupSound=fa...
FriendsLaArgType
Arg type values used with FriendsLaArg.
Definition friends_la.h:13
@ FriendsLaArgType_StartFacedFriendRequest
StartFacedFriendRequest. Launches the applet where the "Search for Local Users" menu is initially sho...
Definition friends_la.h:18
@ FriendsLaArgType_ShowMethodsOfSendingFriendRequest
ShowMethodsOfSendingFriendRequest. Launches the applet with the "Add Friend" menu initially selected.
Definition friends_la.h:17
@ FriendsLaArgType_ShowUserDetailInfo
ShowUserDetailInfo.
Definition friends_la.h:15
@ FriendsLaArgType_StartSendingFriendInvitation
[9.0.0+] StartSendingFriendInvitation.
Definition friends_la.h:23
@ FriendsLaArgType_ShowMyProfile
ShowMyProfile. Launches the applet with the "Profile" menu initially selected. ShowMyProfileForHomeMe...
Definition friends_la.h:21
@ FriendsLaArgType_ShowReceivedFriendRequestList
ShowReceivedFriendRequestList. Launches the applet where the "Received Friend Requests" menu is initi...
Definition friends_la.h:19
@ FriendsLaArgType_StartFriendInvitation
[9.0.0+] StartFriendInvitation. Launches the applet for sending online-play invites to friends,...
Definition friends_la.h:22
@ FriendsLaArgType_StartSendingFriendRequest
StartSendingFriendRequest.
Definition friends_la.h:16
@ FriendsLaArgType_ShowBlockedUserList
ShowBlockedUserList. Launches the applet where the "Blocked-User List" menu is initially shown....
Definition friends_la.h:20
@ FriendsLaArgType_ShowReceivedInvitationDetail
[9.0.0+] ShowReceivedInvitationDetail.
Definition friends_la.h:24
@ FriendsLaArgType_ShowFriendList
ShowFriendList. Launches the applet with the "Friend List" menu initially selected.
Definition friends_la.h:14
Result friendsLaShowMethodsOfSendingFriendRequest(AccountUid uid)
Launches the applet with FriendsLaArgType_ShowMethodsOfSendingFriendRequest, the specified input,...
Result friendsLaShowBlockedUserList(AccountUid uid)
Launches the applet with FriendsLaArgType_ShowBlockedUserList, the specified input,...
Result friendsLaShowFriendList(AccountUid uid)
Launches the applet with FriendsLaArgType_ShowFriendList, the specified input, and playStartupSound=f...
NetworkServiceAccountId.
Definition acc.h:47
Account UserId.
Definition acc.h:25
FriendInvitationGameModeDescription.
Definition friends.h:29
FriendInvitationGroupId.
Definition friends.h:39
FriendInvitationId.
Definition friends.h:34
InAppScreenName.
Definition friends.h:23
Common data for the arg struct, for the pre-9.0.0 types.
Definition friends_la.h:36
FriendsInAppScreenName second_inAppScreenName
Second InAppScreenName.
Definition friends_la.h:39
FriendsInAppScreenName first_inAppScreenName
First InAppScreenName.
Definition friends_la.h:38
AccountNetworkServiceAccountId id
AccountNetworkServiceAccountId for the other account.
Definition friends_la.h:37
Header for the arg struct.
Definition friends_la.h:28
AccountUid uid
AccountUid
Definition friends_la.h:31
u32 pad
Padding.
Definition friends_la.h:30
u32 type
FriendsLaArgType
Definition friends_la.h:29
Arg struct pushed for the applet input storage, for pre-9.0.0.
Definition friends_la.h:43
FriendsLaArgCommonData data
FriendsLaArgCommonData
Definition friends_la.h:45
FriendsLaArgHeader hdr
FriendsLaArgHeader
Definition friends_la.h:44
Arg struct pushed for the applet input storage, for [9.0.0+].
Definition friends_la.h:49
u32 pad
Padding.
Definition friends_la.h:59
s32 id_count
AccountNetworkServiceAccountId count, must be 1-15.
Definition friends_la.h:58
FriendsFriendInvitationGroupId invitation_group_id
FriendsFriendInvitationGroupId
Definition friends_la.h:76
FriendsLaArgHeader hdr
FriendsLaArgHeader
Definition friends_la.h:50
FriendsFriendInvitationGameModeDescription desc
FriendsFriendInvitationGameModeDescription
Definition friends_la.h:62
u64 userdata_size
User-data size, must be <=0x400.
Definition friends_la.h:60
FriendsLaArgCommonData common
FriendsLaArgCommonData
Definition friends_la.h:55
FriendsFriendInvitationId invitation_id
FriendsFriendInvitationId
Definition friends_la.h:75
uint64_t u64
64-bit unsigned integer.
Definition types.h:22
uint8_t u8
8-bit unsigned integer.
Definition types.h:19
u32 Result
Function error code result type.
Definition types.h:44
int32_t s32
32-bit signed integer.
Definition types.h:27
uint32_t u32
32-bit unsigned integer.
Definition types.h:21