mirror of
https://github.com/aaru-dps/Aaru.git
synced 2025-12-16 19:24:25 +00:00
[STFS] Use new source generator based big endian marshaller
This commit is contained in:
@@ -26,7 +26,7 @@ public sealed partial class Stfs
|
|||||||
|
|
||||||
stream.ReadExactly(hdr, 0, hdr.Length);
|
stream.ReadExactly(hdr, 0, hdr.Length);
|
||||||
|
|
||||||
RemotePackage header = Marshal.ByteArrayToStructureBigEndian<RemotePackage>(hdr);
|
RemotePackage header = Marshal.ByteArrayToStructureBigEndianGenerated<RemotePackage>(hdr);
|
||||||
|
|
||||||
if(header.Magic is not (PackageMagic.Console or PackageMagic.Live or PackageMagic.Microsoft)) return false;
|
if(header.Magic is not (PackageMagic.Console or PackageMagic.Live or PackageMagic.Microsoft)) return false;
|
||||||
|
|
||||||
@@ -51,7 +51,7 @@ public sealed partial class Stfs
|
|||||||
// Reverse positions that hold UTF16-BE strings
|
// Reverse positions that hold UTF16-BE strings
|
||||||
ReverseShorts(hdr, 0x0411, 0x1300);
|
ReverseShorts(hdr, 0x0411, 0x1300);
|
||||||
|
|
||||||
RemotePackage header = Marshal.ByteArrayToStructureBigEndian<RemotePackage>(hdr);
|
RemotePackage header = Marshal.ByteArrayToStructureBigEndianGenerated<RemotePackage>(hdr);
|
||||||
|
|
||||||
if(header.Magic is not (PackageMagic.Console or PackageMagic.Live or PackageMagic.Microsoft)) return;
|
if(header.Magic is not (PackageMagic.Console or PackageMagic.Live or PackageMagic.Microsoft)) return;
|
||||||
|
|
||||||
@@ -78,7 +78,7 @@ public sealed partial class Stfs
|
|||||||
|
|
||||||
if(header.Magic == PackageMagic.Console)
|
if(header.Magic == PackageMagic.Console)
|
||||||
{
|
{
|
||||||
ConsolePackage consolePackage = Marshal.ByteArrayToStructureBigEndian<ConsolePackage>(hdr);
|
ConsolePackage consolePackage = Marshal.ByteArrayToStructureBigEndianGenerated<ConsolePackage>(hdr);
|
||||||
|
|
||||||
sb.AppendFormat(Localization.Certificate_owner_console_ID_0_1_2_3_4,
|
sb.AppendFormat(Localization.Certificate_owner_console_ID_0_1_2_3_4,
|
||||||
consolePackage.CertificateOwnerConsoleId[0],
|
consolePackage.CertificateOwnerConsoleId[0],
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ public sealed partial class Stfs
|
|||||||
|
|
||||||
_stream.ReadExactly(hdr, 0, hdr.Length);
|
_stream.ReadExactly(hdr, 0, hdr.Length);
|
||||||
|
|
||||||
RemotePackage header = Marshal.ByteArrayToStructureBigEndian<RemotePackage>(hdr);
|
RemotePackage header = Marshal.ByteArrayToStructureBigEndianGenerated<RemotePackage>(hdr);
|
||||||
|
|
||||||
if(header.Magic is not (PackageMagic.Console or PackageMagic.Live or PackageMagic.Microsoft))
|
if(header.Magic is not (PackageMagic.Console or PackageMagic.Live or PackageMagic.Microsoft))
|
||||||
return ErrorNumber.InvalidArgument;
|
return ErrorNumber.InvalidArgument;
|
||||||
@@ -56,7 +56,7 @@ public sealed partial class Stfs
|
|||||||
|
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
FileTableEntry entry = Marshal.ByteArrayToStructureBigEndian<FileTableEntry>(buffer, in_pos, entrySize);
|
FileTableEntry entry = Marshal.ByteArrayToStructureBigEndianGenerated<FileTableEntry>(buffer, in_pos, entrySize);
|
||||||
|
|
||||||
if(entry.FilenameLength == 0) break;
|
if(entry.FilenameLength == 0) break;
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Runtime.InteropServices;
|
using System.Runtime.InteropServices;
|
||||||
|
using Aaru.CommonTypes.Attributes;
|
||||||
|
|
||||||
namespace Aaru.Archives;
|
namespace Aaru.Archives;
|
||||||
|
|
||||||
@@ -8,7 +9,8 @@ public sealed partial class Stfs
|
|||||||
#region Nested type: ConsolePackage
|
#region Nested type: ConsolePackage
|
||||||
|
|
||||||
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
|
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
|
||||||
struct ConsolePackage
|
[SwapEndian]
|
||||||
|
partial struct ConsolePackage
|
||||||
{
|
{
|
||||||
public PackageMagic Magic;
|
public PackageMagic Magic;
|
||||||
public ushort PkCertificateSize;
|
public ushort PkCertificateSize;
|
||||||
@@ -49,7 +51,8 @@ public sealed partial class Stfs
|
|||||||
#region Nested type: FileTableEntry
|
#region Nested type: FileTableEntry
|
||||||
|
|
||||||
[StructLayout(LayoutKind.Sequential, Pack = 1)]
|
[StructLayout(LayoutKind.Sequential, Pack = 1)]
|
||||||
struct FileTableEntry
|
[SwapEndian]
|
||||||
|
partial struct FileTableEntry
|
||||||
{
|
{
|
||||||
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 0x28)]
|
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 0x28)]
|
||||||
public byte[] Filename;
|
public byte[] Filename;
|
||||||
@@ -73,7 +76,8 @@ public sealed partial class Stfs
|
|||||||
#region Nested type: LicenseEntry
|
#region Nested type: LicenseEntry
|
||||||
|
|
||||||
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode, Pack = 1)]
|
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode, Pack = 1)]
|
||||||
struct LicenseEntry
|
[SwapEndian]
|
||||||
|
partial struct LicenseEntry
|
||||||
{
|
{
|
||||||
public long LicenseId;
|
public long LicenseId;
|
||||||
public int LicenseBits;
|
public int LicenseBits;
|
||||||
@@ -85,7 +89,8 @@ public sealed partial class Stfs
|
|||||||
#region Nested type: LocalizedString
|
#region Nested type: LocalizedString
|
||||||
|
|
||||||
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode, Pack = 1)]
|
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode, Pack = 1)]
|
||||||
struct LocalizedString
|
[SwapEndian]
|
||||||
|
partial struct LocalizedString
|
||||||
{
|
{
|
||||||
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 128)]
|
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 128)]
|
||||||
public string Name;
|
public string Name;
|
||||||
@@ -96,7 +101,8 @@ public sealed partial class Stfs
|
|||||||
#region Nested type: Metadata
|
#region Nested type: Metadata
|
||||||
|
|
||||||
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode, Pack = 1)]
|
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode, Pack = 1)]
|
||||||
struct Metadata
|
[SwapEndian]
|
||||||
|
partial struct Metadata
|
||||||
{
|
{
|
||||||
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 16)]
|
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 16)]
|
||||||
public LicenseEntry[] Licensing;
|
public LicenseEntry[] Licensing;
|
||||||
@@ -157,7 +163,8 @@ public sealed partial class Stfs
|
|||||||
#region Nested type: RemotePackage
|
#region Nested type: RemotePackage
|
||||||
|
|
||||||
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode, Pack = 1)]
|
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode, Pack = 1)]
|
||||||
struct RemotePackage
|
[SwapEndian]
|
||||||
|
partial struct RemotePackage
|
||||||
{
|
{
|
||||||
public PackageMagic Magic;
|
public PackageMagic Magic;
|
||||||
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 256)]
|
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 256)]
|
||||||
|
|||||||
Reference in New Issue
Block a user