MyPage Applet: Difference between revisions

Created page with "This is the MyPage applet launched by Home Menu. Official sw uses this under <code>nn::friends</code>. See AM_services#Library_Applets. == Arg == {| class="wikitable" bor..."
 
No edit summary
 
(4 intermediate revisions by the same user not shown)
Line 1: Line 1:
This is the MyPage applet launched by Home Menu. Official sw uses this under <code>nn::friends</code>.
This is the MyPage applet launched by Home Menu. Official sw uses this under <code>nn::friends</code>.
See [[AM_services#Library_Applets]].
See [[AM_services#Library_Applets]].
== Library Applet Versions ==
{| class="wikitable" border="1"
|-
! System Version || Value
|-
| [1.0.0+] || 0x1
|-
| [9.0.0+] || 0x10000
|}


== Arg ==
== Arg ==
Line 15: Line 25:
| 0x8 || 0x10 || u128 userID
| 0x8 || 0x10 || u128 userID
|-
|-
| 0x18 || 0x8 || [[Account_services|NetworkServiceAccountId]]
| 0x18 || 0x8 || [[Account_services|NetworkServiceAccountId]] for the other account.
|-
|-
| 0x20 || 0x48 || [[Friend_services|InAppScreenName]]
| 0x20 || 0x48 || [[Friend_services|InAppScreenName]]
|-
|-
| 0x68 || 0x48 || [[Friend_services|InAppScreenName]]
| 0x68 || 0x48 || [[Friend_services|InAppScreenName]]
|-
| 0xB0 || 0xFF8 || See below.
|}
The is the 0xB0-byte (0x10A8-byte with version 0x10000) struct pushed for the input storage.
The fields following the userID are only set for [[#Type]] ShowUserDetailInfo, StartSendingFriendRequest, StartFriendInvitation, StartSendingFriendInvitation, and ShowReceivedInvitationDetail, for everything else these are cleared.
The layout of the data following the userID with the [9.0.0+] types depends on what type is being used:
StartFriendInvitation:
{| class="wikitable" border="1"
|-
!  Offset
!  Size
!  Description
|-
| 0x18 || 0x4 || s32 NetworkServiceAccountId_count. Must be 1-15. Number of friends to invite.
|-
| 0x1C || 0x4 || Padding.
|-
| 0x20 || 0x8 || User-data size, must be <=0x400.
|-
| 0x28 || 0x400 || Arbitrary user-data, see above size.
|-
| 0x428 || 0xC00 || [[Friend_services|FriendInvitationGameModeDescription]]
|}
StartSendingFriendInvitation:
{| class="wikitable" border="1"
|-
!  Offset
!  Size
!  Description
|-
| 0x18 || 0x4 || s32 NetworkServiceAccountId_count. Must be 1-15. Number of friends to invite.
|-
| 0x1C || 0x4 || Padding.
|-
| 0x20 || 0x8*NetworkServiceAccountId_count || [[Account_services|NetworkServiceAccountId]] list.
|-
| 0xA0 || 0x8 || User-data size, must be <=0x400.
|-
| 0xA8 || 0x400 || Arbitrary user-data, see above size.
|-
| 0x4A8 || 0xC00 || [[Friend_services|FriendInvitationGameModeDescription]]
|}
|}


The is the 0xB0-byte struct pushed for the input storage.
ShowReceivedInvitationDetail:


The fields following the userID are only set for [[#Type]] ShowUserDetailInfo/StartSendingFriendRequest, for everything else these are cleared.
{| class="wikitable" border="1"
|-
!  Offset
!  Size
!  Description
|-
| 0x18 || 0x8 || [[Friend_services|FriendInvitationId]]
|-
| 0x20 || 0x8 || [[Friend_services|FriendInvitationGroupId]]
|}


== Type ==
== Type ==
Line 31: Line 98:
! Name || Type value || PlayStartupSound || Description
! Name || Type value || PlayStartupSound || Description
|-
|-
| ShowFriendList || 0 || false ||  
| ShowFriendList || 0 || false || Launches the applet with the "Friend List" menu initially selected.
|-
|-
| ShowUserDetailInfo || 1 || false ||  
| ShowUserDetailInfo || 1 || false ||  
Line 37: Line 104:
| StartSendingFriendRequest || 2 || false ||  
| StartSendingFriendRequest || 2 || false ||  
|-
|-
| ShowMethodsOfSendingFriendRequest || 3 || false ||  
| ShowMethodsOfSendingFriendRequest || 3 || false || Launches the applet with the "Add Friend" menu initially selected.
|-
|-
| StartFacedFriendRequest || 4 || false ||  
| StartFacedFriendRequest || 4 || false || Launches the applet where the "Search for Local Users" menu is initially shown. Returning from this menu will exit the applet.
|-
|-
| ShowReceivedFriendRequestList || 5 || false ||  
| ShowReceivedFriendRequestList || 5 || false || Launches the applet where the "Received Friend Requests" menu is initially shown. Returning from this menu will exit the applet.
|-
|-
| ShowBlockedUserList || 6 || false ||  
| ShowBlockedUserList || 6 || false || Launches the applet where the "Blocked-User List" menu is initially shown. Returning from this menu will exit the applet.
|-
|-
| ShowMyProfile || 7 || false ||  
| ShowMyProfile || 7 || false || Launches the applet with the "Profile" menu initially selected.
|-
|-
| ShowMyProfileForHomeMenu || 7 || true || Identical to ShowMyProfile except for PlayStartupSound.
| ShowMyProfileForHomeMenu || 7 || true || Identical to ShowMyProfile except for PlayStartupSound.
|-
| [9.0.0+] StartFriendInvitation || 8 || false || Launches the applet for sending online-play invites to friends, where the friends are selected via the UI.
|-
| [9.0.0+] StartSendingFriendInvitation || 9 || false ||
|-
| [9.0.0+] ShowReceivedInvitationDetail || 10 || false ||
|}
|}


== Usage ==
== Usage ==
User-processes should push a common arguments struct (version=0x1) as well as an [[#Arg]] struct. See [[#Type]] for the commonargs PlayStartupSound flag value. After starting the applet, official sw immediately closes it (no output storage is handled) - except for StartSendingFriendRequest, which returns an output storage containing the Result.
User-processes should push a common arguments struct as well as an [[#Arg]] struct. See [[#Type]] for the commonargs PlayStartupSound flag value. After starting the applet, official sw immediately closes it (no output storage is handled) - except for StartSendingFriendRequest/StartFriendInvitation/StartSendingFriendInvitation which returns an output storage containing the Result.


[[Category:Library Applets]]
[[Category:Library Applets]]