[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:
TSRBerry
2023-07-16 19:31:14 +02:00
committed by GitHub
parent fec8291c17
commit 326749498b
1015 changed files with 8173 additions and 7615 deletions

View File

@@ -11,19 +11,21 @@ namespace Ryujinx.HLE.HOS.Services.Caps
{
class CaptureManager
{
private string _sdCardPath;
private readonly string _sdCardPath;
private uint _shimLibraryVersion;
public CaptureManager(Switch device)
{
_sdCardPath = device.FileSystem.GetSdCardPath();
_sdCardPath = FileSystem.VirtualFileSystem.GetSdCardPath();
}
public ResultCode SetShimLibraryVersion(ServiceCtx context)
{
ulong shimLibraryVersion = context.RequestData.ReadUInt64();
ulong shimLibraryVersion = context.RequestData.ReadUInt64();
#pragma warning disable IDE0059 // Remove unnecessary value assignment
ulong appletResourceUserId = context.RequestData.ReadUInt64();
#pragma warning restore IDE0059
// TODO: Service checks if the pid is present in an internal list and returns ResultCode.BlacklistedPid if it is.
// The list contents needs to be determined.
@@ -82,28 +84,28 @@ namespace Ryujinx.HLE.HOS.Services.Caps
applicationAlbumEntry = new ApplicationAlbumEntry()
{
Size = (ulong)Unsafe.SizeOf<ApplicationAlbumEntry>(),
TitleId = titleId,
Size = (ulong)Unsafe.SizeOf<ApplicationAlbumEntry>(),
TitleId = titleId,
AlbumFileDateTime = new AlbumFileDateTime()
{
Year = (ushort)currentDateTime.Year,
Month = (byte)currentDateTime.Month,
Day = (byte)currentDateTime.Day,
Hour = (byte)currentDateTime.Hour,
Minute = (byte)currentDateTime.Minute,
Second = (byte)currentDateTime.Second,
UniqueId = 0
Year = (ushort)currentDateTime.Year,
Month = (byte)currentDateTime.Month,
Day = (byte)currentDateTime.Day,
Hour = (byte)currentDateTime.Hour,
Minute = (byte)currentDateTime.Minute,
Second = (byte)currentDateTime.Second,
UniqueId = 0,
},
AlbumStorage = AlbumStorage.Sd,
ContentType = ContentType.Screenshot,
Padding = new Array5<byte>(),
Unknown0x1f = 1
AlbumStorage = AlbumStorage.Sd,
ContentType = ContentType.Screenshot,
Padding = new Array5<byte>(),
Unknown0x1f = 1,
};
// NOTE: The hex hash is a HMAC-SHA256 (first 32 bytes) using a hardcoded secret key over the titleId, we can simulate it by hashing the titleId instead.
string hash = Convert.ToHexString(SHA256.HashData(BitConverter.GetBytes(titleId))).Remove(0x20);
string hash = Convert.ToHexString(SHA256.HashData(BitConverter.GetBytes(titleId))).Remove(0x20);
string folderPath = Path.Combine(_sdCardPath, "Nintendo", "Album", currentDateTime.Year.ToString("00"), currentDateTime.Month.ToString("00"), currentDateTime.Day.ToString("00"));
string filePath = GenerateFilePath(folderPath, applicationAlbumEntry, currentDateTime, hash);
string filePath = GenerateFilePath(folderPath, applicationAlbumEntry, currentDateTime, hash);
// TODO: Handle that using the FS service implementation and return the right error code instead of throwing exceptions.
Directory.CreateDirectory(folderPath);
@@ -131,4 +133,4 @@ namespace Ryujinx.HLE.HOS.Services.Caps
return Path.Combine(folderPath, fileName);
}
}
}
}

View File

@@ -5,4 +5,4 @@ namespace Ryujinx.HLE.HOS.Services.Caps
{
public IAlbumAccessorService(ServiceCtx context) { }
}
}
}

View File

@@ -18,7 +18,7 @@ namespace Ryujinx.HLE.HOS.Services.Caps
[CommandCmif(102)]
// GetAlbumFileList0AafeAruidDeprecated(pid, u16 content_type, u64 start_time, u64 end_time, nn::applet::AppletResourceUserId) -> (u64 count, buffer<ApplicationAlbumFileEntry, 0x6>)
public ResultCode GetAlbumFileList0AafeAruidDeprecated(ServiceCtx context)
public ResultCode GetAlbumFileList0AafeAruidDeprecated(ServiceCtx context)
{
// NOTE: ApplicationAlbumFileEntry size is 0x30.
return GetAlbumFileList(context);
@@ -35,18 +35,18 @@ namespace Ryujinx.HLE.HOS.Services.Caps
private ResultCode GetAlbumFileList(ServiceCtx context)
{
ResultCode resultCode = ResultCode.Success;
ulong count = 0;
ulong count = 0;
ContentType contentType = (ContentType)context.RequestData.ReadUInt16();
ulong startTime = context.RequestData.ReadUInt64();
ulong endTime = context.RequestData.ReadUInt64();
ulong startTime = context.RequestData.ReadUInt64();
ulong endTime = context.RequestData.ReadUInt64();
context.RequestData.ReadUInt16(); // Alignment.
ulong appletResourceUserId = context.RequestData.ReadUInt64();
ulong applicationAlbumFileEntryPosition = context.Request.ReceiveBuff[0].Position;
ulong applicationAlbumFileEntrySize = context.Request.ReceiveBuff[0].Size;
ulong applicationAlbumFileEntrySize = context.Request.ReceiveBuff[0].Size;
MemoryHelper.FillWithZeros(context.Memory, applicationAlbumFileEntryPosition, (int)applicationAlbumFileEntrySize);
@@ -66,4 +66,4 @@ namespace Ryujinx.HLE.HOS.Services.Caps
return resultCode;
}
}
}
}

View File

@@ -12,4 +12,4 @@ namespace Ryujinx.HLE.HOS.Services.Caps
return context.Device.System.CaptureManager.SetShimLibraryVersion(context);
}
}
}
}

View File

@@ -20,14 +20,18 @@ namespace Ryujinx.HLE.HOS.Services.Caps
public ResultCode SaveScreenShotEx0(ServiceCtx context)
{
// TODO: Use the ScreenShotAttribute.
#pragma warning disable IDE0059 // Remove unnecessary value assignment
ScreenShotAttribute screenShotAttribute = context.RequestData.ReadStruct<ScreenShotAttribute>();
uint unknown = context.RequestData.ReadUInt32();
uint unknown = context.RequestData.ReadUInt32();
#pragma warning restore IDE0059
ulong appletResourceUserId = context.RequestData.ReadUInt64();
ulong pidPlaceholder = context.RequestData.ReadUInt64();
#pragma warning disable IDE0059 // Remove unnecessary value assignment
ulong pidPlaceholder = context.RequestData.ReadUInt64();
#pragma warning restore IDE0059
ulong screenshotDataPosition = context.Request.SendBuff[0].Position;
ulong screenshotDataSize = context.Request.SendBuff[0].Size;
ulong screenshotDataSize = context.Request.SendBuff[0].Size;
byte[] screenshotData = context.Memory.GetSpan(screenshotDataPosition, (int)screenshotDataSize, true).ToArray();
@@ -43,20 +47,22 @@ namespace Ryujinx.HLE.HOS.Services.Caps
public ResultCode SaveScreenShotEx1(ServiceCtx context)
{
// TODO: Use the ScreenShotAttribute.
ScreenShotAttribute screenShotAttribute = context.RequestData.ReadStruct<ScreenShotAttribute>();
_ = context.RequestData.ReadStruct<ScreenShotAttribute>();
uint unknown = context.RequestData.ReadUInt32();
_ = context.RequestData.ReadUInt32();
ulong appletResourceUserId = context.RequestData.ReadUInt64();
ulong pidPlaceholder = context.RequestData.ReadUInt64();
_ = context.RequestData.ReadUInt64();
ulong applicationDataPosition = context.Request.SendBuff[0].Position;
ulong applicationDataSize = context.Request.SendBuff[0].Size;
ulong applicationDataSize = context.Request.SendBuff[0].Size;
ulong screenshotDataPosition = context.Request.SendBuff[1].Position;
ulong screenshotDataSize = context.Request.SendBuff[1].Size;
ulong screenshotDataSize = context.Request.SendBuff[1].Size;
// TODO: Parse the application data: At 0x00 it's UserData (Size of 0x400), at 0x404 it's a uint UserDataSize (Always empty for now).
byte[] applicationData = context.Memory.GetSpan(applicationDataPosition, (int)applicationDataSize).ToArray();
_ = context.Memory.GetSpan(applicationDataPosition, (int)applicationDataSize).ToArray();
byte[] screenshotData = context.Memory.GetSpan(screenshotDataPosition, (int)screenshotDataSize, true).ToArray();
@@ -72,19 +78,20 @@ namespace Ryujinx.HLE.HOS.Services.Caps
public ResultCode SaveScreenShotEx2(ServiceCtx context)
{
// TODO: Use the ScreenShotAttribute.
ScreenShotAttribute screenShotAttribute = context.RequestData.ReadStruct<ScreenShotAttribute>();
_ = context.RequestData.ReadStruct<ScreenShotAttribute>();
uint unknown = context.RequestData.ReadUInt32();
_ = context.RequestData.ReadUInt32();
ulong appletResourceUserId = context.RequestData.ReadUInt64();
ulong userIdListPosition = context.Request.SendBuff[0].Position;
ulong userIdListSize = context.Request.SendBuff[0].Size;
ulong userIdListSize = context.Request.SendBuff[0].Size;
ulong screenshotDataPosition = context.Request.SendBuff[1].Position;
ulong screenshotDataSize = context.Request.SendBuff[1].Size;
ulong screenshotDataSize = context.Request.SendBuff[1].Size;
// TODO: Parse the UserIdList.
byte[] userIdList = context.Memory.GetSpan(userIdListPosition, (int)userIdListSize).ToArray();
_ = context.Memory.GetSpan(userIdListPosition, (int)userIdListSize).ToArray();
byte[] screenshotData = context.Memory.GetSpan(screenshotDataPosition, (int)screenshotDataSize, true).ToArray();
@@ -95,4 +102,4 @@ namespace Ryujinx.HLE.HOS.Services.Caps
return resultCode;
}
}
}
}

View File

@@ -5,4 +5,4 @@
{
public IScreenShotControlService(ServiceCtx context) { }
}
}
}

View File

@@ -5,4 +5,4 @@ namespace Ryujinx.HLE.HOS.Services.Caps
{
public IScreenshotService(ServiceCtx context) { }
}
}
}

View File

@@ -2,17 +2,17 @@
{
enum ResultCode
{
ModuleId = 206,
ModuleId = 206,
ErrorCodeShift = 9,
Success = 0,
InvalidArgument = (2 << ErrorCodeShift) | ModuleId,
ShimLibraryVersionAlreadySet = (7 << ErrorCodeShift) | ModuleId,
OutOfRange = (8 << ErrorCodeShift) | ModuleId,
InvalidContentType = (14 << ErrorCodeShift) | ModuleId,
NullOutputBuffer = (141 << ErrorCodeShift) | ModuleId,
NullInputBuffer = (142 << ErrorCodeShift) | ModuleId,
BlacklistedPid = (822 << ErrorCodeShift) | ModuleId
InvalidArgument = (2 << ErrorCodeShift) | ModuleId,
ShimLibraryVersionAlreadySet = (7 << ErrorCodeShift) | ModuleId,
OutOfRange = (8 << ErrorCodeShift) | ModuleId,
InvalidContentType = (14 << ErrorCodeShift) | ModuleId,
NullOutputBuffer = (141 << ErrorCodeShift) | ModuleId,
NullInputBuffer = (142 << ErrorCodeShift) | ModuleId,
BlacklistedPid = (822 << ErrorCodeShift) | ModuleId,
}
}
}

View File

@@ -6,11 +6,11 @@ namespace Ryujinx.HLE.HOS.Services.Caps.Types
struct AlbumFileDateTime
{
public ushort Year;
public byte Month;
public byte Day;
public byte Hour;
public byte Minute;
public byte Second;
public byte UniqueId;
public byte Month;
public byte Day;
public byte Hour;
public byte Minute;
public byte Second;
public byte UniqueId;
}
}
}

View File

@@ -5,6 +5,6 @@
Degrees0,
Degrees90,
Degrees180,
Degrees270
Degrees270,
}
}
}

View File

@@ -3,6 +3,6 @@
enum AlbumStorage : byte
{
Nand,
Sd
Sd,
}
}
}

View File

@@ -6,12 +6,12 @@ namespace Ryujinx.HLE.HOS.Services.Caps.Types
[StructLayout(LayoutKind.Sequential, Size = 0x20)]
struct ApplicationAlbumEntry
{
public ulong Size;
public ulong TitleId;
public ulong Size;
public ulong TitleId;
public AlbumFileDateTime AlbumFileDateTime;
public AlbumStorage AlbumStorage;
public ContentType ContentType;
public Array5<byte> Padding;
public byte Unknown0x1f; // Always 1
public AlbumStorage AlbumStorage;
public ContentType ContentType;
public Array5<byte> Padding;
public byte Unknown0x1f; // Always 1
}
}
}

View File

@@ -5,6 +5,6 @@
Screenshot,
Movie,
ExtraMovie,
Unknown
Unknown,
}
}
}

View File

@@ -6,10 +6,10 @@ namespace Ryujinx.HLE.HOS.Services.Caps.Types
[StructLayout(LayoutKind.Sequential, Size = 0x40)]
struct ScreenShotAttribute
{
public uint Unknown0x00; // Always 0
public uint Unknown0x00; // Always 0
public AlbumImageOrientation AlbumImageOrientation;
public uint Unknown0x08; // Always 0
public uint Unknown0x0C; // Always 1
public Array30<byte> Unknown0x10; // Always 0
public uint Unknown0x08; // Always 0
public uint Unknown0x0C; // Always 1
public Array30<byte> Unknown0x10; // Always 0
}
}
}