mirror of
https://git.zaroz.cloud/nintendo-back-up/Ryujinx.git
synced 2025-12-20 17:32:41 +00:00
[Ryujinx.HLE] Address dotnet-format issues (#5380)
* dotnet format style --severity info Some changes were manually reverted. * dotnet format analyzers --serverity info Some changes have been minimally adapted. * Restore a few unused methods and variables * Silence dotnet format IDE0060 warnings * Silence dotnet format IDE0052 warnings * Address or silence dotnet format IDE1006 warnings * Address dotnet format CA1816 warnings * Address or silence dotnet format CA2208 warnings * Address or silence dotnet format CA1806 and a few CA1854 warnings * Address dotnet format CA2211 warnings * Address dotnet format CA1822 warnings * Address or silence dotnet format CA1069 warnings * Make dotnet format succeed in style mode * Address or silence dotnet format CA2211 warnings * Address review comments * Address dotnet format CA2208 warnings properly * Make ProcessResult readonly * Address most dotnet format whitespace warnings * Apply dotnet format whitespace formatting A few of them have been manually reverted and the corresponding warning was silenced * Add previously silenced warnings back I have no clue how these disappeared * Revert formatting changes for while and for-loops * Format if-blocks correctly * Run dotnet format style after rebase * Run dotnet format whitespace after rebase * Run dotnet format style after rebase * Run dotnet format analyzers after rebase * Run dotnet format after rebase and remove unused usings - analyzers - style - whitespace * Disable 'prefer switch expression' rule * Add comments to disabled warnings * Fix a few disabled warnings * Fix naming rule violation, Convert shader properties to auto-property and convert values to const * Simplify properties and array initialization, Use const when possible, Remove trailing commas * Start working on disabled warnings * Fix and silence a few dotnet-format warnings again * Run dotnet format after rebase * Use using declaration instead of block syntax * Address IDE0251 warnings * Address a few disabled IDE0060 warnings * Silence IDE0060 in .editorconfig * Revert "Simplify properties and array initialization, Use const when possible, Remove trailing commas" This reverts commit 9462e4136c0a2100dc28b20cf9542e06790aa67e. * dotnet format whitespace after rebase * First dotnet format pass * Fix naming rule violations * Fix typo * Add trailing commas, use targeted new and use array initializer * Fix build issues * Fix remaining build issues * Remove SuppressMessage for CA1069 where possible * Address dotnet format issues * Address formatting issues Co-authored-by: Ac_K <acoustik666@gmail.com> * Add GetHashCode implementation for RenderingSurfaceInfo * Explicitly silence CA1822 for every affected method in Syscall * Address formatting issues in Demangler.cs * Address review feedback Co-authored-by: Ac_K <acoustik666@gmail.com> * Revert marking service methods as static * Next dotnet format pass * Address review feedback --------- Co-authored-by: Ac_K <acoustik666@gmail.com>
This commit is contained in:
@@ -6,8 +6,8 @@ namespace Ryujinx.HLE.HOS.Services.Friend.ServiceCreator.FriendService
|
||||
[StructLayout(LayoutKind.Sequential, Pack = 0x8, Size = 0x200, CharSet = CharSet.Ansi)]
|
||||
struct Friend
|
||||
{
|
||||
public UserId UserId;
|
||||
public long NetworkUserId;
|
||||
public UserId UserId;
|
||||
public long NetworkUserId;
|
||||
|
||||
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 0x21)]
|
||||
public string Nickname;
|
||||
@@ -21,9 +21,9 @@ namespace Ryujinx.HLE.HOS.Services.Friend.ServiceCreator.FriendService
|
||||
public bool IsNew;
|
||||
|
||||
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 0x6)]
|
||||
char[] Unknown;
|
||||
readonly char[] Unknown;
|
||||
|
||||
[MarshalAs(UnmanagedType.I1)]
|
||||
public bool IsValid;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,4 +21,4 @@ namespace Ryujinx.HLE.HOS.Services.Friend.ServiceCreator.FriendService
|
||||
|
||||
public long PresenceGroupId;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,6 +4,6 @@
|
||||
{
|
||||
Offline,
|
||||
Online,
|
||||
OnlinePlay
|
||||
OnlinePlay,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,6 +5,6 @@
|
||||
None,
|
||||
Online,
|
||||
OnlinePlay,
|
||||
OnlineOrOnlinePlay
|
||||
OnlineOrOnlinePlay,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,8 +8,8 @@ namespace Ryujinx.HLE.HOS.Services.Friend.ServiceCreator.FriendService
|
||||
[StructLayout(LayoutKind.Sequential, Pack = 0x8)]
|
||||
struct UserPresence
|
||||
{
|
||||
public UserId UserId;
|
||||
public long LastTimeOnlineTimestamp;
|
||||
public UserId UserId;
|
||||
public long LastTimeOnlineTimestamp;
|
||||
public PresenceStatus Status;
|
||||
|
||||
[MarshalAs(UnmanagedType.I1)]
|
||||
@@ -26,9 +26,9 @@ namespace Ryujinx.HLE.HOS.Services.Friend.ServiceCreator.FriendService
|
||||
public const int Size = 0xC0;
|
||||
}
|
||||
|
||||
public override string ToString()
|
||||
public readonly override string ToString()
|
||||
{
|
||||
return $"UserPresence {{ UserId: {UserId}, LastTimeOnlineTimestamp: {LastTimeOnlineTimestamp}, Status: {Status} }}";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,11 +2,13 @@ namespace Ryujinx.HLE.HOS.Services.Friend.ServiceCreator
|
||||
{
|
||||
class IDaemonSuspendSessionService : IpcService
|
||||
{
|
||||
private FriendServicePermissionLevel PermissionLevel;
|
||||
#pragma warning disable IDE0052 // Remove unread private member
|
||||
private readonly FriendServicePermissionLevel _permissionLevel;
|
||||
#pragma warning restore IDE0052
|
||||
|
||||
public IDaemonSuspendSessionService(FriendServicePermissionLevel permissionLevel)
|
||||
{
|
||||
PermissionLevel = permissionLevel;
|
||||
_permissionLevel = permissionLevel;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -15,8 +15,10 @@ namespace Ryujinx.HLE.HOS.Services.Friend.ServiceCreator
|
||||
{
|
||||
class IFriendService : IpcService
|
||||
{
|
||||
private FriendServicePermissionLevel _permissionLevel;
|
||||
private KEvent _completionEvent;
|
||||
#pragma warning disable IDE0052 // Remove unread private member
|
||||
private readonly FriendServicePermissionLevel _permissionLevel;
|
||||
#pragma warning restore IDE0052
|
||||
private KEvent _completionEvent;
|
||||
|
||||
public IFriendService(FriendServicePermissionLevel permissionLevel)
|
||||
{
|
||||
@@ -27,10 +29,7 @@ namespace Ryujinx.HLE.HOS.Services.Friend.ServiceCreator
|
||||
// GetCompletionEvent() -> handle<copy>
|
||||
public ResultCode GetCompletionEvent(ServiceCtx context)
|
||||
{
|
||||
if (_completionEvent == null)
|
||||
{
|
||||
_completionEvent = new KEvent(context.Device.System.KernelContext);
|
||||
}
|
||||
_completionEvent ??= new KEvent(context.Device.System.KernelContext);
|
||||
|
||||
if (context.Process.HandleTable.GenerateHandle(_completionEvent.ReadableEvent, out int completionEventHandle) != Result.Success)
|
||||
{
|
||||
@@ -62,7 +61,7 @@ namespace Ryujinx.HLE.HOS.Services.Friend.ServiceCreator
|
||||
// Padding
|
||||
context.RequestData.ReadInt32();
|
||||
|
||||
UserId userId = context.RequestData.ReadStruct<UserId>();
|
||||
UserId userId = context.RequestData.ReadStruct<UserId>();
|
||||
FriendFilter filter = context.RequestData.ReadStruct<FriendFilter>();
|
||||
|
||||
// Pid placeholder
|
||||
@@ -101,7 +100,7 @@ namespace Ryujinx.HLE.HOS.Services.Friend.ServiceCreator
|
||||
// Padding
|
||||
context.RequestData.ReadInt32();
|
||||
|
||||
UserId userId = context.RequestData.ReadStruct<UserId>();
|
||||
UserId userId = context.RequestData.ReadStruct<UserId>();
|
||||
FriendFilter filter = context.RequestData.ReadStruct<FriendFilter>();
|
||||
|
||||
// Pid placeholder
|
||||
@@ -115,7 +114,8 @@ namespace Ryujinx.HLE.HOS.Services.Friend.ServiceCreator
|
||||
// There are no friends online, so we return 0 because the nn::account::NetworkServiceAccountId array is empty.
|
||||
context.ResponseData.Write(0);
|
||||
|
||||
Logger.Stub?.PrintStub(LogClass.ServiceFriend, new {
|
||||
Logger.Stub?.PrintStub(LogClass.ServiceFriend, new
|
||||
{
|
||||
UserId = userId.ToString(),
|
||||
offset,
|
||||
filter.PresenceStatus,
|
||||
@@ -233,7 +233,7 @@ namespace Ryujinx.HLE.HOS.Services.Friend.ServiceCreator
|
||||
context.RequestData.ReadInt64();
|
||||
|
||||
ulong position = context.Request.PtrBuff[0].Position;
|
||||
ulong size = context.Request.PtrBuff[0].Size;
|
||||
ulong size = context.Request.PtrBuff[0].Size;
|
||||
|
||||
ReadOnlySpan<UserPresence> userPresenceInputArray = MemoryMarshal.Cast<byte, UserPresence>(context.Memory.GetSpan(position, (int)size));
|
||||
|
||||
@@ -251,8 +251,8 @@ namespace Ryujinx.HLE.HOS.Services.Friend.ServiceCreator
|
||||
// nn::friends::GetPlayHistoryRegistrationKey(b8 unknown, nn::account::Uid) -> buffer<nn::friends::PlayHistoryRegistrationKey, 0x1a>
|
||||
public ResultCode GetPlayHistoryRegistrationKey(ServiceCtx context)
|
||||
{
|
||||
bool unknownBool = context.RequestData.ReadBoolean();
|
||||
UserId userId = context.RequestData.ReadStruct<UserId>();
|
||||
bool unknownBool = context.RequestData.ReadBoolean();
|
||||
UserId userId = context.RequestData.ReadStruct<UserId>();
|
||||
|
||||
context.Response.PtrBuff[0] = context.Response.PtrBuff[0].WithSize(0x40UL);
|
||||
|
||||
@@ -274,18 +274,18 @@ namespace Ryujinx.HLE.HOS.Services.Friend.ServiceCreator
|
||||
// Then it checks if an Uuid is already stored for the UserId, if not it generates a random Uuid.
|
||||
// And store it in the savedata 8000000000000080 in the friends:/uid.bin file.
|
||||
|
||||
Array16<byte> randomGuid = new Array16<byte>();
|
||||
Array16<byte> randomGuid = new();
|
||||
|
||||
Guid.NewGuid().ToByteArray().AsSpan().CopyTo(randomGuid.AsSpan());
|
||||
|
||||
PlayHistoryRegistrationKey playHistoryRegistrationKey = new PlayHistoryRegistrationKey
|
||||
PlayHistoryRegistrationKey playHistoryRegistrationKey = new()
|
||||
{
|
||||
Type = 0x101,
|
||||
KeyIndex = (byte)(randomBytes[0] & 7),
|
||||
UserIdBool = 0, // TODO: Find it.
|
||||
Type = 0x101,
|
||||
KeyIndex = (byte)(randomBytes[0] & 7),
|
||||
UserIdBool = 0, // TODO: Find it.
|
||||
UnknownBool = (byte)(unknownBool ? 1 : 0), // TODO: Find it.
|
||||
Reserved = new Array11<byte>(),
|
||||
Uuid = randomGuid
|
||||
Reserved = new Array11<byte>(),
|
||||
Uuid = randomGuid,
|
||||
};
|
||||
|
||||
ReadOnlySpan<byte> playHistoryRegistrationKeyBuffer = SpanHelpers.AsByteSpan(ref playHistoryRegistrationKey);
|
||||
@@ -303,7 +303,7 @@ namespace Ryujinx.HLE.HOS.Services.Friend.ServiceCreator
|
||||
|
||||
*/
|
||||
|
||||
context.Memory.Write(bufferPosition, playHistoryRegistrationKeyBuffer);
|
||||
context.Memory.Write(bufferPosition, playHistoryRegistrationKeyBuffer);
|
||||
context.Memory.Write(bufferPosition + 0x20, new byte[0x20]); // HmacHash
|
||||
|
||||
return ResultCode.Success;
|
||||
@@ -317,16 +317,20 @@ namespace Ryujinx.HLE.HOS.Services.Friend.ServiceCreator
|
||||
|
||||
// Pid placeholder
|
||||
context.RequestData.ReadInt64();
|
||||
#pragma warning disable IDE0059 // Remove unnecessary value assignment
|
||||
ulong pid = context.Request.HandleDesc.PId;
|
||||
|
||||
ulong playHistoryRegistrationKeyPosition = context.Request.PtrBuff[0].Position;
|
||||
ulong PlayHistoryRegistrationKeySize = context.Request.PtrBuff[0].Size;
|
||||
ulong playHistoryRegistrationKeySize = context.Request.PtrBuff[0].Size;
|
||||
|
||||
ulong inAppScreenName1Position = context.Request.PtrBuff[1].Position;
|
||||
ulong inAppScreenName1Size = context.Request.PtrBuff[1].Size;
|
||||
#pragma warning restore IDE0059
|
||||
ulong inAppScreenName1Size = context.Request.PtrBuff[1].Size;
|
||||
|
||||
#pragma warning disable IDE0059 // Remove unnecessary value assignment
|
||||
ulong inAppScreenName2Position = context.Request.PtrBuff[2].Position;
|
||||
ulong inAppScreenName2Size = context.Request.PtrBuff[2].Size;
|
||||
#pragma warning restore IDE0059
|
||||
ulong inAppScreenName2Size = context.Request.PtrBuff[2].Size;
|
||||
|
||||
if (userId.IsNull || inAppScreenName1Size > 0x48 || inAppScreenName2Size > 0x48)
|
||||
{
|
||||
@@ -334,7 +338,9 @@ namespace Ryujinx.HLE.HOS.Services.Friend.ServiceCreator
|
||||
}
|
||||
|
||||
// TODO: Call nn::arp::GetApplicationControlProperty here when implemented.
|
||||
#pragma warning disable IDE0059 // Remove unnecessary value assignment
|
||||
ApplicationControlProperty controlProperty = context.Device.Processes.ActiveApplication.ApplicationControlProperties;
|
||||
#pragma warning restore IDE0059
|
||||
|
||||
/*
|
||||
|
||||
@@ -349,4 +355,4 @@ namespace Ryujinx.HLE.HOS.Services.Friend.ServiceCreator
|
||||
return ResultCode.Success;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,24 +11,24 @@ namespace Ryujinx.HLE.HOS.Services.Friend.ServiceCreator
|
||||
{
|
||||
class INotificationService : DisposableIpcService
|
||||
{
|
||||
private readonly UserId _userId;
|
||||
private readonly UserId _userId;
|
||||
private readonly FriendServicePermissionLevel _permissionLevel;
|
||||
|
||||
private readonly object _lock = new();
|
||||
|
||||
private KEvent _notificationEvent;
|
||||
private int _notificationEventHandle = 0;
|
||||
private readonly KEvent _notificationEvent;
|
||||
private int _notificationEventHandle = 0;
|
||||
|
||||
private LinkedList<NotificationInfo> _notifications;
|
||||
private readonly LinkedList<NotificationInfo> _notifications;
|
||||
|
||||
private bool _hasNewFriendRequest;
|
||||
private bool _hasFriendListUpdate;
|
||||
|
||||
public INotificationService(ServiceCtx context, UserId userId, FriendServicePermissionLevel permissionLevel)
|
||||
{
|
||||
_userId = userId;
|
||||
_permissionLevel = permissionLevel;
|
||||
_notifications = new LinkedList<NotificationInfo>();
|
||||
_userId = userId;
|
||||
_permissionLevel = permissionLevel;
|
||||
_notifications = new LinkedList<NotificationInfo>();
|
||||
_notificationEvent = new KEvent(context.Device.System.KernelContext);
|
||||
|
||||
_hasNewFriendRequest = false;
|
||||
@@ -106,7 +106,7 @@ namespace Ryujinx.HLE.HOS.Services.Friend.ServiceCreator
|
||||
{
|
||||
if (!_hasFriendListUpdate)
|
||||
{
|
||||
NotificationInfo friendListNotification = new NotificationInfo();
|
||||
NotificationInfo friendListNotification = new();
|
||||
|
||||
if (_notifications.Count != 0)
|
||||
{
|
||||
@@ -119,7 +119,7 @@ namespace Ryujinx.HLE.HOS.Services.Friend.ServiceCreator
|
||||
|
||||
if (_hasNewFriendRequest)
|
||||
{
|
||||
NotificationInfo newFriendRequestNotification = new NotificationInfo();
|
||||
NotificationInfo newFriendRequestNotification = new();
|
||||
|
||||
if (_notifications.Count != 0)
|
||||
{
|
||||
@@ -153,9 +153,9 @@ namespace Ryujinx.HLE.HOS.Services.Friend.ServiceCreator
|
||||
SignalFriendListUpdate(targetId);
|
||||
}
|
||||
|
||||
NotificationInfo newFriendRequestNotification = new NotificationInfo
|
||||
NotificationInfo newFriendRequestNotification = new()
|
||||
{
|
||||
Type = NotificationEventType.NewFriendRequest
|
||||
Type = NotificationEventType.NewFriendRequest,
|
||||
};
|
||||
|
||||
_notifications.AddLast(newFriendRequestNotification);
|
||||
@@ -175,4 +175,4 @@ namespace Ryujinx.HLE.HOS.Services.Friend.ServiceCreator
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,23 +4,20 @@ namespace Ryujinx.HLE.HOS.Services.Friend.ServiceCreator.NotificationService
|
||||
{
|
||||
public sealed class NotificationEventHandler
|
||||
{
|
||||
private static NotificationEventHandler instance;
|
||||
private static object instanceLock = new object();
|
||||
private static NotificationEventHandler _instance;
|
||||
private static readonly object _instanceLock = new();
|
||||
|
||||
private INotificationService[] _registry;
|
||||
private readonly INotificationService[] _registry;
|
||||
|
||||
public static NotificationEventHandler Instance
|
||||
{
|
||||
get
|
||||
{
|
||||
lock (instanceLock)
|
||||
lock (_instanceLock)
|
||||
{
|
||||
if (instance == null)
|
||||
{
|
||||
instance = new NotificationEventHandler();
|
||||
}
|
||||
_instance ??= new NotificationEventHandler();
|
||||
|
||||
return instance;
|
||||
return _instance;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -61,10 +58,7 @@ namespace Ryujinx.HLE.HOS.Services.Friend.ServiceCreator.NotificationService
|
||||
{
|
||||
for (int i = 0; i < _registry.Length; i++)
|
||||
{
|
||||
if (_registry[i] != null)
|
||||
{
|
||||
_registry[i].SignalFriendListUpdate(targetId);
|
||||
}
|
||||
_registry[i]?.SignalFriendListUpdate(targetId);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -73,11 +67,8 @@ namespace Ryujinx.HLE.HOS.Services.Friend.ServiceCreator.NotificationService
|
||||
{
|
||||
for (int i = 0; i < _registry.Length; i++)
|
||||
{
|
||||
if (_registry[i] != null)
|
||||
{
|
||||
_registry[i].SignalNewFriendRequest(targetId);
|
||||
}
|
||||
_registry[i]?.SignalNewFriendRequest(targetId);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
{
|
||||
enum NotificationEventType : uint
|
||||
{
|
||||
Invalid = 0x0,
|
||||
Invalid = 0x0,
|
||||
FriendListUpdate = 0x1,
|
||||
NewFriendRequest = 0x65
|
||||
NewFriendRequest = 0x65,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,4 +10,4 @@ namespace Ryujinx.HLE.HOS.Services.Friend.ServiceCreator.NotificationService
|
||||
private Array4<byte> _padding;
|
||||
public long NetworkUserIdPlaceholder;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,15 +5,15 @@ namespace Ryujinx.HLE.HOS.Services.Friend.ServiceCreator
|
||||
[Flags]
|
||||
enum FriendServicePermissionLevel
|
||||
{
|
||||
UserMask = 1,
|
||||
ViewerMask = 2,
|
||||
UserMask = 1,
|
||||
ViewerMask = 2,
|
||||
ManagerMask = 4,
|
||||
SystemMask = 8,
|
||||
SystemMask = 8,
|
||||
|
||||
Administrator = -1,
|
||||
User = UserMask,
|
||||
Viewer = UserMask | ViewerMask,
|
||||
Manager = UserMask | ViewerMask | ManagerMask,
|
||||
System = UserMask | SystemMask
|
||||
User = UserMask,
|
||||
Viewer = UserMask | ViewerMask,
|
||||
Manager = UserMask | ViewerMask | ManagerMask,
|
||||
System = UserMask | SystemMask,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,10 +6,10 @@ namespace Ryujinx.HLE.HOS.Services.Friend.ServiceCreator
|
||||
[StructLayout(LayoutKind.Sequential, Size = 0x20)]
|
||||
struct PlayHistoryRegistrationKey
|
||||
{
|
||||
public ushort Type;
|
||||
public byte KeyIndex;
|
||||
public byte UserIdBool;
|
||||
public byte UnknownBool;
|
||||
public ushort Type;
|
||||
public byte KeyIndex;
|
||||
public byte UserIdBool;
|
||||
public byte UnknownBool;
|
||||
public Array11<byte> Reserved;
|
||||
public Array16<byte> Uuid;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user