diff options
| author | Ac_K <Acoustik666@gmail.com> | 2019-07-12 03:13:43 +0200 |
|---|---|---|
| committer | gdkchan <gab.dark.100@gmail.com> | 2019-07-11 22:13:43 -0300 |
| commit | 560ccbeb2d55a4426ad2827bf7534d4a695431c2 (patch) | |
| tree | 7e224acbd6c023ea56ff80c6207aa0966aa06ee5 /Ryujinx.HLE/HOS/Services/Friend/IFriendService.cs | |
| parent | f723f6f39aaf7b1cebc0224a055058d62e3b689c (diff) | |
Refactoring commands handling (#728)
* Refactoring commands handling
- Use Reflection to handle commands ID.
- Add all symbols (from SwIPC so not all time accurate).
- Re-sort some services commands methods.
- Some cleanup.
- Keep some empty constructor for consistency.
* Fix order in IProfile
Diffstat (limited to 'Ryujinx.HLE/HOS/Services/Friend/IFriendService.cs')
| -rw-r--r-- | Ryujinx.HLE/HOS/Services/Friend/IFriendService.cs | 96 |
1 files changed, 10 insertions, 86 deletions
diff --git a/Ryujinx.HLE/HOS/Services/Friend/IFriendService.cs b/Ryujinx.HLE/HOS/Services/Friend/IFriendService.cs index 58e65ea7..40a54ee2 100644 --- a/Ryujinx.HLE/HOS/Services/Friend/IFriendService.cs +++ b/Ryujinx.HLE/HOS/Services/Friend/IFriendService.cs @@ -1,9 +1,7 @@ using Ryujinx.Common; using Ryujinx.Common.Logging; -using Ryujinx.HLE.HOS.Ipc; using Ryujinx.HLE.HOS.SystemState; using Ryujinx.HLE.Utilities; -using System.Collections.Generic; using System.IO; using System.Runtime.InteropServices; @@ -13,95 +11,16 @@ namespace Ryujinx.HLE.HOS.Services.Friend { class IFriendService : IpcService { - private Dictionary<int, ServiceProcessRequest> _commands; - private FriendServicePermissionLevel _permissionLevel; - public override IReadOnlyDictionary<int, ServiceProcessRequest> Commands => _commands; - public IFriendService(FriendServicePermissionLevel permissionLevel) { - _commands = new Dictionary<int, ServiceProcessRequest> - { - //{ 0, GetCompletionEvent }, - //{ 1, Cancel }, - { 10100, GetFriendListIds }, - { 10101, GetFriendList }, - //{ 10102, UpdateFriendInfo }, - //{ 10110, GetFriendProfileImage }, - //{ 10200, SendFriendRequestForApplication }, - //{ 10211, AddFacedFriendRequestForApplication }, - //{ 10400, GetBlockedUserListIds }, - //{ 10500, GetProfileList }, - { 10600, DeclareOpenOnlinePlaySession }, - { 10601, DeclareCloseOnlinePlaySession }, - { 10610, UpdateUserPresence }, - //{ 10700, GetPlayHistoryRegistrationKey }, - //{ 10701, GetPlayHistoryRegistrationKeyWithNetworkServiceAccountId }, - //{ 10702, AddPlayHistory }, - //{ 11000, GetProfileImageUrl }, - //{ 20100, GetFriendCount }, - //{ 20101, GetNewlyFriendCount }, - //{ 20102, GetFriendDetailedInfo }, - //{ 20103, SyncFriendList }, - //{ 20104, RequestSyncFriendList }, - //{ 20110, LoadFriendSetting }, - //{ 20200, GetReceivedFriendRequestCount }, - //{ 20201, GetFriendRequestList }, - //{ 20300, GetFriendCandidateList }, - //{ 20301, GetNintendoNetworkIdInfo }, // 3.0.0+ - //{ 20302, GetSnsAccountLinkage }, // 5.0.0+ - //{ 20303, GetSnsAccountProfile }, // 5.0.0+ - //{ 20304, GetSnsAccountFriendList }, // 5.0.0+ - //{ 20400, GetBlockedUserList }, - //{ 20401, SyncBlockedUserList }, - //{ 20500, GetProfileExtraList }, - //{ 20501, GetRelationship }, - //{ 20600, GetUserPresenceView }, - //{ 20700, GetPlayHistoryList }, - //{ 20701, GetPlayHistoryStatistics }, - //{ 20800, LoadUserSetting }, - //{ 20801, SyncUserSetting }, - //{ 20900, RequestListSummaryOverlayNotification }, - //{ 21000, GetExternalApplicationCatalog }, - //{ 30100, DropFriendNewlyFlags }, - //{ 30101, DeleteFriend }, - //{ 30110, DropFriendNewlyFlag }, - //{ 30120, ChangeFriendFavoriteFlag }, - //{ 30121, ChangeFriendOnlineNotificationFlag }, - //{ 30200, SendFriendRequest }, - //{ 30201, SendFriendRequestWithApplicationInfo }, - //{ 30202, CancelFriendRequest }, - //{ 30203, AcceptFriendRequest }, - //{ 30204, RejectFriendRequest }, - //{ 30205, ReadFriendRequest }, - //{ 30210, GetFacedFriendRequestRegistrationKey }, - //{ 30211, AddFacedFriendRequest }, - //{ 30212, CancelFacedFriendRequest }, - //{ 30213, GetFacedFriendRequestProfileImage }, - //{ 30214, GetFacedFriendRequestProfileImageFromPath }, - //{ 30215, SendFriendRequestWithExternalApplicationCatalogId }, - //{ 30216, ResendFacedFriendRequest }, - //{ 30217, SendFriendRequestWithNintendoNetworkIdInfo }, // 3.0.0+ - //{ 30300, GetSnsAccountLinkPageUrl }, // 5.0.0+ - //{ 30301, UnlinkSnsAccount }, // 5.0.0+ - //{ 30400, BlockUser }, - //{ 30401, BlockUserWithApplicationInfo }, - //{ 30402, UnblockUser }, - //{ 30500, GetProfileExtraFromFriendCode }, - //{ 30700, DeletePlayHistory }, - //{ 30810, ChangePresencePermission }, - //{ 30811, ChangeFriendRequestReception }, - //{ 30812, ChangePlayLogPermission }, - //{ 30820, IssueFriendCode }, - //{ 30830, ClearPlayLog }, - //{ 49900, DeleteNetworkServiceAccountCache }, - }; - _permissionLevel = permissionLevel; } - // nn::friends::GetFriendListIds(int offset, nn::account::Uid userUUID, nn::friends::detail::ipc::SizedFriendFilter friendFilter, ulong pidPlaceHolder, pid) -> int outCount, array<nn::account::NetworkServiceAccountId, 0xa> + [Command(10100)] + // nn::friends::GetFriendListIds(int offset, nn::account::Uid userUUID, nn::friends::detail::ipc::SizedFriendFilter friendFilter, ulong pidPlaceHolder, pid) + // -> int outCount, array<nn::account::NetworkServiceAccountId, 0xa> public long GetFriendListIds(ServiceCtx context) { int offset = context.RequestData.ReadInt32(); @@ -138,7 +57,9 @@ namespace Ryujinx.HLE.HOS.Services.Friend return 0; } - // nn::friends::GetFriendList(int offset, nn::account::Uid userUUID, nn::friends::detail::ipc::SizedFriendFilter friendFilter, ulong pidPlaceHolder, pid) -> int outCount, array<nn::friends::detail::FriendImpl, 0x6> + [Command(10101)] + // nn::friends::GetFriendList(int offset, nn::account::Uid userUUID, nn::friends::detail::ipc::SizedFriendFilter friendFilter, ulong pidPlaceHolder, pid) + // -> int outCount, array<nn::friends::detail::FriendImpl, 0x6> public long GetFriendList(ServiceCtx context) { int offset = context.RequestData.ReadInt32(); @@ -174,6 +95,7 @@ namespace Ryujinx.HLE.HOS.Services.Friend return 0; } + [Command(10600)] // nn::friends::DeclareOpenOnlinePlaySession(nn::account::Uid) public long DeclareOpenOnlinePlaySession(ServiceCtx context) { @@ -194,6 +116,7 @@ namespace Ryujinx.HLE.HOS.Services.Friend return 0; } + [Command(10601)] // nn::friends::DeclareCloseOnlinePlaySession(nn::account::Uid) public long DeclareCloseOnlinePlaySession(ServiceCtx context) { @@ -214,6 +137,7 @@ namespace Ryujinx.HLE.HOS.Services.Friend return 0; } + [Command(10610)] // nn::friends::UpdateUserPresence(nn::account::Uid, u64, pid, buffer<nn::friends::detail::UserPresenceImpl, 0x19>) public long UpdateUserPresence(ServiceCtx context) { @@ -244,4 +168,4 @@ namespace Ryujinx.HLE.HOS.Services.Friend return 0; } } -} +}
\ No newline at end of file |
