mirror of
https://github.com/SabreTools/SabreTools.Models.git
synced 2026-09-22 06:36:47 +00:00
Ensure explicit getters and setters
This commit is contained in:
@@ -9,9 +9,9 @@ namespace SabreTools.Models.AACS
|
||||
/// Null-terminated ASCII string representing the copyright
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public string Copyright;
|
||||
public string Copyright { get; set; }
|
||||
#else
|
||||
public string? Copyright;
|
||||
public string? Copyright { get; set; }
|
||||
#endif
|
||||
}
|
||||
}
|
||||
@@ -9,7 +9,7 @@ namespace SabreTools.Models.AACS
|
||||
/// field indicates that only one ID is being revoked, a value of one
|
||||
/// in the Range field indicates two ID’s are being revoked, and so on.
|
||||
/// </summary>
|
||||
public ushort Range;
|
||||
public ushort Range { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// A 6-byte Drive ID value identifying the Licensed Drive being revoked
|
||||
@@ -17,9 +17,9 @@ namespace SabreTools.Models.AACS
|
||||
/// case of a non-zero Range value).
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public byte[] DriveID;
|
||||
public byte[] DriveID { get; set; }
|
||||
#else
|
||||
public byte[]? DriveID;
|
||||
public byte[]? DriveID { get; set; }
|
||||
#endif
|
||||
}
|
||||
}
|
||||
@@ -16,15 +16,15 @@ namespace SabreTools.Models.AACS
|
||||
/// <summary>
|
||||
/// The total number of Drive Revocation List Entry fields that follow.
|
||||
/// </summary>
|
||||
public uint TotalNumberOfEntries;
|
||||
public uint TotalNumberOfEntries { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Revocation list entries
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public DriveRevocationSignatureBlock[] SignatureBlocks;
|
||||
public DriveRevocationSignatureBlock[] SignatureBlocks { get; set; }
|
||||
#else
|
||||
public DriveRevocationSignatureBlock?[]? SignatureBlocks;
|
||||
public DriveRevocationSignatureBlock?[]? SignatureBlocks { get; set; }
|
||||
#endif
|
||||
}
|
||||
}
|
||||
@@ -6,16 +6,16 @@ namespace SabreTools.Models.AACS
|
||||
/// <summary>
|
||||
/// The number of Drive Revocation List Entry fields in the signature block.
|
||||
/// </summary>
|
||||
public uint NumberOfEntries;
|
||||
public uint NumberOfEntries { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// A list of 8-byte Host Drive List Entry fields, the length of this
|
||||
/// list being equal to the number in the signature block.
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public DriveRevocationListEntry[] EntryFields;
|
||||
public DriveRevocationListEntry[] EntryFields { get; set; }
|
||||
#else
|
||||
public DriveRevocationListEntry?[]? EntryFields;
|
||||
public DriveRevocationListEntry?[]? EntryFields { get; set; }
|
||||
#endif
|
||||
}
|
||||
}
|
||||
@@ -19,9 +19,9 @@ namespace SabreTools.Models.AACS
|
||||
/// must refuse to use the Media Key.
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public byte[] SignatureData;
|
||||
public byte[] SignatureData { get; set; }
|
||||
#else
|
||||
public byte[]? SignatureData;
|
||||
public byte[]? SignatureData { get; set; }
|
||||
#endif
|
||||
}
|
||||
}
|
||||
@@ -7,9 +7,9 @@ namespace SabreTools.Models.AACS
|
||||
/// In this record, each subset-difference is encoded with 5 bytes.
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public SubsetDifference[] SubsetDifferences;
|
||||
public SubsetDifference[] SubsetDifferences { get; set; }
|
||||
#else
|
||||
public SubsetDifference?[]? SubsetDifferences;
|
||||
public SubsetDifference?[]? SubsetDifferences { get; set; }
|
||||
#endif
|
||||
}
|
||||
}
|
||||
@@ -9,7 +9,7 @@ namespace SabreTools.Models.AACS
|
||||
/// field indicates that only one ID is being revoked, a value of one
|
||||
/// in the Range field indicates two ID’s are being revoked, and so on.
|
||||
/// </summary>
|
||||
public ushort Range;
|
||||
public ushort Range { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// A 6-byte Host ID value identifying the host being revoked (or the
|
||||
@@ -17,9 +17,9 @@ namespace SabreTools.Models.AACS
|
||||
/// Range value).
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public byte[] HostID;
|
||||
public byte[] HostID { get; set; }
|
||||
#else
|
||||
public byte[]? HostID;
|
||||
public byte[]? HostID { get; set; }
|
||||
#endif
|
||||
}
|
||||
}
|
||||
@@ -19,15 +19,15 @@ namespace SabreTools.Models.AACS
|
||||
/// <summary>
|
||||
/// The total number of Host Revocation List Entry fields that follow.
|
||||
/// </summary>
|
||||
public uint TotalNumberOfEntries;
|
||||
public uint TotalNumberOfEntries { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Revocation list entries
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public HostRevocationSignatureBlock[] SignatureBlocks;
|
||||
public HostRevocationSignatureBlock[] SignatureBlocks { get; set; }
|
||||
#else
|
||||
public HostRevocationSignatureBlock?[]? SignatureBlocks;
|
||||
public HostRevocationSignatureBlock?[]? SignatureBlocks { get; set; }
|
||||
#endif
|
||||
}
|
||||
}
|
||||
@@ -6,16 +6,16 @@ namespace SabreTools.Models.AACS
|
||||
/// <summary>
|
||||
/// The number of Host Revocation List Entry fields in the signature block.
|
||||
/// </summary>
|
||||
public uint NumberOfEntries;
|
||||
public uint NumberOfEntries { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// A list of 8-byte Host Revocation List Entry fields, the length of this
|
||||
/// list being equal to the number in the signature block.
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public HostRevocationListEntry[] EntryFields;
|
||||
public HostRevocationListEntry[] EntryFields { get; set; }
|
||||
#else
|
||||
public HostRevocationListEntry?[]? EntryFields;
|
||||
public HostRevocationListEntry?[]? EntryFields { get; set; }
|
||||
#endif
|
||||
}
|
||||
}
|
||||
@@ -14,9 +14,9 @@ namespace SabreTools.Models.AACS
|
||||
/// key calculation.
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public byte[][] MediaKeyData;
|
||||
public byte[][] MediaKeyData { get; set; }
|
||||
#else
|
||||
public byte[][]? MediaKeyData;
|
||||
public byte[][]? MediaKeyData { get; set; }
|
||||
#endif
|
||||
}
|
||||
}
|
||||
@@ -15,7 +15,7 @@ namespace SabreTools.Models.AACS
|
||||
/// <summary>
|
||||
/// The Record Type field value indicates the type of the Record.
|
||||
/// </summary>
|
||||
public RecordType RecordType;
|
||||
public RecordType RecordType { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The Record Length field value indicates the number of bytes in
|
||||
@@ -23,6 +23,6 @@ namespace SabreTools.Models.AACS
|
||||
/// fields themselves. Record lengths are always multiples of 4 bytes.
|
||||
/// </summary>
|
||||
// <remarks>UInt24 not UInt32</remarks>
|
||||
public uint RecordLength;
|
||||
public uint RecordLength { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -9,12 +9,12 @@ namespace SabreTools.Models.AACS
|
||||
/// the mask. For example, the value 0x01 denotes a mask of
|
||||
/// 0xFFFFFFFE; value 0x0A denotes a mask of 0xFFFFFC00.
|
||||
/// </summary>
|
||||
public byte Mask;
|
||||
public byte Mask { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The last 4 bytes are the uv number, most significant
|
||||
/// byte first.
|
||||
/// </summary>
|
||||
public uint Number;
|
||||
public uint Number { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -14,7 +14,7 @@ namespace SabreTools.Models.AACS
|
||||
/// <summary>
|
||||
/// The number of devices per index offset.
|
||||
/// </summary>
|
||||
public uint Span;
|
||||
public uint Span { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// These offsets refer to the offset within the following Explicit
|
||||
@@ -22,9 +22,9 @@ namespace SabreTools.Models.AACS
|
||||
/// </summary>
|
||||
// <remarks>UInt24 not UInt32</remarks>
|
||||
#if NET48
|
||||
public uint[] Offsets;
|
||||
public uint[] Offsets { get; set; }
|
||||
#else
|
||||
public uint[]? Offsets;
|
||||
public uint[]? Offsets { get; set; }
|
||||
#endif
|
||||
}
|
||||
}
|
||||
@@ -17,7 +17,7 @@ namespace SabreTools.Models.AACS
|
||||
/// controlling access to AACS Content on pre- recorded media. In
|
||||
/// this case, the device shall not use the KCD.
|
||||
/// </summary>
|
||||
public MediaKeyBlockType MediaKeyBlockType;
|
||||
public MediaKeyBlockType MediaKeyBlockType { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The Version Number is a 32-bit unsigned integer. Each time the
|
||||
@@ -27,6 +27,6 @@ namespace SabreTools.Models.AACS
|
||||
/// Version Numbers begin at 1; 0 is a special value used for test
|
||||
/// Media Key Blocks.
|
||||
/// </summary>
|
||||
public uint VersionNumber;
|
||||
public uint VersionNumber { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -20,9 +20,9 @@ namespace SabreTools.Models.AACS
|
||||
/// the correct final Media Key value.
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public byte[] CiphertextValue;
|
||||
public byte[] CiphertextValue { get; set; }
|
||||
#else
|
||||
public byte[]? CiphertextValue;
|
||||
public byte[]? CiphertextValue { get; set; }
|
||||
#endif
|
||||
}
|
||||
}
|
||||
@@ -7,56 +7,56 @@ namespace SabreTools.Models.BDPlus
|
||||
/// "BDSVM_CC"
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public string Signature;
|
||||
public string Signature { get; set; }
|
||||
#else
|
||||
public string? Signature;
|
||||
public string? Signature { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// 5 bytes of unknown data
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public byte[] Unknown1;
|
||||
public byte[] Unknown1 { get; set; }
|
||||
#else
|
||||
public byte[]? Unknown1;
|
||||
public byte[]? Unknown1 { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Version year
|
||||
/// </summary>
|
||||
public ushort Year;
|
||||
public ushort Year { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Version month
|
||||
/// </summary>
|
||||
public byte Month;
|
||||
public byte Month { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Version day
|
||||
/// </summary>
|
||||
public byte Day;
|
||||
public byte Day { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 4 bytes of unknown data
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public byte[] Unknown2;
|
||||
public byte[] Unknown2 { get; set; }
|
||||
#else
|
||||
public byte[]? Unknown2;
|
||||
public byte[]? Unknown2 { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Length
|
||||
/// </summary>
|
||||
public uint Length;
|
||||
public uint Length { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Length bytes of data
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public byte[] Data;
|
||||
public byte[] Data { get; set; }
|
||||
#else
|
||||
public byte[]? Data;
|
||||
public byte[]? Data { get; set; }
|
||||
#endif
|
||||
}
|
||||
}
|
||||
@@ -9,30 +9,30 @@
|
||||
/// <summary>
|
||||
/// Name size
|
||||
/// </summary>
|
||||
public int NameSize;
|
||||
public int NameSize { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Name
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public string Name;
|
||||
public string Name { get; set; }
|
||||
#else
|
||||
public string? Name;
|
||||
public string? Name { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Uncompressed size
|
||||
/// </summary>
|
||||
public int UncompressedSize;
|
||||
public int UncompressedSize { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Offset
|
||||
/// </summary>
|
||||
public int Offset;
|
||||
public int Offset { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Compressed size
|
||||
/// </summary>
|
||||
public int CompressedSize;
|
||||
public int CompressedSize { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13,19 +13,19 @@ namespace SabreTools.Models.BFPK
|
||||
/// "BFPK"
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public string Magic;
|
||||
public string Magic { get; set; }
|
||||
#else
|
||||
public string? Magic;
|
||||
public string? Magic { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Version
|
||||
/// </summary>
|
||||
public int Version;
|
||||
public int Version { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Files
|
||||
/// </summary>
|
||||
public int Files;
|
||||
public int Files { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,26 +10,26 @@ namespace SabreTools.Models.BMP
|
||||
/// <summary>
|
||||
/// The file type; must be BM.
|
||||
/// </summary>
|
||||
public ushort Type;
|
||||
public ushort Type { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The size, in bytes, of the bitmap file.
|
||||
/// </summary>
|
||||
public uint Size;
|
||||
public uint Size { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Reserved; must be zero.
|
||||
/// </summary>
|
||||
public ushort Reserved1;
|
||||
public ushort Reserved1 { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Reserved; must be zero.
|
||||
/// </summary>
|
||||
public ushort Reserved2;
|
||||
public ushort Reserved2 { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The offset, in bytes, from the beginning of the BITMAPFILEHEADER structure to the bitmap bits.
|
||||
/// </summary>
|
||||
public uint OffBits;
|
||||
public uint OffBits { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,12 +11,12 @@ namespace SabreTools.Models.BMP
|
||||
/// not include the size of the color table or the size of the color masks,
|
||||
/// if they are appended to the end of structure.
|
||||
/// </summary>
|
||||
public uint Size;
|
||||
public uint Size { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Specifies the width of the bitmap, in pixels.
|
||||
/// </summary>
|
||||
public int Width;
|
||||
public int Width { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Specifies the height of the bitmap, in pixels.
|
||||
@@ -30,19 +30,19 @@ namespace SabreTools.Models.BMP
|
||||
/// or negative biHeight.
|
||||
/// - For compressed formats, biHeight must be positive, regardless of image orientation.
|
||||
/// </summary>
|
||||
public int Height;
|
||||
public int Height { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Specifies the number of planes for the target device. This value must be set to 1.
|
||||
/// </summary>
|
||||
public ushort Planes;
|
||||
public ushort Planes { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Specifies the number of bits per pixel (bpp). For uncompressed formats, this value
|
||||
/// is the average number of bits per pixel. For compressed formats, this value is the
|
||||
/// implied bit depth of the uncompressed image, after the image has been decoded.
|
||||
/// </summary>
|
||||
public ushort BitCount;
|
||||
public ushort BitCount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// For compressed video and YUV formats, this member is a FOURCC code, specified as a
|
||||
@@ -59,36 +59,36 @@ namespace SabreTools.Models.BMP
|
||||
/// If biCompression equals BI_BITFIELDS, the format is either RGB 555 or RGB 565. Use
|
||||
/// the subtype GUID in the AM_MEDIA_TYPE structure to determine the specific RGB type.
|
||||
/// </summary>
|
||||
public uint Compression;
|
||||
public uint Compression { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Specifies the size, in bytes, of the image. This can be set to 0 for uncompressed
|
||||
/// RGB bitmaps.
|
||||
/// </summary>
|
||||
public uint SizeImage;
|
||||
public uint SizeImage { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Specifies the horizontal resolution, in pixels per meter, of the target device for
|
||||
/// the bitmap.
|
||||
/// </summary>
|
||||
public int XPelsPerMeter;
|
||||
public int XPelsPerMeter { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Specifies the vertical resolution, in pixels per meter, of the target device for
|
||||
/// the bitmap.
|
||||
/// </summary>
|
||||
public int YPelsPerMeter;
|
||||
public int YPelsPerMeter { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Specifies the number of color indices in the color table that are actually used by
|
||||
/// the bitmap.
|
||||
/// </summary>
|
||||
public uint ClrUsed;
|
||||
public uint ClrUsed { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Specifies the number of color indices that are considered important for displaying
|
||||
/// the bitmap. If this value is zero, all colors are important.
|
||||
/// </summary>
|
||||
public uint ClrImportant;
|
||||
public uint ClrImportant { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,6 +6,6 @@ namespace SabreTools.Models.BSP
|
||||
/// <summary>
|
||||
/// Version
|
||||
/// </summary>
|
||||
public uint Version;
|
||||
public uint Version { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -6,11 +6,11 @@ namespace SabreTools.Models.BSP
|
||||
/// <summary>
|
||||
/// Offset
|
||||
/// </summary>
|
||||
public uint Offset;
|
||||
public uint Offset { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Length
|
||||
/// </summary>
|
||||
public uint Length;
|
||||
public uint Length { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -7,51 +7,51 @@ namespace SabreTools.Models.BSP
|
||||
/// Name
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public string Name;
|
||||
public string Name { get; set; }
|
||||
#else
|
||||
public string? Name;
|
||||
public string? Name { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Width
|
||||
/// </summary>
|
||||
public uint Width;
|
||||
public uint Width { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Height
|
||||
/// </summary>
|
||||
public uint Height;
|
||||
public uint Height { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Offsets
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public uint[] Offsets;
|
||||
public uint[] Offsets { get; set; }
|
||||
#else
|
||||
public uint[]? Offsets;
|
||||
public uint[]? Offsets { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Texture data
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public byte[] TextureData;
|
||||
public byte[] TextureData { get; set; }
|
||||
#else
|
||||
public byte[]? TextureData;
|
||||
public byte[]? TextureData { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Palette size
|
||||
/// </summary>
|
||||
public uint PaletteSize;
|
||||
public uint PaletteSize { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Palette data
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public byte[] PaletteData;
|
||||
public byte[] PaletteData { get; set; }
|
||||
#else
|
||||
public byte[]? PaletteData;
|
||||
public byte[]? PaletteData { get; set; }
|
||||
#endif
|
||||
}
|
||||
}
|
||||
@@ -6,15 +6,15 @@ namespace SabreTools.Models.BSP
|
||||
/// <summary>
|
||||
/// Texture count
|
||||
/// </summary>
|
||||
public uint TextureCount;
|
||||
public uint TextureCount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Offsets
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public uint[] Offsets;
|
||||
public uint[] Offsets { get; set; }
|
||||
#else
|
||||
public uint[]? Offsets;
|
||||
public uint[]? Offsets { get; set; }
|
||||
#endif
|
||||
}
|
||||
}
|
||||
@@ -17,16 +17,16 @@ namespace SabreTools.Models.CFB
|
||||
/// name: '/', '\', ':', '!'.
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public string Name;
|
||||
public string Name { get; set; }
|
||||
#else
|
||||
public string? Name;
|
||||
public string? Name { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// This field MUST be 0x00, 0x01, 0x02, or 0x05, depending on the
|
||||
/// actual type of object. All other values are not valid.
|
||||
/// </summary>
|
||||
public ushort NameLength;
|
||||
public ushort NameLength { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// This field MUST match the length of the Directory Entry Name Unicode
|
||||
@@ -34,31 +34,31 @@ namespace SabreTools.Models.CFB
|
||||
/// terminating null character in the count. This length MUST NOT exceed 64,
|
||||
/// the maximum size of the Directory Entry Name field.
|
||||
/// </summary>
|
||||
public ObjectType ObjectType;
|
||||
public ObjectType ObjectType { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// This field MUST be 0x00 (red) or 0x01 (black). All other values are not valid.
|
||||
/// </summary>
|
||||
public ColorFlag ColorFlag;
|
||||
public ColorFlag ColorFlag { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// This field contains the stream ID of the left sibling. If there
|
||||
/// is no left sibling, the field MUST be set to NOSTREAM (0xFFFFFFFF).
|
||||
/// </summary>
|
||||
public StreamID LeftSiblingID;
|
||||
public StreamID LeftSiblingID { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// This field contains the stream ID of the right sibling. If there
|
||||
/// is no right sibling, the field MUST be set to NOSTREAM (0xFFFFFFFF).
|
||||
/// </summary>
|
||||
public StreamID RightSiblingID;
|
||||
public StreamID RightSiblingID { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// This field contains the stream ID of a child object. If there is no
|
||||
/// child object, including all entries for stream objects, the field
|
||||
/// MUST be set to NOSTREAM (0xFFFFFFFF).
|
||||
/// </summary>
|
||||
public StreamID ChildID;
|
||||
public StreamID ChildID { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// This field contains an object class GUID, if this entry is for a
|
||||
@@ -71,7 +71,7 @@ namespace SabreTools.Models.CFB
|
||||
/// this value is not all zeroes, the object class GUID can be used as a
|
||||
/// parameter to start applications.
|
||||
/// </summary>
|
||||
public Guid CLSID;
|
||||
public Guid CLSID { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// This field contains the user-defined flags if this entry is for a storage
|
||||
@@ -82,7 +82,7 @@ namespace SabreTools.Models.CFB
|
||||
/// objects without explicitly setting state bits, it MUST write all zeroes
|
||||
/// by default.
|
||||
/// </summary>
|
||||
public uint StateBits;
|
||||
public uint StateBits { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// This field contains the creation time for a storage object, or all zeroes
|
||||
@@ -92,7 +92,7 @@ namespace SabreTools.Models.CFB
|
||||
/// object, this field MUST be all zeroes, and the creation time is retrieved
|
||||
/// or set on the compound file itself.
|
||||
/// </summary>
|
||||
public ulong CreationTime;
|
||||
public ulong CreationTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// This field contains the modification time for a storage object, or all
|
||||
@@ -102,7 +102,7 @@ namespace SabreTools.Models.CFB
|
||||
/// storage object, this field MAY<2> be set to all zeroes, and the modified
|
||||
/// time is retrieved or set on the compound file itself.
|
||||
/// </summary>
|
||||
public ulong ModifiedTime;
|
||||
public ulong ModifiedTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// This field contains the first sector location if this is a stream object.
|
||||
@@ -110,7 +110,7 @@ namespace SabreTools.Models.CFB
|
||||
/// mini stream, if the mini stream exists. For a storage object, this field MUST
|
||||
/// be set to all zeroes.
|
||||
/// </summary>
|
||||
public uint StartingSectorLocation;
|
||||
public uint StartingSectorLocation { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// This 64-bit integer field contains the size of the user-defined data if this
|
||||
@@ -132,6 +132,6 @@ namespace SabreTools.Models.CFB
|
||||
/// unless there is a specific reason to do otherwise (for example, a parser whose
|
||||
/// purpose is to verify the correctness of a compound file).
|
||||
/// </remarks>
|
||||
public ulong StreamSize;
|
||||
public ulong StreamSize { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -9,30 +9,30 @@ namespace SabreTools.Models.CFB
|
||||
/// Iddentification signature for the compound file structure, and MUST be
|
||||
/// set to the value 0xD0, 0xCF, 0x11, 0xE0, 0xA1, 0xB1, 0x1A, 0xE1.
|
||||
/// </summary>
|
||||
public ulong Signature;
|
||||
public ulong Signature { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Reserved and unused class ID that MUST be set to all zeroes (CLSID_NULL)
|
||||
/// </summary>
|
||||
public Guid CLSID;
|
||||
public Guid CLSID { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Version number for nonbreaking changes. This field SHOULD be set to
|
||||
/// 0x003E if the major version field is either 0x0003 or 0x0004.
|
||||
/// </summary>
|
||||
public ushort MinorVersion;
|
||||
public ushort MinorVersion { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Version number for breaking changes. This field MUST be set to either
|
||||
/// 0x0003 (version 3) or 0x0004 (version 4).
|
||||
/// </summary>
|
||||
public ushort MajorVersion;
|
||||
public ushort MajorVersion { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// This field MUST be set to 0xFFFE. This field is a byte order mark for
|
||||
/// all integer fields, specifying little-endian byte order.
|
||||
/// </summary>
|
||||
public ushort ByteOrder;
|
||||
public ushort ByteOrder { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// This field MUST be set to 0x0009, or 0x000c, depending on the Major
|
||||
@@ -45,22 +45,22 @@ namespace SabreTools.Models.CFB
|
||||
/// If Major Version is 4, the Sector Shift MUST be 0x000C, specifying a
|
||||
/// sector size of 4096 bytes.
|
||||
/// </summary>
|
||||
public ushort SectorShift;
|
||||
public ushort SectorShift { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// This field MUST be set to 0x0006. This field specifies the sector size
|
||||
/// of the Mini Stream as a power of 2. The sector size of the Mini Stream
|
||||
/// MUST be 64 bytes.
|
||||
/// </summary>
|
||||
public ushort MiniSectorShift;
|
||||
public ushort MiniSectorShift { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// This field MUST be set to all zeroes.
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public byte[] Reserved;
|
||||
public byte[] Reserved { get; set; }
|
||||
#else
|
||||
public byte[]? Reserved;
|
||||
public byte[]? Reserved { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
@@ -70,18 +70,18 @@ namespace SabreTools.Models.CFB
|
||||
/// If Major Version is 3, the Number of Directory Sectors MUST be zero. This
|
||||
/// field is not supported for version 3 compound files.
|
||||
/// </summary>
|
||||
public uint NumberOfDirectorySectors;
|
||||
public uint NumberOfDirectorySectors { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// This integer field contains the count of the number of FAT sectors in the
|
||||
/// compound file.
|
||||
/// </summary>
|
||||
public uint NumberOfFATSectors;
|
||||
public uint NumberOfFATSectors { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// This integer field contains the starting sector number for the directory stream.
|
||||
/// </summary>
|
||||
public uint FirstDirectorySectorLocation;
|
||||
public uint FirstDirectorySectorLocation { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// This integer field MAY contain a sequence number that is incremented every time
|
||||
@@ -89,7 +89,7 @@ namespace SabreTools.Models.CFB
|
||||
/// This is the field that MUST be set to all zeroes if file transactions are not
|
||||
/// implemented.
|
||||
/// </summary>
|
||||
public uint TransactionSignatureNumber;
|
||||
public uint TransactionSignatureNumber { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// This integer field MUST be set to 0x00001000. This field specifies the maximum
|
||||
@@ -98,38 +98,38 @@ namespace SabreTools.Models.CFB
|
||||
/// greater than or equal to this cutoff size must be allocated as normal sectors from
|
||||
/// the FAT.
|
||||
/// </summary>
|
||||
public uint MiniStreamCutoffSize;
|
||||
public uint MiniStreamCutoffSize { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// This integer field contains the starting sector number for the mini FAT.
|
||||
/// </summary>
|
||||
public uint FirstMiniFATSectorLocation;
|
||||
public uint FirstMiniFATSectorLocation { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// This integer field contains the count of the number of mini FAT sectors in the
|
||||
/// compound file.
|
||||
/// </summary>
|
||||
public uint NumberOfMiniFATSectors;
|
||||
public uint NumberOfMiniFATSectors { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// This integer field contains the starting sector number for the DIFAT.
|
||||
/// </summary>
|
||||
public uint FirstDIFATSectorLocation;
|
||||
public uint FirstDIFATSectorLocation { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// This integer field contains the count of the number of DIFAT sectors in the
|
||||
/// compound file.
|
||||
/// </summary>
|
||||
public uint NumberOfDIFATSectors;
|
||||
public uint NumberOfDIFATSectors { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// This array of 32-bit integer fields contains the first 109 FAT sector
|
||||
/// locations of the compound file
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public SectorNumber[] DIFAT;
|
||||
public SectorNumber[] DIFAT { get; set; }
|
||||
#else
|
||||
public SectorNumber?[]? DIFAT;
|
||||
public SectorNumber?[]? DIFAT { get; set; }
|
||||
#endif
|
||||
}
|
||||
}
|
||||
@@ -11,35 +11,35 @@ namespace SabreTools.Models.CFB
|
||||
/// This field MUST be set to 0xFFFE. This field is a byte order mark for
|
||||
/// all integer fields, specifying little-endian byte order.
|
||||
/// </summary>
|
||||
public ushort ByteOrder;
|
||||
public ushort ByteOrder { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Format
|
||||
/// </summary>
|
||||
public ushort Format;
|
||||
public ushort Format { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Build
|
||||
/// </summary>
|
||||
public ushort Build;
|
||||
public ushort Build { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Platform ID
|
||||
/// </summary>
|
||||
public ushort PlatformID;
|
||||
public ushort PlatformID { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// CLSID
|
||||
/// </summary>
|
||||
public Guid CLSID;
|
||||
public Guid CLSID { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 4 bytes of reserved data
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public byte[] Reserved;
|
||||
public byte[] Reserved { get; set; }
|
||||
#else
|
||||
public byte[]? Reserved;
|
||||
public byte[]? Reserved { get; set; }
|
||||
#endif
|
||||
|
||||
#endregion
|
||||
@@ -49,15 +49,15 @@ namespace SabreTools.Models.CFB
|
||||
/// <summary>
|
||||
/// Format ID, should be <see cref="Constants.FMTID_SummaryInformation"/>
|
||||
/// </summary>
|
||||
public Guid FormatID;
|
||||
public Guid FormatID { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 16 bytes of unknown data
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public byte[] Unknown;
|
||||
public byte[] Unknown { get; set; }
|
||||
#else
|
||||
public byte[]? Unknown;
|
||||
public byte[]? Unknown { get; set; }
|
||||
#endif
|
||||
|
||||
#endregion
|
||||
@@ -67,26 +67,26 @@ namespace SabreTools.Models.CFB
|
||||
/// <summary>
|
||||
/// Location of the section
|
||||
/// </summary>
|
||||
public uint Offset;
|
||||
public uint Offset { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Section count(?)
|
||||
/// </summary>
|
||||
public uint SectionCount;
|
||||
public uint SectionCount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Property count
|
||||
/// </summary>
|
||||
public uint PropertyCount;
|
||||
public uint PropertyCount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Properties
|
||||
/// </summary>
|
||||
/// <remarks>Each Variant might be followed by an index and offset value</remarks>
|
||||
#if NET48
|
||||
public Variant[] Properties;
|
||||
public Variant[] Properties { get; set; }
|
||||
#else
|
||||
public Variant?[]? Properties;
|
||||
public Variant?[]? Properties { get; set; }
|
||||
#endif
|
||||
|
||||
#endregion
|
||||
|
||||
@@ -9,41 +9,41 @@ namespace SabreTools.Models.CFB
|
||||
/// <summary>
|
||||
/// MUST be set to the size, in quad words (64 bits), of the structure.
|
||||
/// </summary>
|
||||
public uint Size;
|
||||
public uint Size { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// MUST be set to 0 and MUST be ignored by the recipient.
|
||||
/// </summary>
|
||||
public uint RpcReserved;
|
||||
public uint RpcReserved { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// MUST be set to one of the values specified with a "V".
|
||||
/// </summary>
|
||||
public VariantType VariantType;
|
||||
public VariantType VariantType { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// MAY be set to 0 and MUST be ignored by the recipient.
|
||||
/// </summary>
|
||||
public ushort Reserved1;
|
||||
public ushort Reserved1 { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// MAY be set to 0 and MUST be ignored by the recipient.
|
||||
/// </summary>
|
||||
public ushort Reserved2;
|
||||
public ushort Reserved2 { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// MAY be set to 0 and MUST be ignored by the recipient.
|
||||
/// </summary>
|
||||
public ushort Reserved3;
|
||||
public ushort Reserved3 { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// MUST contain an instance of the type, according to the value
|
||||
/// in the <see cref="VariantType"/> field.
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public object Union;
|
||||
public object Union { get; set; }
|
||||
#else
|
||||
public object? Union;
|
||||
public object? Union { get; set; }
|
||||
#endif
|
||||
}
|
||||
}
|
||||
@@ -23,7 +23,7 @@ namespace SabreTools.Models.Charts
|
||||
#if NET48
|
||||
public Dictionary<string, (string Name, string UnlockId)> Sections { get; set; }
|
||||
#else
|
||||
public Dictionary<string, (string Name, string? UnlockId)>? Sections { get; set; }
|
||||
public Dictionary<string, (string? Name, string? UnlockId)>? Sections { get; set; }
|
||||
#endif
|
||||
}
|
||||
}
|
||||
@@ -7,15 +7,15 @@ namespace SabreTools.Models.Compression.LZ
|
||||
public sealed class FileHeaader
|
||||
{
|
||||
#if NET48
|
||||
public string Magic;
|
||||
public string Magic { get; set; }
|
||||
#else
|
||||
public string? Magic;
|
||||
public string? Magic { get; set; }
|
||||
#endif
|
||||
|
||||
public byte CompressionType;
|
||||
public byte CompressionType { get; set; }
|
||||
|
||||
public char LastChar;
|
||||
public char LastChar { get; set; }
|
||||
|
||||
public uint RealLength;
|
||||
public uint RealLength { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -11,9 +11,9 @@ namespace SabreTools.Models.Compression.LZX
|
||||
/// Generic block header
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public BlockHeader Header;
|
||||
public BlockHeader Header { get; set; }
|
||||
#else
|
||||
public BlockHeader? Header;
|
||||
public BlockHeader? Header { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
@@ -21,9 +21,9 @@ namespace SabreTools.Models.Compression.LZX
|
||||
/// </summary>
|
||||
/// <remarks>8 elements, 3 bits each</remarks>
|
||||
#if NET48
|
||||
public byte[] AlignedOffsetTree;
|
||||
public byte[] AlignedOffsetTree { get; set; }
|
||||
#else
|
||||
public byte[]? AlignedOffsetTree;
|
||||
public byte[]? AlignedOffsetTree { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
@@ -31,9 +31,9 @@ namespace SabreTools.Models.Compression.LZX
|
||||
/// </summary>
|
||||
/// <remarks>20 elements, 4 bits each</remarks>
|
||||
#if NET48
|
||||
public byte[] PretreeFirst256;
|
||||
public byte[] PretreeFirst256 { get; set; }
|
||||
#else
|
||||
public byte[]? PretreeFirst256;
|
||||
public byte[]? PretreeFirst256 { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
@@ -41,9 +41,9 @@ namespace SabreTools.Models.Compression.LZX
|
||||
/// </summary>
|
||||
/// <remarks>Encoded using pretree</remarks>
|
||||
#if NET48
|
||||
public int[] PathLengthsFirst256;
|
||||
public int[] PathLengthsFirst256 { get; set; }
|
||||
#else
|
||||
public int[]? PathLengthsFirst256;
|
||||
public int[]? PathLengthsFirst256 { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
@@ -51,9 +51,9 @@ namespace SabreTools.Models.Compression.LZX
|
||||
/// </summary>
|
||||
/// <remarks>20 elements, 4 bits each</remarks>
|
||||
#if NET48
|
||||
public byte[] PretreeRemainder;
|
||||
public byte[] PretreeRemainder { get; set; }
|
||||
#else
|
||||
public byte[]? PretreeRemainder;
|
||||
public byte[]? PretreeRemainder { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
@@ -61,9 +61,9 @@ namespace SabreTools.Models.Compression.LZX
|
||||
/// </summary>
|
||||
/// <remarks>Encoded using pretree</remarks>
|
||||
#if NET48
|
||||
public int[] PathLengthsRemainder;
|
||||
public int[] PathLengthsRemainder { get; set; }
|
||||
#else
|
||||
public int[]? PathLengthsRemainder;
|
||||
public int[]? PathLengthsRemainder { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
@@ -71,9 +71,9 @@ namespace SabreTools.Models.Compression.LZX
|
||||
/// </summary>
|
||||
/// <remarks>20 elements, 4 bits each</remarks>
|
||||
#if NET48
|
||||
public byte[] PretreeLengthTree;
|
||||
public byte[] PretreeLengthTree { get; set; }
|
||||
#else
|
||||
public byte[]? PretreeLengthTree;
|
||||
public byte[]? PretreeLengthTree { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
@@ -81,9 +81,9 @@ namespace SabreTools.Models.Compression.LZX
|
||||
/// </summary>
|
||||
/// <remarks>Encoded using pretree</remarks>
|
||||
#if NET48
|
||||
public int[] PathLengthsLengthTree;
|
||||
public int[] PathLengthsLengthTree { get; set; }
|
||||
#else
|
||||
public int[]? PathLengthsLengthTree;
|
||||
public int[]? PathLengthsLengthTree { get; set; }
|
||||
#endif
|
||||
|
||||
// Entry Comments Size
|
||||
|
||||
@@ -15,24 +15,24 @@ namespace SabreTools.Models.Compression.LZX
|
||||
public class BlockHeader
|
||||
{
|
||||
/// <remarks>3 bits</remarks>
|
||||
public BlockType BlockType;
|
||||
public BlockType BlockType { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Block size is the high 8 bits of 24
|
||||
/// </summary>
|
||||
/// <remarks>8 bits</remarks>
|
||||
public byte BlockSizeMSB;
|
||||
public byte BlockSizeMSB { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Block size is the middle 8 bits of 24
|
||||
/// </summary>
|
||||
/// <remarks>8 bits</remarks>
|
||||
public byte BlockSizeByte2;
|
||||
public byte BlockSizeByte2 { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Block size is the low 8 bits of 24
|
||||
/// </summary>
|
||||
/// <remarks>8 bits</remarks>
|
||||
public byte BlocksizeLSB;
|
||||
public byte BlocksizeLSB { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -20,48 +20,48 @@ namespace SabreTools.Models.Compression.LZX
|
||||
/// Generic block header
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public BlockHeader Header;
|
||||
public BlockHeader Header { get; set; }
|
||||
#else
|
||||
public BlockHeader? Header;
|
||||
public BlockHeader? Header { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Padding to align following field on 16-bit boundary
|
||||
/// </summary>
|
||||
/// <remarks>Bits have a value of zero</remarks>
|
||||
public ushort PaddingBits;
|
||||
public ushort PaddingBits { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Least significant to most significant byte (little-endian DWORD ([MS-DTYP]))
|
||||
/// </summary>
|
||||
/// <remarks>Encoded directly in the byte stream, not in the bitstream of byte-swapped 16-bit words</remarks>
|
||||
public uint R0;
|
||||
public uint R0 { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Least significant to most significant byte (little-endian DWORD)
|
||||
/// </summary>
|
||||
/// <remarks>Encoded directly in the byte stream, not in the bitstream of byte-swapped 16-bit words</remarks>
|
||||
public uint R1;
|
||||
public uint R1 { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Least significant to most significant byte (little-endian DWORD)
|
||||
/// </summary>
|
||||
/// <remarks>Encoded directly in the byte stream, not in the bitstream of byte-swapped 16-bit words</remarks>
|
||||
public uint R2;
|
||||
public uint R2 { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Can use the direct memcpy function, as specified in [IEEE1003.1]
|
||||
/// </summary>
|
||||
/// <remarks>Encoded directly in the byte stream, not in the bitstream of byte-swapped 16-bit words</remarks>
|
||||
#if NET48
|
||||
public byte[] RawDataBytes;
|
||||
public byte[] RawDataBytes { get; set; }
|
||||
#else
|
||||
public byte[]? RawDataBytes;
|
||||
public byte[]? RawDataBytes { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Only if uncompressed size is odd
|
||||
/// </summary>
|
||||
public byte AlignmentByte;
|
||||
public byte AlignmentByte { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -10,9 +10,9 @@ namespace SabreTools.Models.Compression.LZX
|
||||
/// Generic block header
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public BlockHeader Header;
|
||||
public BlockHeader Header { get; set; }
|
||||
#else
|
||||
public BlockHeader? Header;
|
||||
public BlockHeader? Header { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
@@ -20,9 +20,9 @@ namespace SabreTools.Models.Compression.LZX
|
||||
/// </summary>
|
||||
/// <remarks>20 elements, 4 bits each</remarks>
|
||||
#if NET48
|
||||
public byte[] PretreeFirst256;
|
||||
public byte[] PretreeFirst256 { get; set; }
|
||||
#else
|
||||
public byte[]? PretreeFirst256;
|
||||
public byte[]? PretreeFirst256 { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
@@ -30,9 +30,9 @@ namespace SabreTools.Models.Compression.LZX
|
||||
/// </summary>
|
||||
/// <remarks>Encoded using pretree</remarks>
|
||||
#if NET48
|
||||
public int[] PathLengthsFirst256;
|
||||
public int[] PathLengthsFirst256 { get; set; }
|
||||
#else
|
||||
public int[]? PathLengthsFirst256;
|
||||
public int[]? PathLengthsFirst256 { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
@@ -40,9 +40,9 @@ namespace SabreTools.Models.Compression.LZX
|
||||
/// </summary>
|
||||
/// <remarks>20 elements, 4 bits each</remarks>
|
||||
#if NET48
|
||||
public byte[] PretreeRemainder;
|
||||
public byte[] PretreeRemainder { get; set; }
|
||||
#else
|
||||
public byte[]? PretreeRemainder;
|
||||
public byte[]? PretreeRemainder { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
@@ -50,9 +50,9 @@ namespace SabreTools.Models.Compression.LZX
|
||||
/// </summary>
|
||||
/// <remarks>Encoded using pretree</remarks>
|
||||
#if NET48
|
||||
public int[] PathLengthsRemainder;
|
||||
public int[] PathLengthsRemainder { get; set; }
|
||||
#else
|
||||
public int[]? PathLengthsRemainder;
|
||||
public int[]? PathLengthsRemainder { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
@@ -60,9 +60,9 @@ namespace SabreTools.Models.Compression.LZX
|
||||
/// </summary>
|
||||
/// <remarks>20 elements, 4 bits each</remarks>
|
||||
#if NET48
|
||||
public byte[] PretreeLengthTree;
|
||||
public byte[] PretreeLengthTree { get; set; }
|
||||
#else
|
||||
public byte[]? PretreeLengthTree;
|
||||
public byte[]? PretreeLengthTree { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
@@ -70,9 +70,9 @@ namespace SabreTools.Models.Compression.LZX
|
||||
/// </summary>
|
||||
/// <remarks>Encoded using pretree</remarks>
|
||||
#if NET48
|
||||
public int[] PathLengthsLengthTree;
|
||||
public int[] PathLengthsLengthTree { get; set; }
|
||||
#else
|
||||
public int[]? PathLengthsLengthTree;
|
||||
public int[]? PathLengthsLengthTree { get; set; }
|
||||
#endif
|
||||
|
||||
// Entry Comments Size
|
||||
|
||||
@@ -23,6 +23,6 @@ namespace SabreTools.Models.Compression.MSZIP
|
||||
/// <summary>
|
||||
/// 'CK'
|
||||
/// </summary>
|
||||
public ushort Signature;
|
||||
public ushort Signature { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -10,18 +10,18 @@ namespace SabreTools.Models.Compression.MSZIP
|
||||
/// Huffman code lengths for the literal / length alphabet
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public int[] LiteralLengths;
|
||||
public int[] LiteralLengths { get; set; }
|
||||
#else
|
||||
public int[]? LiteralLengths;
|
||||
public int[]? LiteralLengths { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Huffman distance codes for the literal / length alphabet
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public int[] DistanceCodes;
|
||||
public int[] DistanceCodes { get; set; }
|
||||
#else
|
||||
public int[]? DistanceCodes;
|
||||
public int[]? DistanceCodes { get; set; }
|
||||
#endif
|
||||
}
|
||||
}
|
||||
@@ -10,12 +10,12 @@ namespace SabreTools.Models.Compression.MSZIP
|
||||
/// The number of data bytes in the block
|
||||
/// </summary>
|
||||
/// <remarks>Bytes 0-1</remarks>
|
||||
public ushort LEN;
|
||||
public ushort LEN { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The one's complement of LEN
|
||||
/// </summary>
|
||||
/// <remarks>Bytes 2-3</remarks>
|
||||
public ushort NLEN;
|
||||
public ushort NLEN { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -4,20 +4,20 @@ namespace SabreTools.Models.Compression.Quantum
|
||||
/// <see href="http://www.russotto.net/quantumcomp.html"/>
|
||||
public sealed class Model
|
||||
{
|
||||
public int TimeToReorder;
|
||||
public int TimeToReorder { get; set; }
|
||||
|
||||
public int Entries;
|
||||
public int Entries { get; set; }
|
||||
|
||||
#if NET48
|
||||
public ModelSymbol[] Symbols;
|
||||
public ModelSymbol[] Symbols { get; set; }
|
||||
#else
|
||||
public ModelSymbol?[]? Symbols;
|
||||
public ModelSymbol?[]? Symbols { get; set; }
|
||||
#endif
|
||||
|
||||
#if NET48
|
||||
public ushort[] LookupTable = new ushort[256];
|
||||
public ushort[] LookupTable { get; set; } = new ushort[256];
|
||||
#else
|
||||
public ushort[]? LookupTable = new ushort[256];
|
||||
public ushort[]? LookupTable { get; set; } = new ushort[256];
|
||||
#endif
|
||||
}
|
||||
}
|
||||
@@ -4,8 +4,8 @@ namespace SabreTools.Models.Compression.Quantum
|
||||
/// <see href="http://www.russotto.net/quantumcomp.html"/>
|
||||
public sealed class ModelSymbol
|
||||
{
|
||||
public ushort Symbol;
|
||||
public ushort Symbol { get; set; }
|
||||
|
||||
public ushort CumulativeFrequency;
|
||||
public ushort CumulativeFrequency { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -6,38 +6,38 @@ namespace SabreTools.Models.DVD
|
||||
/// <summary>
|
||||
/// Number of title sets
|
||||
/// </summary>
|
||||
public ushort NumberOfTitleSets;
|
||||
public ushort NumberOfTitleSets { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Reserved
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public byte[] Reserved;
|
||||
public byte[] Reserved { get; set; }
|
||||
#else
|
||||
public byte[]? Reserved;
|
||||
public byte[]? Reserved { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// End address (last byte of last VTS_ATRT)
|
||||
/// </summary>
|
||||
public uint EndAddress;
|
||||
public uint EndAddress { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Offset to VTS_ATRT n
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public uint[] Offsets;
|
||||
public uint[] Offsets { get; set; }
|
||||
#else
|
||||
public uint[]? Offsets;
|
||||
public uint[]? Offsets { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Entries
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public AudioSubPictureAttributesTableEntry[] Entries;
|
||||
public AudioSubPictureAttributesTableEntry[] Entries { get; set; }
|
||||
#else
|
||||
public AudioSubPictureAttributesTableEntry?[]? Entries;
|
||||
public AudioSubPictureAttributesTableEntry?[]? Entries { get; set; }
|
||||
#endif
|
||||
}
|
||||
}
|
||||
@@ -6,22 +6,22 @@ namespace SabreTools.Models.DVD
|
||||
/// <summary>
|
||||
/// End address (EA)
|
||||
/// </summary>
|
||||
public uint EndAddress;
|
||||
public uint EndAddress { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// VTS_CAT (copy of offset 022-025 of the VTS IFO file)
|
||||
/// 0=unspecified, 1=Karaoke
|
||||
/// </summary>
|
||||
public uint Category;
|
||||
public uint Category { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Copy of VTS attributes (offset 100 and on from the VTS IFO
|
||||
/// file, usually 0x300 bytes long)
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public byte[] AttributesCopy;
|
||||
public byte[] AttributesCopy { get; set; }
|
||||
#else
|
||||
public byte[]? AttributesCopy;
|
||||
public byte[]? AttributesCopy { get; set; }
|
||||
#endif
|
||||
}
|
||||
}
|
||||
@@ -6,29 +6,29 @@ namespace SabreTools.Models.DVD
|
||||
/// <summary>
|
||||
/// Number of VOB IDs
|
||||
/// </summary>
|
||||
public ushort NumberOfVOBIDs;
|
||||
public ushort NumberOfVOBIDs { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Reserved
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public byte[] Reserved;
|
||||
public byte[] Reserved { get; set; }
|
||||
#else
|
||||
public byte[]? Reserved;
|
||||
public byte[]? Reserved { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// End address (last byte of last entry)
|
||||
/// </summary>
|
||||
public uint EndAddress;
|
||||
public uint EndAddress { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 12-byte entries
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public CellAddressTableEntry[] Entries;
|
||||
public CellAddressTableEntry[] Entries { get; set; }
|
||||
#else
|
||||
public CellAddressTableEntry?[]? Entries;
|
||||
public CellAddressTableEntry?[]? Entries { get; set; }
|
||||
#endif
|
||||
}
|
||||
}
|
||||
@@ -6,26 +6,26 @@ namespace SabreTools.Models.DVD
|
||||
/// <summary>
|
||||
/// VOBidn
|
||||
/// </summary>
|
||||
public ushort VOBIdentity;
|
||||
public ushort VOBIdentity { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// CELLidn
|
||||
/// </summary>
|
||||
public byte CellIdentity;
|
||||
public byte CellIdentity { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Reserved
|
||||
/// </summary>
|
||||
public byte Reserved;
|
||||
public byte Reserved { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Starting sector within VOB
|
||||
/// </summary>
|
||||
public uint StartingSectorWithinVOB;
|
||||
public uint StartingSectorWithinVOB { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Ending sector within VOB
|
||||
/// </summary>
|
||||
public uint EndingSectorWithinVOB;
|
||||
public uint EndingSectorWithinVOB { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -6,39 +6,39 @@ namespace SabreTools.Models.DVD
|
||||
/// <summary>
|
||||
/// Number of Language Units
|
||||
/// </summary>
|
||||
public ushort NumberOfLanguageUnits;
|
||||
public ushort NumberOfLanguageUnits { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Reserved
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public byte[] Reserved;
|
||||
public byte[] Reserved { get; set; }
|
||||
#else
|
||||
public byte[]? Reserved;
|
||||
public byte[]? Reserved { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// End address (last byte of last PGC in last LU)
|
||||
/// relative to VMGM_PGCI_UT
|
||||
/// </summary>
|
||||
public uint EndAddress;
|
||||
public uint EndAddress { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Language Units
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public LanguageUnitTableEntry[] Entries;
|
||||
public LanguageUnitTableEntry[] Entries { get; set; }
|
||||
#else
|
||||
public LanguageUnitTableEntry?[]? Entries;
|
||||
public LanguageUnitTableEntry?[]? Entries { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Program Chains
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public ProgramChainTable[] ProgramChains;
|
||||
public ProgramChainTable[] ProgramChains { get; set; }
|
||||
#else
|
||||
public ProgramChainTable?[]? ProgramChains;
|
||||
public ProgramChainTable?[]? ProgramChains { get; set; }
|
||||
#endif
|
||||
}
|
||||
}
|
||||
@@ -6,21 +6,21 @@ namespace SabreTools.Models.DVD
|
||||
/// <summary>
|
||||
/// ISO639 language code
|
||||
/// </summary>
|
||||
public ushort ISO639LanguageCode;
|
||||
public ushort ISO639LanguageCode { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Reserved for language code extension
|
||||
/// </summary>
|
||||
public byte Reserved;
|
||||
public byte Reserved { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Menu existence flag [80 = title]
|
||||
/// </summary>
|
||||
public byte MenuExistenceFlag;
|
||||
public byte MenuExistenceFlag { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Offset to VMGM_LU, relative to VMGM_PGCI_UT
|
||||
/// </summary>
|
||||
public uint LanguageUnitOffset;
|
||||
public uint LanguageUnitOffset { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -10,25 +10,25 @@ namespace SabreTools.Models.DVD
|
||||
/// <summary>
|
||||
/// Number of countries
|
||||
/// </summary>
|
||||
public ushort NumberOfCountries;
|
||||
public ushort NumberOfCountries { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Number of title sets (NTs)
|
||||
/// </summary>
|
||||
public ushort NumberOfTitleSets;
|
||||
public ushort NumberOfTitleSets { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// End address (last byte of last PTL_MAIT)
|
||||
/// </summary>
|
||||
public uint EndAddress;
|
||||
public uint EndAddress { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Entries
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public ParentalManagementMasksTableEntry[] Entries;
|
||||
public ParentalManagementMasksTableEntry[] Entries { get; set; }
|
||||
#else
|
||||
public ParentalManagementMasksTableEntry?[]? Entries;
|
||||
public ParentalManagementMasksTableEntry?[]? Entries { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
@@ -37,9 +37,9 @@ namespace SabreTools.Models.DVD
|
||||
/// by the masks for level 7, and so on to level 1.
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public byte[][] BitMasks;
|
||||
public byte[][] BitMasks { get; set; }
|
||||
#else
|
||||
public byte[][]? BitMasks;
|
||||
public byte[][]? BitMasks { get; set; }
|
||||
#endif
|
||||
}
|
||||
}
|
||||
@@ -6,20 +6,20 @@ namespace SabreTools.Models.DVD
|
||||
/// <summary>
|
||||
/// Country code
|
||||
/// </summary>
|
||||
public ushort CountryCode;
|
||||
public ushort CountryCode { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Reserved
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public byte[] Reserved;
|
||||
public byte[] Reserved { get; set; }
|
||||
#else
|
||||
public byte[]? Reserved;
|
||||
public byte[]? Reserved { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Offset to PTL_MAIT
|
||||
/// </summary>
|
||||
public uint Offset;
|
||||
public uint Offset { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -6,30 +6,30 @@ namespace SabreTools.Models.DVD
|
||||
/// <summary>
|
||||
/// Number of Program Chains
|
||||
/// </summary>
|
||||
public ushort NumberOfProgramChains;
|
||||
public ushort NumberOfProgramChains { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Reserved
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public byte[] Reserved;
|
||||
public byte[] Reserved { get; set; }
|
||||
#else
|
||||
public byte[]? Reserved;
|
||||
public byte[]? Reserved { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// End address (last byte of last PGC in this LU)
|
||||
/// relative to VMGM_LU
|
||||
/// </summary>
|
||||
public uint EndAddress;
|
||||
public uint EndAddress { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Program Chains
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public ProgramChainTableEntry[] Entries;
|
||||
public ProgramChainTableEntry[] Entries { get; set; }
|
||||
#else
|
||||
public ProgramChainTableEntry?[]? Entries;
|
||||
public ProgramChainTableEntry?[]? Entries { get; set; }
|
||||
#endif
|
||||
}
|
||||
}
|
||||
@@ -6,21 +6,21 @@ namespace SabreTools.Models.DVD
|
||||
/// <summary>
|
||||
/// PGC category
|
||||
/// </summary>
|
||||
public ProgramChainCategory Category;
|
||||
public ProgramChainCategory Category { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Unknown
|
||||
/// </summary>
|
||||
public byte Unknown;
|
||||
public byte Unknown { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Parental management mask
|
||||
/// </summary>
|
||||
public ushort ParentalManagementMask;
|
||||
public ushort ParentalManagementMask { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Offset to VMGM_PGC, relative to VMGM_LU
|
||||
/// </summary>
|
||||
public uint Offset;
|
||||
public uint Offset { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -6,29 +6,29 @@ namespace SabreTools.Models.DVD
|
||||
/// <summary>
|
||||
/// Number of titles
|
||||
/// </summary>
|
||||
public ushort NumberOfTitles;
|
||||
public ushort NumberOfTitles { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Reserved
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public byte[] Reserved;
|
||||
public byte[] Reserved { get; set; }
|
||||
#else
|
||||
public byte[]? Reserved;
|
||||
public byte[]? Reserved { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// End address (last byte of last entry)
|
||||
/// </summary>
|
||||
public uint EndAddress;
|
||||
public uint EndAddress { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 12-byte entries
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public TitlesTableEntry[] Entries;
|
||||
public TitlesTableEntry[] Entries { get; set; }
|
||||
#else
|
||||
public TitlesTableEntry?[]? Entries;
|
||||
public TitlesTableEntry?[]? Entries { get; set; }
|
||||
#endif
|
||||
}
|
||||
}
|
||||
@@ -6,37 +6,37 @@ namespace SabreTools.Models.DVD
|
||||
/// <summary>
|
||||
/// Title type
|
||||
/// </summary>
|
||||
public TitleType TitleType;
|
||||
public TitleType TitleType { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Number of angles
|
||||
/// </summary>
|
||||
public byte NumberOfAngles;
|
||||
public byte NumberOfAngles { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Number of chapters (PTTs)
|
||||
/// </summary>
|
||||
public ushort NumberOfChapters;
|
||||
public ushort NumberOfChapters { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Parental management mask
|
||||
/// </summary>
|
||||
public ushort ParentalManagementMask;
|
||||
public ushort ParentalManagementMask { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Video Title Set number (VTSN)
|
||||
/// </summary>
|
||||
public byte VideoTitleSetNumber;
|
||||
public byte VideoTitleSetNumber { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Title number within VTS (VTS_TTN)
|
||||
/// </summary>
|
||||
public byte TitleNumberWithinVTS;
|
||||
public byte TitleNumberWithinVTS { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Start sector for VTS, referenced to whole disk
|
||||
/// (video_ts.ifo starts at sector 00000000)
|
||||
/// </summary>
|
||||
public uint VTSStartSector;
|
||||
public uint VTSStartSector { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -6,15 +6,15 @@ namespace SabreTools.Models.DVD
|
||||
/// <summary>
|
||||
/// End address (last byte of last entry)
|
||||
/// </summary>
|
||||
public uint EndAddress;
|
||||
public uint EndAddress { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Starting sector within VOB of nth VOBU
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public uint[] StartingSectors;
|
||||
public uint[] StartingSectors { get; set; }
|
||||
#else
|
||||
public uint[]? StartingSectors;
|
||||
public uint[]? StartingSectors { get; set; }
|
||||
#endif
|
||||
}
|
||||
}
|
||||
@@ -7,20 +7,20 @@ namespace SabreTools.Models.DVD
|
||||
/// "DVDVIDEO-VMG"
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public string Signature;
|
||||
public string Signature { get; set; }
|
||||
#else
|
||||
public string? Signature;
|
||||
public string? Signature { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Last sector of VMG set (last sector of BUP)
|
||||
/// </summary>
|
||||
public uint LastVMGSetSector;
|
||||
public uint LastVMGSetSector { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Last sector of IFO
|
||||
/// </summary>
|
||||
public uint LastIFOSector;
|
||||
public uint LastIFOSector { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Version number
|
||||
@@ -28,151 +28,151 @@ namespace SabreTools.Models.DVD
|
||||
/// - Byte 1, Bits 7-4 - Major version number
|
||||
/// - Byte 1, Bits 3-0 - Minor version number
|
||||
/// </summary>
|
||||
public ushort VersionNumber;
|
||||
public ushort VersionNumber { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// VMG category
|
||||
/// </summary>
|
||||
/// <remarks>byte1=prohibited region mask</remarks>
|
||||
public uint VMGCategory;
|
||||
public uint VMGCategory { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Number of volumes
|
||||
/// </summary>
|
||||
public ushort NumberOfVolumes;
|
||||
public ushort NumberOfVolumes { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Volume number
|
||||
/// </summary>
|
||||
public ushort VolumeNumber;
|
||||
public ushort VolumeNumber { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Side ID
|
||||
/// </summary>
|
||||
public byte SideID;
|
||||
public byte SideID { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Number of title sets
|
||||
/// </summary>
|
||||
public ushort NumberOfTitleSets;
|
||||
public ushort NumberOfTitleSets { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Provider ID
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public byte[] ProviderID;
|
||||
public byte[] ProviderID { get; set; }
|
||||
#else
|
||||
public byte[]? ProviderID;
|
||||
public byte[]? ProviderID { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// VMG POS
|
||||
/// </summary>
|
||||
public ulong VMGPOS;
|
||||
public ulong VMGPOS { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// End byte address of VMGI_MAT
|
||||
/// </summary>
|
||||
public uint InformationManagementTableEndByteAddress;
|
||||
public uint InformationManagementTableEndByteAddress { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Start address of FP_PGC (First Play program chain)
|
||||
/// </summary>
|
||||
public uint FirstPlayProgramChainStartAddress;
|
||||
public uint FirstPlayProgramChainStartAddress { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Start sector of Menu VOB
|
||||
/// </summary>
|
||||
public uint MenuVOBStartSector;
|
||||
public uint MenuVOBStartSector { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Sector pointer to TT_SRPT (table of titles)
|
||||
/// </summary>
|
||||
public uint TableOfTitlesSectorPointer;
|
||||
public uint TableOfTitlesSectorPointer { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Sector pointer to VMGM_PGCI_UT (Menu Program Chain table)
|
||||
/// </summary>
|
||||
public uint MenuProgramChainTableSectorPointer;
|
||||
public uint MenuProgramChainTableSectorPointer { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Sector pointer to VMG_PTL_MAIT (Parental Management masks)
|
||||
/// </summary>
|
||||
public uint ParentalManagementMasksSectorPointer;
|
||||
public uint ParentalManagementMasksSectorPointer { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Sector pointer to VMG_VTS_ATRT (copies of VTS audio/sub-picture attributes)
|
||||
/// </summary>
|
||||
public uint AudioSubPictureAttributesSectorPointer;
|
||||
public uint AudioSubPictureAttributesSectorPointer { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Sector pointer to VMG_TXTDT_MG (text data)
|
||||
/// </summary>
|
||||
public uint TextDataSectorPointer;
|
||||
public uint TextDataSectorPointer { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Sector pointer to VMGM_C_ADT (menu cell address table)
|
||||
/// </summary>
|
||||
public uint MenuCellAddressTableSectorPointer;
|
||||
public uint MenuCellAddressTableSectorPointer { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Sector pointer to VMGM_VOBU_ADMAP (menu VOBU address map)
|
||||
/// </summary>
|
||||
public uint MenuVOBUAddressMapSectorPointer;
|
||||
public uint MenuVOBUAddressMapSectorPointer { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Video attributes of VMGM_VOBS
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public byte[] VideoAttributes;
|
||||
public byte[] VideoAttributes { get; set; }
|
||||
#else
|
||||
public byte[]? VideoAttributes;
|
||||
public byte[]? VideoAttributes { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Number of audio streams in VMGM_VOBS
|
||||
/// </summary>
|
||||
public ushort NumberOfAudioStreams;
|
||||
public ushort NumberOfAudioStreams { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Audio attributes of VMGM_VOBS
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public byte[][] AudioAttributes;
|
||||
public byte[][] AudioAttributes { get; set; }
|
||||
#else
|
||||
public byte[][]? AudioAttributes;
|
||||
public byte[][]? AudioAttributes { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Unknown
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public byte[] Unknown;
|
||||
public byte[] Unknown { get; set; }
|
||||
#else
|
||||
public byte[]? Unknown;
|
||||
public byte[]? Unknown { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Number of subpicture streams in VMGM_VOBS (0 or 1)
|
||||
/// </summary>
|
||||
public ushort NumberOfSubpictureStreams;
|
||||
public ushort NumberOfSubpictureStreams { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Subpicture attributes of VMGM_VOBS
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public byte[] SubpictureAttributes;
|
||||
public byte[] SubpictureAttributes { get; set; }
|
||||
#else
|
||||
public byte[]? SubpictureAttributes;
|
||||
public byte[]? SubpictureAttributes { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Reserved
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public byte[] Reserved;
|
||||
public byte[] Reserved { get; set; }
|
||||
#else
|
||||
public byte[]? Reserved;
|
||||
public byte[]? Reserved { get; set; }
|
||||
#endif
|
||||
}
|
||||
}
|
||||
@@ -7,20 +7,20 @@ namespace SabreTools.Models.DVD
|
||||
/// "DVDVIDEO-VTS"
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public string Signature;
|
||||
public string Signature { get; set; }
|
||||
#else
|
||||
public string? Signature;
|
||||
public string? Signature { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Last sector of title set (last sector of BUP)
|
||||
/// </summary>
|
||||
public uint LastTitleSetSector;
|
||||
public uint LastTitleSetSector { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Last sector of IFO
|
||||
/// </summary>
|
||||
public uint LastIFOSector;
|
||||
public uint LastIFOSector { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Version number
|
||||
@@ -28,161 +28,161 @@ namespace SabreTools.Models.DVD
|
||||
/// - Byte 1, Bits 7-4 - Major version number
|
||||
/// - Byte 1, Bits 3-0 - Minor version number
|
||||
/// </summary>
|
||||
public ushort VersionNumber;
|
||||
public ushort VersionNumber { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// VTS category
|
||||
/// </summary>
|
||||
/// <remarks>0=unspecified, 1=Karaoke</remarks>
|
||||
public uint VMGCategory;
|
||||
public uint VMGCategory { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Number of volumes
|
||||
/// </summary>
|
||||
public ushort NumberOfVolumes;
|
||||
public ushort NumberOfVolumes { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Volume number
|
||||
/// </summary>
|
||||
public ushort VolumeNumber;
|
||||
public ushort VolumeNumber { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Side ID
|
||||
/// </summary>
|
||||
public byte SideID;
|
||||
public byte SideID { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Number of title sets
|
||||
/// </summary>
|
||||
public ushort NumberOfTitleSets;
|
||||
public ushort NumberOfTitleSets { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Provider ID
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public byte[] ProviderID;
|
||||
public byte[] ProviderID { get; set; }
|
||||
#else
|
||||
public byte[]? ProviderID;
|
||||
public byte[]? ProviderID { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// VMG POS
|
||||
/// </summary>
|
||||
public ulong VMGPOS;
|
||||
public ulong VMGPOS { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// End byte address of VTS_MAT
|
||||
/// </summary>
|
||||
public uint InformationManagementTableEndByteAddress;
|
||||
public uint InformationManagementTableEndByteAddress { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Start address of FP_PGC (First Play program chain)
|
||||
/// </summary>
|
||||
public uint FirstPlayProgramChainStartAddress;
|
||||
public uint FirstPlayProgramChainStartAddress { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Start sector of Menu VOB
|
||||
/// </summary>
|
||||
public uint MenuVOBStartSector;
|
||||
public uint MenuVOBStartSector { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Start sector of Title VOB
|
||||
/// </summary>
|
||||
public uint TitleVOBStartSector;
|
||||
public uint TitleVOBStartSector { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Sector pointer to VTS_PTT_SRPT (table of Titles and Chapters)
|
||||
/// </summary>
|
||||
public uint TableOfTitlesAndChaptersSectorPointer;
|
||||
public uint TableOfTitlesAndChaptersSectorPointer { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Sector pointer to VTS_PGCI (Title Program Chain table)
|
||||
/// </summary>
|
||||
public uint TitleProgramChainTableSectorPointer;
|
||||
public uint TitleProgramChainTableSectorPointer { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Sector pointer to VTSM_PGCI_UT (Menu Program Chain table)
|
||||
/// </summary>
|
||||
public uint MenuProgramChainTableSectorPointer;
|
||||
public uint MenuProgramChainTableSectorPointer { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Sector pointer to VTS_TMAPTI (time map)
|
||||
/// </summary>
|
||||
public uint TimeMapSectorPointer;
|
||||
public uint TimeMapSectorPointer { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Sector pointer to VTSM_C_ADT (menu cell address table)
|
||||
/// </summary>
|
||||
public uint MenuCellAddressTableSectorPointer;
|
||||
public uint MenuCellAddressTableSectorPointer { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Sector pointer to VTSM_VOBU_ADMAP (menu VOBU address map)
|
||||
/// </summary>
|
||||
public uint MenuVOBUAddressMapSectorPointer;
|
||||
public uint MenuVOBUAddressMapSectorPointer { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Sector pointer to VTS_C_ADT (title set cell address table)
|
||||
/// </summary>
|
||||
public uint TitleSetCellAddressTableSectorPointer;
|
||||
public uint TitleSetCellAddressTableSectorPointer { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Sector pointer to VTS_VOBU_ADMAP (title set VOBU address map)
|
||||
/// </summary>
|
||||
public uint TitleSetVOBUAddressMapSectorPointer;
|
||||
public uint TitleSetVOBUAddressMapSectorPointer { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Video attributes of VTSM_VOBS
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public byte[] VideoAttributes;
|
||||
public byte[] VideoAttributes { get; set; }
|
||||
#else
|
||||
public byte[]? VideoAttributes;
|
||||
public byte[]? VideoAttributes { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Number of audio streams in VTSM_VOBS
|
||||
/// </summary>
|
||||
public ushort NumberOfAudioStreams;
|
||||
public ushort NumberOfAudioStreams { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Audio attributes of VTSM_VOBS
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public byte[][] AudioAttributes;
|
||||
public byte[][] AudioAttributes { get; set; }
|
||||
#else
|
||||
public byte[][]? AudioAttributes;
|
||||
public byte[][]? AudioAttributes { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Unknown
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public byte[] Unknown;
|
||||
public byte[] Unknown { get; set; }
|
||||
#else
|
||||
public byte[]? Unknown;
|
||||
public byte[]? Unknown { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Number of subpicture streams in VTSM_VOBS (0 or 1)
|
||||
/// </summary>
|
||||
public ushort NumberOfSubpictureStreams;
|
||||
public ushort NumberOfSubpictureStreams { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Subpicture attributes of VTSM_VOBS
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public byte[] SubpictureAttributes;
|
||||
public byte[] SubpictureAttributes { get; set; }
|
||||
#else
|
||||
public byte[]? SubpictureAttributes;
|
||||
public byte[]? SubpictureAttributes { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Reserved
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public byte[] Reserved;
|
||||
public byte[] Reserved { get; set; }
|
||||
#else
|
||||
public byte[]? Reserved;
|
||||
public byte[]? Reserved { get; set; }
|
||||
#endif
|
||||
}
|
||||
}
|
||||
@@ -6,36 +6,36 @@ namespace SabreTools.Models.GCF
|
||||
/// <summary>
|
||||
/// Flags for the block entry. 0x200F0000 == Not used.
|
||||
/// </summary>
|
||||
public uint EntryFlags;
|
||||
public uint EntryFlags { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The offset for the data contained in this block entry in the file.
|
||||
/// </summary>
|
||||
public uint FileDataOffset;
|
||||
public uint FileDataOffset { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The length of the data in this block entry.
|
||||
/// </summary>
|
||||
public uint FileDataSize;
|
||||
public uint FileDataSize { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The offset to the first data block of this block entry's data.
|
||||
/// </summary>
|
||||
public uint FirstDataBlockIndex;
|
||||
public uint FirstDataBlockIndex { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The next block entry in the series. (N/A if == BlockCount.)
|
||||
/// </summary>
|
||||
public uint NextBlockEntryIndex;
|
||||
public uint NextBlockEntryIndex { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The previous block entry in the series. (N/A if == BlockCount.)
|
||||
/// </summary>
|
||||
public uint PreviousBlockEntryIndex;
|
||||
public uint PreviousBlockEntryIndex { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The offset of the block entry in the directory.
|
||||
/// </summary>
|
||||
public uint DirectoryIndex;
|
||||
public uint DirectoryIndex { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -6,41 +6,41 @@ namespace SabreTools.Models.GCF
|
||||
/// <summary>
|
||||
/// Number of data blocks.
|
||||
/// </summary>
|
||||
public uint BlockCount;
|
||||
public uint BlockCount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Number of data blocks that point to data.
|
||||
/// </summary>
|
||||
public uint BlocksUsed;
|
||||
public uint BlocksUsed { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Reserved
|
||||
/// </summary>
|
||||
public uint Dummy0;
|
||||
public uint Dummy0 { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Reserved
|
||||
/// </summary>
|
||||
public uint Dummy1;
|
||||
public uint Dummy1 { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Reserved
|
||||
/// </summary>
|
||||
public uint Dummy2;
|
||||
public uint Dummy2 { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Reserved
|
||||
/// </summary>
|
||||
public uint Dummy3;
|
||||
public uint Dummy3 { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Reserved
|
||||
/// </summary>
|
||||
public uint Dummy4;
|
||||
public uint Dummy4 { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Header checksum.
|
||||
/// </summary>
|
||||
public uint Checksum;
|
||||
public uint Checksum { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -9,11 +9,11 @@ namespace SabreTools.Models.GCF
|
||||
/// <summary>
|
||||
/// The previous block entry. (N/A if == BlockCount.)
|
||||
/// </summary>
|
||||
public uint PreviousBlockEntryIndex;
|
||||
public uint PreviousBlockEntryIndex { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The next block entry. (N/A if == BlockCount.)
|
||||
/// </summary>
|
||||
public uint NextBlockEntryIndex;
|
||||
public uint NextBlockEntryIndex { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -9,26 +9,26 @@ namespace SabreTools.Models.GCF
|
||||
/// <summary>
|
||||
/// Number of data blocks.
|
||||
/// </summary>
|
||||
public uint BlockCount;
|
||||
public uint BlockCount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Index of the first block entry.
|
||||
/// </summary>
|
||||
public uint FirstBlockEntryIndex;
|
||||
public uint FirstBlockEntryIndex { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Index of the last block entry.
|
||||
/// </summary>
|
||||
public uint LastBlockEntryIndex;
|
||||
public uint LastBlockEntryIndex { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Reserved
|
||||
/// </summary>
|
||||
public uint Dummy0;
|
||||
public uint Dummy0 { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Header checksum.
|
||||
/// </summary>
|
||||
public uint Checksum;
|
||||
public uint Checksum { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -6,6 +6,6 @@ namespace SabreTools.Models.GCF
|
||||
/// <summary>
|
||||
/// Checksum.
|
||||
/// </summary>
|
||||
public uint Checksum;
|
||||
public uint Checksum { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -6,11 +6,11 @@ namespace SabreTools.Models.GCF
|
||||
/// <summary>
|
||||
/// Always 0x00000001
|
||||
/// </summary>
|
||||
public uint Dummy0;
|
||||
public uint Dummy0 { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Size of LPGCFCHECKSUMHEADER & LPGCFCHECKSUMMAPHEADER & in bytes.
|
||||
/// </summary>
|
||||
public uint ChecksumSize;
|
||||
public uint ChecksumSize { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -6,11 +6,11 @@ namespace SabreTools.Models.GCF
|
||||
/// <summary>
|
||||
/// Number of checksums.
|
||||
/// </summary>
|
||||
public uint ChecksumCount;
|
||||
public uint ChecksumCount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Index of first checksum.
|
||||
/// </summary>
|
||||
public uint FirstChecksumIndex;
|
||||
public uint FirstChecksumIndex { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -6,21 +6,21 @@ namespace SabreTools.Models.GCF
|
||||
/// <summary>
|
||||
/// Always 0x14893721
|
||||
/// </summary>
|
||||
public uint Dummy0;
|
||||
public uint Dummy0 { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Always 0x00000001
|
||||
/// </summary>
|
||||
public uint Dummy1;
|
||||
public uint Dummy1 { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Number of items.
|
||||
/// </summary>
|
||||
public uint ItemCount;
|
||||
public uint ItemCount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Number of checksums.
|
||||
/// </summary>
|
||||
public uint ChecksumCount;
|
||||
public uint ChecksumCount { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -6,31 +6,31 @@ namespace SabreTools.Models.GCF
|
||||
/// <summary>
|
||||
/// GCF file version. This field is not part of all file versions.
|
||||
/// </summary>
|
||||
public uint LastVersionPlayed;
|
||||
public uint LastVersionPlayed { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Number of data blocks.
|
||||
/// </summary>
|
||||
public uint BlockCount;
|
||||
public uint BlockCount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Size of each data block in bytes.
|
||||
/// </summary>
|
||||
public uint BlockSize;
|
||||
public uint BlockSize { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Offset to first data block.
|
||||
/// </summary>
|
||||
public uint FirstBlockOffset;
|
||||
public uint FirstBlockOffset { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Number of data blocks that contain data.
|
||||
/// </summary>
|
||||
public uint BlocksUsed;
|
||||
public uint BlocksUsed { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Header checksum.
|
||||
/// </summary>
|
||||
public uint Checksum;
|
||||
public uint Checksum { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -6,6 +6,6 @@ namespace SabreTools.Models.GCF
|
||||
/// <summary>
|
||||
/// Index of the directory item.
|
||||
/// </summary>
|
||||
public uint DirectoryIndex;
|
||||
public uint DirectoryIndex { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -6,45 +6,45 @@ namespace SabreTools.Models.GCF
|
||||
/// <summary>
|
||||
/// Offset to the directory item name from the end of the directory items.
|
||||
/// </summary>
|
||||
public uint NameOffset;
|
||||
public uint NameOffset { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Directory item name from the end of the directory items.
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public string Name;
|
||||
public string Name { get; set; }
|
||||
#else
|
||||
public string? Name;
|
||||
public string? Name { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Size of the item. (If file, file size. If folder, num items.)
|
||||
/// </summary>
|
||||
public uint ItemSize;
|
||||
public uint ItemSize { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Checksome index. (0xFFFFFFFF == None).
|
||||
/// </summary>
|
||||
public uint ChecksumIndex;
|
||||
public uint ChecksumIndex { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Flags for the directory item. (0x00000000 == Folder).
|
||||
/// </summary>
|
||||
public HL_GCF_FLAG DirectoryFlags;
|
||||
public HL_GCF_FLAG DirectoryFlags { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Index of the parent directory item. (0xFFFFFFFF == None).
|
||||
/// </summary>
|
||||
public uint ParentIndex;
|
||||
public uint ParentIndex { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Index of the next directory item. (0x00000000 == None).
|
||||
/// </summary>
|
||||
public uint NextIndex;
|
||||
public uint NextIndex { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Index of the first directory item. (0x00000000 == None).
|
||||
/// </summary>
|
||||
public uint FirstIndex;
|
||||
public uint FirstIndex { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -6,71 +6,71 @@ namespace SabreTools.Models.GCF
|
||||
/// <summary>
|
||||
/// Always 0x00000004
|
||||
/// </summary>
|
||||
public uint Dummy0;
|
||||
public uint Dummy0 { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Cache ID.
|
||||
/// </summary>
|
||||
public uint CacheID;
|
||||
public uint CacheID { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// GCF file version.
|
||||
/// </summary>
|
||||
public uint LastVersionPlayed;
|
||||
public uint LastVersionPlayed { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Number of items in the directory.
|
||||
/// </summary>
|
||||
public uint ItemCount;
|
||||
public uint ItemCount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Number of files in the directory.
|
||||
/// </summary>
|
||||
public uint FileCount;
|
||||
public uint FileCount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Always 0x00008000. Data per checksum?
|
||||
/// </summary>
|
||||
public uint Dummy1;
|
||||
public uint Dummy1 { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Size of lpGCFDirectoryEntries & lpGCFDirectoryNames & lpGCFDirectoryInfo1Entries & lpGCFDirectoryInfo2Entries & lpGCFDirectoryCopyEntries & lpGCFDirectoryLocalEntries in bytes.
|
||||
/// </summary>
|
||||
public uint DirectorySize;
|
||||
public uint DirectorySize { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Size of the directory names in bytes.
|
||||
/// </summary>
|
||||
public uint NameSize;
|
||||
public uint NameSize { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Number of Info1 entires.
|
||||
/// </summary>
|
||||
public uint Info1Count;
|
||||
public uint Info1Count { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Number of files to copy.
|
||||
/// </summary>
|
||||
public uint CopyCount;
|
||||
public uint CopyCount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Number of files to keep local.
|
||||
/// </summary>
|
||||
public uint LocalCount;
|
||||
public uint LocalCount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Reserved
|
||||
/// </summary>
|
||||
public uint Dummy2;
|
||||
public uint Dummy2 { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Reserved
|
||||
/// </summary>
|
||||
public uint Dummy3;
|
||||
public uint Dummy3 { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Header checksum.
|
||||
/// </summary>
|
||||
public uint Checksum;
|
||||
public uint Checksum { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -6,6 +6,6 @@ namespace SabreTools.Models.GCF
|
||||
/// <summary>
|
||||
/// Reserved
|
||||
/// </summary>
|
||||
public uint Dummy0;
|
||||
public uint Dummy0 { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -6,6 +6,6 @@ namespace SabreTools.Models.GCF
|
||||
/// <summary>
|
||||
/// Reserved
|
||||
/// </summary>
|
||||
public uint Dummy0;
|
||||
public uint Dummy0 { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -6,6 +6,6 @@ namespace SabreTools.Models.GCF
|
||||
/// <summary>
|
||||
/// Index of the directory item.
|
||||
/// </summary>
|
||||
public uint DirectoryIndex;
|
||||
public uint DirectoryIndex { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -6,6 +6,6 @@ namespace SabreTools.Models.GCF
|
||||
/// <summary>
|
||||
/// Index of the first data block. (N/A if == BlockCount.)
|
||||
/// </summary>
|
||||
public uint FirstBlockIndex;
|
||||
public uint FirstBlockIndex { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -9,11 +9,11 @@ namespace SabreTools.Models.GCF
|
||||
/// <summary>
|
||||
/// Always 0x00000001
|
||||
/// </summary>
|
||||
public uint Dummy0;
|
||||
public uint Dummy0 { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Always 0x00000000
|
||||
/// </summary>
|
||||
public uint Dummy1;
|
||||
public uint Dummy1 { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -6,6 +6,6 @@ namespace SabreTools.Models.GCF
|
||||
/// <summary>
|
||||
/// The index of the next data block.
|
||||
/// </summary>
|
||||
public uint NextDataBlockIndex;
|
||||
public uint NextDataBlockIndex { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -6,21 +6,21 @@ namespace SabreTools.Models.GCF
|
||||
/// <summary>
|
||||
/// Number of data blocks.
|
||||
/// </summary>
|
||||
public uint BlockCount;
|
||||
public uint BlockCount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The index of the first unused fragmentation map entry.
|
||||
/// </summary>
|
||||
public uint FirstUnusedEntry;
|
||||
public uint FirstUnusedEntry { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The block entry terminator; 0 = 0x0000ffff or 1 = 0xffffffff.
|
||||
/// </summary>
|
||||
public uint Terminator;
|
||||
public uint Terminator { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Header checksum.
|
||||
/// </summary>
|
||||
public uint Checksum;
|
||||
public uint Checksum { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -6,56 +6,56 @@ namespace SabreTools.Models.GCF
|
||||
/// <summary>
|
||||
/// Always 0x00000001
|
||||
/// </summary>
|
||||
public uint Dummy0;
|
||||
public uint Dummy0 { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Always 0x00000001
|
||||
/// </summary>
|
||||
public uint MajorVersion;
|
||||
public uint MajorVersion { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// GCF version number.
|
||||
/// </summary>
|
||||
public uint MinorVersion;
|
||||
public uint MinorVersion { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Cache ID
|
||||
/// </summary>
|
||||
public uint CacheID;
|
||||
public uint CacheID { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Last version played
|
||||
/// </summary>
|
||||
public uint LastVersionPlayed;
|
||||
public uint LastVersionPlayed { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Reserved
|
||||
/// </summary>
|
||||
public uint Dummy1;
|
||||
public uint Dummy1 { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Reserved
|
||||
/// </summary>
|
||||
public uint Dummy2;
|
||||
public uint Dummy2 { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Total size of GCF file in bytes.
|
||||
/// </summary>
|
||||
public uint FileSize;
|
||||
public uint FileSize { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Size of each data block in bytes.
|
||||
/// </summary>
|
||||
public uint BlockSize;
|
||||
public uint BlockSize { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Number of data blocks.
|
||||
/// </summary>
|
||||
public uint BlockCount;
|
||||
public uint BlockCount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Reserved
|
||||
/// </summary>
|
||||
public uint Dummy3;
|
||||
public uint Dummy3 { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -7,29 +7,29 @@ namespace SabreTools.Models.InstallShieldCabinet
|
||||
/// "ISc("
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public string Signature;
|
||||
public string Signature { get; set; }
|
||||
#else
|
||||
public string? Signature;
|
||||
public string? Signature { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Encoded version
|
||||
/// </summary>
|
||||
public uint Version;
|
||||
public uint Version { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Volume information
|
||||
/// </summary>
|
||||
public uint VolumeInfo;
|
||||
public uint VolumeInfo { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Offset to cabinet descriptor
|
||||
/// </summary>
|
||||
public uint DescriptorOffset;
|
||||
public uint DescriptorOffset { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Cabinet descriptor size
|
||||
/// </summary>
|
||||
public uint DescriptorSize;
|
||||
public uint DescriptorSize { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -8,198 +8,198 @@ namespace SabreTools.Models.InstallShieldCabinet
|
||||
/// <summary>
|
||||
/// Offset to the component identifier
|
||||
/// </summary>
|
||||
public uint IdentifierOffset;
|
||||
public uint IdentifierOffset { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Component identifier
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public string Identifier;
|
||||
public string Identifier { get; set; }
|
||||
#else
|
||||
public string? Identifier;
|
||||
public string? Identifier { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Offset to the component descriptor
|
||||
/// </summary>
|
||||
public uint DescriptorOffset;
|
||||
public uint DescriptorOffset { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Offset to the display name
|
||||
/// </summary>
|
||||
public uint DisplayNameOffset;
|
||||
public uint DisplayNameOffset { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Display name
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public string DisplayName;
|
||||
public string DisplayName { get; set; }
|
||||
#else
|
||||
public string? DisplayName;
|
||||
public string? DisplayName { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Reserved
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public byte[] Reserved0;
|
||||
public byte[] Reserved0 { get; set; }
|
||||
#else
|
||||
public byte[]? Reserved0;
|
||||
public byte[]? Reserved0 { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Reserved offset
|
||||
/// </summary>
|
||||
public uint ReservedOffset0;
|
||||
public uint ReservedOffset0 { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Reserved offset
|
||||
/// </summary>
|
||||
public uint ReservedOffset1;
|
||||
public uint ReservedOffset1 { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Component index
|
||||
/// </summary>
|
||||
public ushort ComponentIndex;
|
||||
public ushort ComponentIndex { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Offset to the component name
|
||||
/// </summary>
|
||||
public uint NameOffset;
|
||||
public uint NameOffset { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Component name
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public string Name;
|
||||
public string Name { get; set; }
|
||||
#else
|
||||
public string? Name;
|
||||
public string? Name { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Reserved offset
|
||||
/// </summary>
|
||||
public uint ReservedOffset2;
|
||||
public uint ReservedOffset2 { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Reserved offset
|
||||
/// </summary>
|
||||
public uint ReservedOffset3;
|
||||
public uint ReservedOffset3 { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Reserved offset
|
||||
/// </summary>
|
||||
public uint ReservedOffset4;
|
||||
public uint ReservedOffset4 { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Reserved
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public byte[] Reserved1;
|
||||
public byte[] Reserved1 { get; set; }
|
||||
#else
|
||||
public byte[]? Reserved1;
|
||||
public byte[]? Reserved1 { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Offset to the component CLSID
|
||||
/// </summary>
|
||||
public uint CLSIDOffset;
|
||||
public uint CLSIDOffset { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Component CLSID
|
||||
/// </summary>
|
||||
public Guid CLSID;
|
||||
public Guid CLSID { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Reserved
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public byte[] Reserved2;
|
||||
public byte[] Reserved2 { get; set; }
|
||||
#else
|
||||
public byte[]? Reserved2;
|
||||
public byte[]? Reserved2 { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Reserved
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public byte[] Reserved3;
|
||||
public byte[] Reserved3 { get; set; }
|
||||
#else
|
||||
public byte[]? Reserved3;
|
||||
public byte[]? Reserved3 { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Number of depends(?)
|
||||
/// </summary>
|
||||
public ushort DependsCount;
|
||||
public ushort DependsCount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Offset to depends(?)
|
||||
/// </summary>
|
||||
public uint DependsOffset;
|
||||
public uint DependsOffset { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Number of file groups
|
||||
/// </summary>
|
||||
public uint FileGroupCount;
|
||||
public uint FileGroupCount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Offset to the file group names
|
||||
/// </summary>
|
||||
public uint FileGroupNamesOffset;
|
||||
public uint FileGroupNamesOffset { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// File group names
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public string[] FileGroupNames;
|
||||
public string[] FileGroupNames { get; set; }
|
||||
#else
|
||||
public string[]? FileGroupNames;
|
||||
public string[]? FileGroupNames { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Number of X3(?)
|
||||
/// </summary>
|
||||
public ushort X3Count;
|
||||
public ushort X3Count { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Offset to X3(?)
|
||||
/// </summary>
|
||||
public uint X3Offset;
|
||||
public uint X3Offset { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Number of sub-components
|
||||
/// </summary>
|
||||
public ushort SubComponentsCount;
|
||||
public ushort SubComponentsCount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Offset to the sub-components
|
||||
/// </summary>
|
||||
public uint SubComponentsOffset;
|
||||
public uint SubComponentsOffset { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Offset to the next component
|
||||
/// </summary>
|
||||
public uint NextComponentOffset;
|
||||
public uint NextComponentOffset { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Reserved offset
|
||||
/// </summary>
|
||||
public uint ReservedOffset5;
|
||||
public uint ReservedOffset5 { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Reserved offset
|
||||
/// </summary>
|
||||
public uint ReservedOffset6;
|
||||
public uint ReservedOffset6 { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Reserved offset
|
||||
/// </summary>
|
||||
public uint ReservedOffset7;
|
||||
public uint ReservedOffset7 { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Reserved offset
|
||||
/// </summary>
|
||||
public uint ReservedOffset8;
|
||||
public uint ReservedOffset8 { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -6,160 +6,160 @@ namespace SabreTools.Models.InstallShieldCabinet
|
||||
/// <summary>
|
||||
/// Offset to the descriptor strings
|
||||
/// </summary>
|
||||
public uint StringsOffset;
|
||||
public uint StringsOffset { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Reserved
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public byte[] Reserved0;
|
||||
public byte[] Reserved0 { get; set; }
|
||||
#else
|
||||
public byte[]? Reserved0;
|
||||
public byte[]? Reserved0 { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Offset to the component list
|
||||
/// </summary>
|
||||
public uint ComponentListOffset;
|
||||
public uint ComponentListOffset { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Offset to the file table
|
||||
/// </summary>
|
||||
public uint FileTableOffset;
|
||||
public uint FileTableOffset { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Reserved
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public byte[] Reserved1;
|
||||
public byte[] Reserved1 { get; set; }
|
||||
#else
|
||||
public byte[]? Reserved1;
|
||||
public byte[]? Reserved1 { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Size of the file table
|
||||
/// </summary>
|
||||
public uint FileTableSize;
|
||||
public uint FileTableSize { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Redundant size of the file table
|
||||
/// </summary>
|
||||
public uint FileTableSize2;
|
||||
public uint FileTableSize2 { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Number of directories
|
||||
/// </summary>
|
||||
public ushort DirectoryCount;
|
||||
public ushort DirectoryCount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Reserved
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public byte[] Reserved2;
|
||||
public byte[] Reserved2 { get; set; }
|
||||
#else
|
||||
public byte[]? Reserved2;
|
||||
public byte[]? Reserved2 { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Reserved
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public byte[] Reserved3;
|
||||
public byte[] Reserved3 { get; set; }
|
||||
#else
|
||||
public byte[]? Reserved3;
|
||||
public byte[]? Reserved3 { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Reserved
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public byte[] Reserved4;
|
||||
public byte[] Reserved4 { get; set; }
|
||||
#else
|
||||
public byte[]? Reserved4;
|
||||
public byte[]? Reserved4 { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Number of files
|
||||
/// </summary>
|
||||
public uint FileCount;
|
||||
public uint FileCount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Redundant offset to the file table
|
||||
/// </summary>
|
||||
public uint FileTableOffset2;
|
||||
public uint FileTableOffset2 { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Number of component table infos
|
||||
/// </summary>
|
||||
public ushort ComponentTableInfoCount;
|
||||
public ushort ComponentTableInfoCount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Offset to the component table
|
||||
/// </summary>
|
||||
public uint ComponentTableOffset;
|
||||
public uint ComponentTableOffset { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Reserved
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public byte[] Reserved5;
|
||||
public byte[] Reserved5 { get; set; }
|
||||
#else
|
||||
public byte[]? Reserved5;
|
||||
public byte[]? Reserved5 { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Reserved
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public byte[] Reserved6;
|
||||
public byte[] Reserved6 { get; set; }
|
||||
#else
|
||||
public byte[]? Reserved6;
|
||||
public byte[]? Reserved6 { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Offsets to the file groups
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public uint[] FileGroupOffsets;
|
||||
public uint[] FileGroupOffsets { get; set; }
|
||||
#else
|
||||
public uint[]? FileGroupOffsets;
|
||||
public uint[]? FileGroupOffsets { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Offsets to the components
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public uint[] ComponentOffsets;
|
||||
public uint[] ComponentOffsets { get; set; }
|
||||
#else
|
||||
public uint[]? ComponentOffsets;
|
||||
public uint[]? ComponentOffsets { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Offset to the setup types
|
||||
/// </summary>
|
||||
public uint SetupTypesOffset;
|
||||
public uint SetupTypesOffset { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Offset to the setup table
|
||||
/// </summary>
|
||||
public uint SetupTableOffset;
|
||||
public uint SetupTableOffset { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Reserved
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public byte[] Reserved7;
|
||||
public byte[] Reserved7 { get; set; }
|
||||
#else
|
||||
public byte[]? Reserved7;
|
||||
public byte[]? Reserved7 { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Reserved
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public byte[] Reserved8;
|
||||
public byte[] Reserved8 { get; set; }
|
||||
#else
|
||||
public byte[]? Reserved8;
|
||||
public byte[]? Reserved8 { get; set; }
|
||||
#endif
|
||||
}
|
||||
}
|
||||
@@ -6,69 +6,69 @@ namespace SabreTools.Models.InstallShieldCabinet
|
||||
/// <summary>
|
||||
/// Offset to the file descriptor name
|
||||
/// </summary>
|
||||
public uint NameOffset;
|
||||
public uint NameOffset { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// File descriptor name
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public string Name;
|
||||
public string Name { get; set; }
|
||||
#else
|
||||
public string? Name;
|
||||
public string? Name { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Directory index
|
||||
/// </summary>
|
||||
public uint DirectoryIndex;
|
||||
public uint DirectoryIndex { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// File flags
|
||||
/// </summary>
|
||||
public FileFlags Flags;
|
||||
public FileFlags Flags { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Size of the entry when expanded
|
||||
/// </summary>
|
||||
public ulong ExpandedSize;
|
||||
public ulong ExpandedSize { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Size of the entry when compressed
|
||||
/// </summary>
|
||||
public ulong CompressedSize;
|
||||
public ulong CompressedSize { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Offset to the entry data
|
||||
/// </summary>
|
||||
public ulong DataOffset;
|
||||
public ulong DataOffset { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// MD5 of the entry data
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public byte[] MD5;
|
||||
public byte[] MD5 { get; set; }
|
||||
#else
|
||||
public byte[]? MD5;
|
||||
public byte[]? MD5 { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Volume number
|
||||
/// </summary>
|
||||
public ushort Volume;
|
||||
public ushort Volume { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Link previous
|
||||
/// </summary>
|
||||
public uint LinkPrevious;
|
||||
public uint LinkPrevious { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Link next
|
||||
/// </summary>
|
||||
public uint LinkNext;
|
||||
public uint LinkNext { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Link flags
|
||||
/// </summary>
|
||||
public LinkFlags LinkFlags;
|
||||
public LinkFlags LinkFlags { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -6,157 +6,157 @@ namespace SabreTools.Models.InstallShieldCabinet
|
||||
/// <summary>
|
||||
/// Offset to the file group name
|
||||
/// </summary>
|
||||
public uint NameOffset;
|
||||
public uint NameOffset { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// File group name
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public string Name;
|
||||
public string Name { get; set; }
|
||||
#else
|
||||
public string? Name;
|
||||
public string? Name { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Size of the expanded data
|
||||
/// </summary>
|
||||
public uint ExpandedSize;
|
||||
public uint ExpandedSize { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Reserved
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public byte[] Reserved0;
|
||||
public byte[] Reserved0 { get; set; }
|
||||
#else
|
||||
public byte[]? Reserved0;
|
||||
public byte[]? Reserved0 { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Size of the compressed data
|
||||
/// </summary>
|
||||
public uint CompressedSize;
|
||||
public uint CompressedSize { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Reserved
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public byte[] Reserved1;
|
||||
public byte[] Reserved1 { get; set; }
|
||||
#else
|
||||
public byte[]? Reserved1;
|
||||
public byte[]? Reserved1 { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Reserved
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public byte[] Reserved2;
|
||||
public byte[] Reserved2 { get; set; }
|
||||
#else
|
||||
public byte[]? Reserved2;
|
||||
public byte[]? Reserved2 { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Attribute(?)
|
||||
/// </summary>
|
||||
public ushort Attribute1;
|
||||
public ushort Attribute1 { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Attribute(?)
|
||||
/// </summary>
|
||||
public ushort Attribute2;
|
||||
public ushort Attribute2 { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Index of the first file
|
||||
/// </summary>
|
||||
public uint FirstFile;
|
||||
public uint FirstFile { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Index of the last file
|
||||
/// </summary>
|
||||
public uint LastFile;
|
||||
public uint LastFile { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Unknown offset(?)
|
||||
/// </summary>
|
||||
public uint UnknownOffset;
|
||||
public uint UnknownOffset { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Var 4 offset(?)
|
||||
/// </summary>
|
||||
public uint Var4Offset;
|
||||
public uint Var4Offset { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Var 1 offset(?)
|
||||
/// </summary>
|
||||
public uint Var1Offset;
|
||||
public uint Var1Offset { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Offset to the HTTP location
|
||||
/// </summary>
|
||||
public uint HTTPLocationOffset;
|
||||
public uint HTTPLocationOffset { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Offset to the FTP location
|
||||
/// </summary>
|
||||
public uint FTPLocationOffset;
|
||||
public uint FTPLocationOffset { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Misc offset(?)
|
||||
/// </summary>
|
||||
public uint MiscOffset;
|
||||
public uint MiscOffset { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Var 2 offset(?)
|
||||
/// </summary>
|
||||
public uint Var2Offset;
|
||||
public uint Var2Offset { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Offset to the target directory
|
||||
/// </summary>
|
||||
public uint TargetDirectoryOffset;
|
||||
public uint TargetDirectoryOffset { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Reserved
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public byte[] Reserved3;
|
||||
public byte[] Reserved3 { get; set; }
|
||||
#else
|
||||
public byte[]? Reserved3;
|
||||
public byte[]? Reserved3 { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Reserved
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public byte[] Reserved4;
|
||||
public byte[] Reserved4 { get; set; }
|
||||
#else
|
||||
public byte[]? Reserved4;
|
||||
public byte[]? Reserved4 { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Reserved
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public byte[] Reserved5;
|
||||
public byte[] Reserved5 { get; set; }
|
||||
#else
|
||||
public byte[]? Reserved5;
|
||||
public byte[]? Reserved5 { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Reserved
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public byte[] Reserved6;
|
||||
public byte[] Reserved6 { get; set; }
|
||||
#else
|
||||
public byte[]? Reserved6;
|
||||
public byte[]? Reserved6 { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Reserved
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public byte[] Reserved7;
|
||||
public byte[] Reserved7 { get; set; }
|
||||
#else
|
||||
public byte[]? Reserved7;
|
||||
public byte[]? Reserved7 { get; set; }
|
||||
#endif
|
||||
}
|
||||
}
|
||||
@@ -3,16 +3,16 @@ namespace SabreTools.Models.InstallShieldCabinet
|
||||
/// <see href="https://github.com/twogood/unshield/blob/main/lib/cabfile.h"/>
|
||||
public sealed class OffsetList
|
||||
{
|
||||
public uint NameOffset;
|
||||
public uint NameOffset { get; set; }
|
||||
|
||||
#if NET48
|
||||
public string Name;
|
||||
public string Name { get; set; }
|
||||
#else
|
||||
public string? Name;
|
||||
public string? Name { get; set; }
|
||||
#endif
|
||||
|
||||
public uint DescriptorOffset;
|
||||
public uint DescriptorOffset { get; set; }
|
||||
|
||||
public uint NextOffset;
|
||||
public uint NextOffset { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -4,36 +4,36 @@ namespace SabreTools.Models.InstallShieldCabinet
|
||||
/// TODO: Should standard and high values be combined?
|
||||
public sealed class VolumeHeader
|
||||
{
|
||||
public uint DataOffset;
|
||||
public uint DataOffset { get; set; }
|
||||
|
||||
public uint DataOffsetHigh;
|
||||
public uint DataOffsetHigh { get; set; }
|
||||
|
||||
public uint FirstFileIndex;
|
||||
public uint FirstFileIndex { get; set; }
|
||||
|
||||
public uint LastFileIndex;
|
||||
public uint LastFileIndex { get; set; }
|
||||
|
||||
public uint FirstFileOffset;
|
||||
public uint FirstFileOffset { get; set; }
|
||||
|
||||
public uint FirstFileOffsetHigh;
|
||||
public uint FirstFileOffsetHigh { get; set; }
|
||||
|
||||
public uint FirstFileSizeExpanded;
|
||||
public uint FirstFileSizeExpanded { get; set; }
|
||||
|
||||
public uint FirstFileSizeExpandedHigh;
|
||||
public uint FirstFileSizeExpandedHigh { get; set; }
|
||||
|
||||
public uint FirstFileSizeCompressed;
|
||||
public uint FirstFileSizeCompressed { get; set; }
|
||||
|
||||
public uint FirstFileSizeCompressedHigh;
|
||||
public uint FirstFileSizeCompressedHigh { get; set; }
|
||||
|
||||
public uint LastFileOffset;
|
||||
public uint LastFileOffset { get; set; }
|
||||
|
||||
public uint LastFileOffsetHigh;
|
||||
public uint LastFileOffsetHigh { get; set; }
|
||||
|
||||
public uint LastFileSizeExpanded;
|
||||
public uint LastFileSizeExpanded { get; set; }
|
||||
|
||||
public uint LastFileSizeExpandedHigh;
|
||||
public uint LastFileSizeExpandedHigh { get; set; }
|
||||
|
||||
public uint LastFileSizeCompressed;
|
||||
public uint LastFileSizeCompressed { get; set; }
|
||||
|
||||
public uint LastFileSizeCompressedHigh;
|
||||
public uint LastFileSizeCompressedHigh { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -20,16 +20,16 @@ namespace SabreTools.Models.LinearExecutable
|
||||
/// The signature consists of a string of three (3) ASCII characters: "NB0"
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public string Signature;
|
||||
public string Signature { get; set; }
|
||||
#else
|
||||
public string? Signature;
|
||||
public string? Signature { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// This defines the type of debugger data that exists in the remainder of the
|
||||
/// debug information.
|
||||
/// </summary>
|
||||
public DebugFormatType FormatType;
|
||||
public DebugFormatType FormatType { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The format of the debugger data is defined by the debugger that is being used.
|
||||
@@ -38,9 +38,9 @@ namespace SabreTools.Models.LinearExecutable
|
||||
/// for the type field that is defined here.
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public byte[] DebuggerData;
|
||||
public byte[] DebuggerData { get; set; }
|
||||
#else
|
||||
public byte[]? DebuggerData;
|
||||
public byte[]? DebuggerData { get; set; }
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
@@ -44,20 +44,20 @@ namespace SabreTools.Models.LinearExecutable
|
||||
/// this number of times.
|
||||
/// For <see cref="BundleType.ForwarderEntry"/>, this field is reserved for future use.
|
||||
/// </remarks>
|
||||
public byte Entries;
|
||||
public byte Entries { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// This defines the bundle type which determines the contents of the BUNDLE INFO.
|
||||
/// </summary>
|
||||
public BundleType BundleType;
|
||||
public BundleType BundleType { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Table entries in the bundle
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public EntryTableEntry[] TableEntries;
|
||||
public EntryTableEntry[] TableEntries { get; set; }
|
||||
#else
|
||||
public EntryTableEntry?[]? TableEntries;
|
||||
public EntryTableEntry?[]? TableEntries { get; set; }
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
@@ -31,6 +31,6 @@ namespace SabreTools.Models.LinearExecutable
|
||||
/// This field specifies the offset following the last fixup record in the
|
||||
/// fixup record table. This is the last entry in the fixup page table. (n + 1)
|
||||
/// </remarks>
|
||||
public uint Offset;
|
||||
public uint Offset { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
/// The source type specifies the size and type of the fixup to be performed
|
||||
/// on the fixup source.
|
||||
/// </remarks>
|
||||
public FixupRecordSourceType SourceType;
|
||||
public FixupRecordSourceType SourceType { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Target Flags.
|
||||
@@ -28,7 +28,7 @@
|
||||
/// <remarks>
|
||||
/// The target flags specify how the target information is interpreted.
|
||||
/// </remarks>
|
||||
public FixupRecordTargetFlags TargetFlags;
|
||||
public FixupRecordTargetFlags TargetFlags { get; set; }
|
||||
|
||||
#region Source List Flag
|
||||
|
||||
@@ -52,7 +52,7 @@
|
||||
/// address is on the page to be fixed up, then the offset would have a value
|
||||
/// of -3.)
|
||||
/// </remarks>
|
||||
public ushort SourceOffset;
|
||||
public ushort SourceOffset { get; set; }
|
||||
|
||||
#endregion
|
||||
|
||||
@@ -76,7 +76,7 @@
|
||||
/// address is on the page to be fixed up, then the offset would have a value
|
||||
/// of -3.)
|
||||
/// </remarks>
|
||||
public byte SourceOffsetListCount;
|
||||
public byte SourceOffsetListCount { get; set; }
|
||||
|
||||
#endregion
|
||||
|
||||
@@ -97,7 +97,7 @@
|
||||
/// Ordinal Flag' bit in the target flags field is clear and a Word value when
|
||||
/// the bit is set.
|
||||
/// </remarks>
|
||||
public ushort TargetObjectNumberWORD;
|
||||
public ushort TargetObjectNumberWORD { get; set; }
|
||||
|
||||
#endregion
|
||||
|
||||
@@ -112,7 +112,7 @@
|
||||
/// Ordinal Flag' bit in the target flags field is clear and a Word value when
|
||||
/// the bit is set.
|
||||
/// </remarks>
|
||||
public byte TargetObjectNumberByte;
|
||||
public byte TargetObjectNumberByte { get; set; }
|
||||
|
||||
#endregion
|
||||
|
||||
@@ -131,7 +131,7 @@
|
||||
/// is a Word value when the '32-bit Target Offset Flag' bit in the target
|
||||
/// flags field is clear and a Dword value when the bit is set.
|
||||
/// </remarks>
|
||||
public uint TargetOffsetDWORD;
|
||||
public uint TargetOffsetDWORD { get; set; }
|
||||
|
||||
#endregion
|
||||
|
||||
@@ -146,7 +146,7 @@
|
||||
/// is a Word value when the '32-bit Target Offset Flag' bit in the target
|
||||
/// flags field is clear and a Dword value when the bit is set.
|
||||
/// </remarks>
|
||||
public ushort TargetOffsetWORD;
|
||||
public ushort TargetOffsetWORD { get; set; }
|
||||
|
||||
#endregion
|
||||
|
||||
@@ -171,7 +171,7 @@
|
||||
/// by the loader to index into this table created by the loader to locate
|
||||
/// the referenced module.
|
||||
/// </remarks>
|
||||
public ushort OrdinalIndexImportModuleNameTableWORD;
|
||||
public ushort OrdinalIndexImportModuleNameTableWORD { get; set; }
|
||||
|
||||
#endregion
|
||||
|
||||
@@ -190,7 +190,7 @@
|
||||
/// by the loader to index into this table created by the loader to locate
|
||||
/// the referenced module.
|
||||
/// </remarks>
|
||||
public byte OrdinalIndexImportModuleNameTableByte;
|
||||
public byte OrdinalIndexImportModuleNameTableByte { get; set; }
|
||||
|
||||
#endregion
|
||||
|
||||
@@ -210,7 +210,7 @@
|
||||
/// a Word value when the '32-bit Target Offset Flag' bit in the target
|
||||
/// flags field is clear and a Dword value when the bit is set.
|
||||
/// </remarks>
|
||||
public uint OffsetImportProcedureNameTableDWORD;
|
||||
public uint OffsetImportProcedureNameTableDWORD { get; set; }
|
||||
|
||||
#endregion
|
||||
|
||||
@@ -224,7 +224,7 @@
|
||||
/// a Word value when the '32-bit Target Offset Flag' bit in the target
|
||||
/// flags field is clear and a Dword value when the bit is set.
|
||||
/// </remarks>
|
||||
public ushort OffsetImportProcedureNameTableWORD;
|
||||
public ushort OffsetImportProcedureNameTableWORD { get; set; }
|
||||
|
||||
#endregion
|
||||
|
||||
@@ -247,7 +247,7 @@
|
||||
/// when the '32-bit Target Offset Flag' bit in the target flags field is clear and a
|
||||
/// Dword value when the bit is set.
|
||||
/// </remarks>
|
||||
public byte ImportedOrdinalNumberByte;
|
||||
public byte ImportedOrdinalNumberByte { get; set; }
|
||||
|
||||
#endregion
|
||||
|
||||
@@ -266,7 +266,7 @@
|
||||
/// when the '32-bit Target Offset Flag' bit in the target flags field is clear and a
|
||||
/// Dword value when the bit is set.
|
||||
/// </remarks>
|
||||
public uint ImportedOrdinalNumberDWORD;
|
||||
public uint ImportedOrdinalNumberDWORD { get; set; }
|
||||
|
||||
#endregion
|
||||
|
||||
@@ -281,7 +281,7 @@
|
||||
/// when the '32-bit Target Offset Flag' bit in the target flags field is clear and a
|
||||
/// Dword value when the bit is set.
|
||||
/// </remarks>
|
||||
public uint ImportedOrdinalNumberWORD;
|
||||
public uint ImportedOrdinalNumberWORD { get; set; }
|
||||
|
||||
#endregion
|
||||
|
||||
@@ -315,7 +315,7 @@
|
||||
/// This field is a Word value when the '32-bit Additive Flag' bit in the
|
||||
/// target flags field is clear and a Dword value when the bit is set.
|
||||
/// </remarks>
|
||||
public uint AdditiveFixupValueDWORD;
|
||||
public uint AdditiveFixupValueDWORD { get; set; }
|
||||
|
||||
#endregion
|
||||
|
||||
@@ -335,7 +335,7 @@
|
||||
/// This field is a Word value when the '32-bit Additive Flag' bit in the
|
||||
/// target flags field is clear and a Dword value when the bit is set.
|
||||
/// </remarks>
|
||||
public ushort AdditiveFixupValueWORD;
|
||||
public ushort AdditiveFixupValueWORD { get; set; }
|
||||
|
||||
#endregion
|
||||
|
||||
@@ -357,9 +357,9 @@
|
||||
/// fixups are to be made.
|
||||
/// </remarks>
|
||||
#if NET48
|
||||
public ushort[] SourceOffsetList;
|
||||
public ushort[] SourceOffsetList { get; set; }
|
||||
#else
|
||||
public ushort[]? SourceOffsetList;
|
||||
public ushort[]? SourceOffsetList { get; set; }
|
||||
#endif
|
||||
|
||||
#endregion
|
||||
|
||||
@@ -27,7 +27,7 @@ namespace SabreTools.Models.LinearExecutable
|
||||
/// This defines the length of the string in bytes. The length of each
|
||||
/// ascii name string is limited to 127 characters.
|
||||
/// </remarks>
|
||||
public byte Length;
|
||||
public byte Length { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// ASCII String.
|
||||
@@ -37,9 +37,9 @@ namespace SabreTools.Models.LinearExecutable
|
||||
/// the LEN field. The string is case sensitive and is not null terminated.
|
||||
/// </remarks>
|
||||
#if NET48
|
||||
public string Name;
|
||||
public string Name { get; set; }
|
||||
#else
|
||||
public string? Name;
|
||||
public string? Name { get; set; }
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
@@ -35,7 +35,7 @@ namespace SabreTools.Models.LinearExecutable
|
||||
/// linear EXE module and will be used in the future for parameter type
|
||||
/// checking.
|
||||
/// </remarks>
|
||||
public byte Length;
|
||||
public byte Length { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// ASCII String.
|
||||
@@ -45,9 +45,9 @@ namespace SabreTools.Models.LinearExecutable
|
||||
/// the LEN field. The string is case sensitive and is not null terminated.
|
||||
/// </remarks>
|
||||
#if NET48
|
||||
public string Name;
|
||||
public string Name { get; set; }
|
||||
#else
|
||||
public string? Name;
|
||||
public string? Name { get; set; }
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
@@ -25,9 +25,9 @@ namespace SabreTools.Models.LinearExecutable
|
||||
/// file as a valid 32-bit Linear Executable Module Format.
|
||||
/// </remarks>
|
||||
#if NET48
|
||||
public string Signature;
|
||||
public string Signature { get; set; }
|
||||
#else
|
||||
public string? Signature;
|
||||
public string? Signature { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
@@ -36,7 +36,7 @@ namespace SabreTools.Models.LinearExecutable
|
||||
/// <remarks>
|
||||
/// This byte specifies the byte ordering for the linear EXE format.
|
||||
/// </remarks>
|
||||
public ByteOrder ByteOrder;
|
||||
public ByteOrder ByteOrder { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Word Ordering.
|
||||
@@ -44,7 +44,7 @@ namespace SabreTools.Models.LinearExecutable
|
||||
/// <remarks>
|
||||
/// This byte specifies the Word ordering for the linear EXE format.
|
||||
/// </remarks>
|
||||
public WordOrder WordOrder;
|
||||
public WordOrder WordOrder { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Linear EXE Format Level.
|
||||
@@ -56,7 +56,7 @@ namespace SabreTools.Models.LinearExecutable
|
||||
/// future EXE file versions so that an appropriate error message may be
|
||||
/// displayed if an attempt is made to load them.
|
||||
/// </remarks>
|
||||
public uint ExecutableFormatLevel;
|
||||
public uint ExecutableFormatLevel { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Module CPU Type.
|
||||
@@ -64,7 +64,7 @@ namespace SabreTools.Models.LinearExecutable
|
||||
/// <remarks>
|
||||
/// This field specifies the type of CPU required by this module to run.
|
||||
/// </remarks>
|
||||
public CPUType CPUType;
|
||||
public CPUType CPUType { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Module OS Type.
|
||||
@@ -72,7 +72,7 @@ namespace SabreTools.Models.LinearExecutable
|
||||
/// <remarks>
|
||||
/// This field specifies the type of Operating system required to run this module.
|
||||
/// </remarks>
|
||||
public OperatingSystem ModuleOS;
|
||||
public OperatingSystem ModuleOS { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Module version
|
||||
@@ -81,12 +81,12 @@ namespace SabreTools.Models.LinearExecutable
|
||||
/// This is useful for differentiating between revisions of dynamic linked modules.
|
||||
/// This value is specified at link time by the user.
|
||||
/// </remarks>
|
||||
public uint ModuleVersion;
|
||||
public uint ModuleVersion { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Module type flags
|
||||
/// </summary>
|
||||
public ModuleFlags ModuleTypeFlags;
|
||||
public ModuleFlags ModuleTypeFlags { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Number of pages in module.
|
||||
@@ -101,7 +101,7 @@ namespace SabreTools.Models.LinearExecutable
|
||||
/// EXE module. This is used to determine the size of the page information tables
|
||||
/// in the linear EXE module.
|
||||
/// </remarks>
|
||||
public uint ModuleNumberPages;
|
||||
public uint ModuleNumberPages { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The Object number to which the Entry Address is relative.
|
||||
@@ -116,7 +116,7 @@ namespace SabreTools.Models.LinearExecutable
|
||||
/// is set, then the object to which this field refers must be a 32-bit object (i.e.,
|
||||
/// the Big/Default bit must be set in the object flags; see below).
|
||||
/// </remarks>
|
||||
public uint InitialObjectCS;
|
||||
public uint InitialObjectCS { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Entry Address of module.
|
||||
@@ -125,7 +125,7 @@ namespace SabreTools.Models.LinearExecutable
|
||||
/// The Entry Address is the starting address for program modules and the library
|
||||
/// initialization and Library termination address for library modules.
|
||||
/// </remarks>
|
||||
public uint InitialEIP;
|
||||
public uint InitialEIP { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The Object number to which the ESP is relative.
|
||||
@@ -135,7 +135,7 @@ namespace SabreTools.Models.LinearExecutable
|
||||
/// nonzero value for a program module to be correctly loaded. This field is ignored
|
||||
/// for a library module.
|
||||
/// </remarks>
|
||||
public uint InitialObjectSS;
|
||||
public uint InitialObjectSS { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Starting stack address of module.
|
||||
@@ -145,7 +145,7 @@ namespace SabreTools.Models.LinearExecutable
|
||||
/// value in this field indicates that the stack pointer is to be initialized to the
|
||||
/// highest address/offset in the object. This field is ignored for a library module.
|
||||
/// </remarks>
|
||||
public uint InitialESP;
|
||||
public uint InitialESP { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The size of one page for this system.
|
||||
@@ -155,7 +155,7 @@ namespace SabreTools.Models.LinearExecutable
|
||||
/// For the initial version of this linear EXE format the page size is 4Kbytes.
|
||||
/// (The 4K page size is specified by a value of 4096 in this field.)
|
||||
/// </remarks>
|
||||
public uint MemoryPageSize;
|
||||
public uint MemoryPageSize { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The shift left bits for page offsets.
|
||||
@@ -169,7 +169,7 @@ namespace SabreTools.Models.LinearExecutable
|
||||
/// 512 byte (disk sector) basis. The default value for this field is 12 (decimal),
|
||||
/// which give a 4096 byte alignment. All other offsets are byte aligned.
|
||||
/// </remarks>
|
||||
public uint BytesOnLastPage;
|
||||
public uint BytesOnLastPage { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Total size of the fixup information in bytes.
|
||||
@@ -181,7 +181,7 @@ namespace SabreTools.Models.LinearExecutable
|
||||
/// - Import Module name Table
|
||||
/// - Import Procedure Name Table
|
||||
/// </remarks>
|
||||
public uint FixupSectionSize;
|
||||
public uint FixupSectionSize { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Checksum for fixup information.
|
||||
@@ -192,7 +192,7 @@ namespace SabreTools.Models.LinearExecutable
|
||||
/// not always loaded into main memory with the 'loader section'. If the checksum
|
||||
/// feature is not implemented, then the linker will set these fields to zero.
|
||||
/// </remarks>
|
||||
public uint FixupSectionChecksum;
|
||||
public uint FixupSectionChecksum { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Size of memory resident tables.
|
||||
@@ -202,7 +202,7 @@ namespace SabreTools.Models.LinearExecutable
|
||||
/// for the module, while the module is in use. This total size includes all
|
||||
/// tables from the Object Table down to and including the Per-Page Checksum Table.
|
||||
/// </remarks>
|
||||
public uint LoaderSectionSize;
|
||||
public uint LoaderSectionSize { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Checksum for loader section.
|
||||
@@ -212,7 +212,7 @@ namespace SabreTools.Models.LinearExecutable
|
||||
/// If the checksum feature is not implemented, then the linker will set these fields
|
||||
/// to zero.
|
||||
/// </remarks>
|
||||
public uint LoaderSectionChecksum;
|
||||
public uint LoaderSectionChecksum { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Object Table offset.
|
||||
@@ -220,7 +220,7 @@ namespace SabreTools.Models.LinearExecutable
|
||||
/// <remarks>
|
||||
/// This offset is relative to the beginning of the linear EXE header.
|
||||
/// </remarks>
|
||||
public uint ObjectTableOffset;
|
||||
public uint ObjectTableOffset { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Object Table Count.
|
||||
@@ -228,7 +228,7 @@ namespace SabreTools.Models.LinearExecutable
|
||||
/// <remarks>
|
||||
/// This defines the number of entries in Object Table.
|
||||
/// </remarks>
|
||||
public uint ObjectTableCount;
|
||||
public uint ObjectTableCount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Object Page Table offset
|
||||
@@ -236,7 +236,7 @@ namespace SabreTools.Models.LinearExecutable
|
||||
/// <remarks>
|
||||
/// This offset is relative to the beginning of the linear EXE header.
|
||||
/// </remarks>
|
||||
public uint ObjectPageMapOffset;
|
||||
public uint ObjectPageMapOffset { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Object Iterated Pages offset.
|
||||
@@ -244,7 +244,7 @@ namespace SabreTools.Models.LinearExecutable
|
||||
/// <remarks>
|
||||
/// This offset is relative to the beginning of the linear EXE header.
|
||||
/// </remarks>
|
||||
public uint ObjectIterateDataMapOffset;
|
||||
public uint ObjectIterateDataMapOffset { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Resource Table offset
|
||||
@@ -252,12 +252,12 @@ namespace SabreTools.Models.LinearExecutable
|
||||
/// <remarks>
|
||||
/// This offset is relative to the beginning of the linear EXE header.
|
||||
/// </remarks>
|
||||
public uint ResourceTableOffset;
|
||||
public uint ResourceTableOffset { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Number of entries in Resource Table.
|
||||
/// </summary>
|
||||
public uint ResourceTableCount;
|
||||
public uint ResourceTableCount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Resident Name Table offset.
|
||||
@@ -265,7 +265,7 @@ namespace SabreTools.Models.LinearExecutable
|
||||
/// <remarks>
|
||||
/// This offset is relative to the beginning of the linear EXE header.
|
||||
/// </remarks>
|
||||
public uint ResidentNamesTableOffset;
|
||||
public uint ResidentNamesTableOffset { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Entry Table offset.
|
||||
@@ -273,7 +273,7 @@ namespace SabreTools.Models.LinearExecutable
|
||||
/// <remarks>
|
||||
/// This offset is relative to the beginning of the linear EXE header.
|
||||
/// </remarks>
|
||||
public uint EntryTableOffset;
|
||||
public uint EntryTableOffset { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Module Format Directives Table offset.
|
||||
@@ -281,7 +281,7 @@ namespace SabreTools.Models.LinearExecutable
|
||||
/// <remarks>
|
||||
/// This offset is relative to the beginning of the linear EXE header.
|
||||
/// </remarks>
|
||||
public uint ModuleDirectivesTableOffset;
|
||||
public uint ModuleDirectivesTableOffset { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Number of Module Format Directives in the Table.
|
||||
@@ -290,7 +290,7 @@ namespace SabreTools.Models.LinearExecutable
|
||||
/// This field specifies the number of entries in the
|
||||
/// Module Format Directives Table.
|
||||
/// </remarks>
|
||||
public uint ModuleDirectivesCount;
|
||||
public uint ModuleDirectivesCount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Fixup Page Table offset.
|
||||
@@ -298,7 +298,7 @@ namespace SabreTools.Models.LinearExecutable
|
||||
/// <remarks>
|
||||
/// This offset is relative to the beginning of the linear EXE header.
|
||||
/// </remarks>
|
||||
public uint FixupPageTableOffset;
|
||||
public uint FixupPageTableOffset { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Fixup Record Table offset.
|
||||
@@ -306,7 +306,7 @@ namespace SabreTools.Models.LinearExecutable
|
||||
/// <remarks>
|
||||
/// This offset is relative to the beginning of the linear EXE header.
|
||||
/// </remarks>
|
||||
public uint FixupRecordTableOffset;
|
||||
public uint FixupRecordTableOffset { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Import Module Name Table offset.
|
||||
@@ -314,12 +314,12 @@ namespace SabreTools.Models.LinearExecutable
|
||||
/// <remarks>
|
||||
/// This offset is relative to the beginning of the linear EXE header.
|
||||
/// </remarks>
|
||||
public uint ImportedModulesNameTableOffset;
|
||||
public uint ImportedModulesNameTableOffset { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The number of entries in the Import Module Name Table.
|
||||
/// </summary>
|
||||
public uint ImportedModulesCount;
|
||||
public uint ImportedModulesCount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Import Procedure Name Table offset.
|
||||
@@ -327,7 +327,7 @@ namespace SabreTools.Models.LinearExecutable
|
||||
/// <remarks>
|
||||
/// This offset is relative to the beginning of the linear EXE header.
|
||||
/// </remarks>
|
||||
public uint ImportProcedureNameTableOffset;
|
||||
public uint ImportProcedureNameTableOffset { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Per-page Checksum Table offset.
|
||||
@@ -335,7 +335,7 @@ namespace SabreTools.Models.LinearExecutable
|
||||
/// <remarks>
|
||||
/// This offset is relative to the beginning of the linear EXE header.
|
||||
/// </remarks>
|
||||
public uint PerPageChecksumTableOffset;
|
||||
public uint PerPageChecksumTableOffset { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Data Pages Offset.
|
||||
@@ -343,7 +343,7 @@ namespace SabreTools.Models.LinearExecutable
|
||||
/// <remarks>
|
||||
/// This offset is relative to the beginning of the EXE file.
|
||||
/// </remarks>
|
||||
public uint DataPagesOffset;
|
||||
public uint DataPagesOffset { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Number of Preload pages for this module.
|
||||
@@ -352,7 +352,7 @@ namespace SabreTools.Models.LinearExecutable
|
||||
/// Note that OS/2 2.0 does not respect the preload of pages as specified
|
||||
/// in the executable file for performance reasons.
|
||||
/// </remarks>
|
||||
public uint PreloadPageCount;
|
||||
public uint PreloadPageCount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Non-Resident Name Table offset.
|
||||
@@ -360,12 +360,12 @@ namespace SabreTools.Models.LinearExecutable
|
||||
/// <remarks>
|
||||
/// This offset is relative to the beginning of the EXE file.
|
||||
/// </remarks>
|
||||
public uint NonResidentNamesTableOffset;
|
||||
public uint NonResidentNamesTableOffset { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Number of bytes in the Non-resident name table.
|
||||
/// </summary>
|
||||
public uint NonResidentNamesTableLength;
|
||||
public uint NonResidentNamesTableLength { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Non-Resident Name Table Checksum.
|
||||
@@ -373,7 +373,7 @@ namespace SabreTools.Models.LinearExecutable
|
||||
/// <remarks>
|
||||
/// This is a cryptographic checksum of the Non-Resident Name Table.
|
||||
/// </remarks>
|
||||
public uint NonResidentNamesTableChecksum;
|
||||
public uint NonResidentNamesTableChecksum { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The Auto Data Segment Object number.
|
||||
@@ -383,7 +383,7 @@ namespace SabreTools.Models.LinearExecutable
|
||||
/// This field is supported for 16-bit compatibility only and is not used by
|
||||
/// 32-bit modules.
|
||||
/// </remarks>
|
||||
public uint AutomaticDataObject;
|
||||
public uint AutomaticDataObject { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Debug Information offset.
|
||||
@@ -391,7 +391,7 @@ namespace SabreTools.Models.LinearExecutable
|
||||
/// <remarks>
|
||||
/// This offset is relative to the beginning of the linear EXE header.
|
||||
/// </remarks>
|
||||
public uint DebugInformationOffset;
|
||||
public uint DebugInformationOffset { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Debug Information length.
|
||||
@@ -399,7 +399,7 @@ namespace SabreTools.Models.LinearExecutable
|
||||
/// <remarks>
|
||||
/// The length of the debug information in bytes.
|
||||
/// </remarks>
|
||||
public uint DebugInformationLength;
|
||||
public uint DebugInformationLength { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Instance pages in preload section.
|
||||
@@ -407,7 +407,7 @@ namespace SabreTools.Models.LinearExecutable
|
||||
/// <remarks>
|
||||
/// The number of instance data pages found in the preload section.
|
||||
/// </remarks>
|
||||
public uint PreloadInstancePagesNumber;
|
||||
public uint PreloadInstancePagesNumber { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Instance pages in demand section.
|
||||
@@ -415,7 +415,7 @@ namespace SabreTools.Models.LinearExecutable
|
||||
/// <remarks>
|
||||
/// The number of instance data pages found in the demand section.
|
||||
/// </remarks>
|
||||
public uint DemandInstancePagesNumber;
|
||||
public uint DemandInstancePagesNumber { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Heap size added to the Auto DS Object.
|
||||
@@ -425,6 +425,6 @@ namespace SabreTools.Models.LinearExecutable
|
||||
/// by the loader. This field is supported for 16-bit compatibility only and
|
||||
/// is not used by 32-bit modules.
|
||||
/// </remarks>
|
||||
public uint ExtraHeapAllocation;
|
||||
public uint ExtraHeapAllocation { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -25,7 +25,7 @@ namespace SabreTools.Models.LinearExecutable
|
||||
/// The directive number specifies the type of directive defined. This can be
|
||||
/// used to determine the format of the information in the directive data.
|
||||
/// </remarks>
|
||||
public DirectiveNumber DirectiveNumber;
|
||||
public DirectiveNumber DirectiveNumber { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Directive data length.
|
||||
@@ -33,7 +33,7 @@ namespace SabreTools.Models.LinearExecutable
|
||||
/// <remarks>
|
||||
/// This specifies the length in byte of the directive data for this directive number.
|
||||
/// </remarks>
|
||||
public ushort DirectiveDataLength;
|
||||
public ushort DirectiveDataLength { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Directive data offset.
|
||||
@@ -43,6 +43,6 @@ namespace SabreTools.Models.LinearExecutable
|
||||
/// to beginning of linear EXE header for a resident table, and relative to the
|
||||
/// beginning of the EXE file for non-resident tables.
|
||||
/// </remarks>
|
||||
public uint DirectiveDataOffset;
|
||||
public uint DirectiveDataOffset { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -42,7 +42,7 @@ namespace SabreTools.Models.LinearExecutable
|
||||
/// signifies that additional information is contained in the linear EXE module and
|
||||
/// will be used in the future for parameter type checking.
|
||||
/// </remarks>
|
||||
public byte Length;
|
||||
public byte Length { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// ASCII String.
|
||||
@@ -52,9 +52,9 @@ namespace SabreTools.Models.LinearExecutable
|
||||
/// The string is case case sensitive and is not null terminated.
|
||||
/// </remarks>
|
||||
#if NET48
|
||||
public string Name;
|
||||
public string Name { get; set; }
|
||||
#else
|
||||
public string? Name;
|
||||
public string? Name { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
@@ -63,6 +63,6 @@ namespace SabreTools.Models.LinearExecutable
|
||||
/// <remarks>
|
||||
/// The ordinal number in an ordered index into the entry table for this entry point.
|
||||
/// </remarks>
|
||||
public ushort OrdinalNumber;
|
||||
public ushort OrdinalNumber { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -38,7 +38,7 @@ namespace SabreTools.Models.LinearExecutable
|
||||
/// The logical page number (Object Page Table index), is used to index the Fixup
|
||||
/// Page Table to find any fixups associated with the logical page.
|
||||
/// </remarks>
|
||||
public uint PageDataOffset;
|
||||
public uint PageDataOffset { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Number of bytes of data for this page.
|
||||
@@ -50,11 +50,11 @@ namespace SabreTools.Models.LinearExecutable
|
||||
/// bytes are to be filled with zeros. If the FLAGS field indicates an Iterated Data
|
||||
/// Page, the iterated data records will completely fill out the remainder.
|
||||
/// </remarks>
|
||||
public ushort DataSize;
|
||||
public ushort DataSize { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Attributes specifying characteristics of this logical page.
|
||||
/// </summary>
|
||||
public ObjectPageFlags Flags;
|
||||
public ObjectPageFlags Flags { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -27,7 +27,7 @@ namespace SabreTools.Models.LinearExecutable
|
||||
/// file for the object. This memory size must also be large enough to
|
||||
/// contain all of the iterated data and uninitialized data in the EXE file.
|
||||
/// </remarks>
|
||||
public uint VirtualSegmentSize;
|
||||
public uint VirtualSegmentSize { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Relocation Base Address.
|
||||
@@ -37,12 +37,12 @@ namespace SabreTools.Models.LinearExecutable
|
||||
/// internal relocation fixups for the module have been removed, this is the
|
||||
/// address the object will be allocated at by the loader.
|
||||
/// </remarks>
|
||||
public uint RelocationBaseAddress;
|
||||
public uint RelocationBaseAddress { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Flag bits for the object.
|
||||
/// </summary>
|
||||
public ObjectFlags ObjectFlags;
|
||||
public ObjectFlags ObjectFlags { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Object Page Table Index.
|
||||
@@ -56,7 +56,7 @@ namespace SabreTools.Models.LinearExecutable
|
||||
/// other words the object table entries are sorted based on the object page table
|
||||
/// index value.
|
||||
/// </remarks>
|
||||
public uint PageTableIndex;
|
||||
public uint PageTableIndex { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// # of object page table entries for this object.
|
||||
@@ -72,11 +72,11 @@ namespace SabreTools.Models.LinearExecutable
|
||||
/// was neither a zero filled or invalid page, then the additional pages are treated
|
||||
/// as zero filled pages.
|
||||
/// </remarks>
|
||||
public uint PageTableEntries;
|
||||
public uint PageTableEntries { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Reserved for future use. Must be set to zero.
|
||||
/// </summary>
|
||||
public uint Reserved;
|
||||
public uint Reserved { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,6 +19,6 @@ namespace SabreTools.Models.LinearExecutable
|
||||
/// <summary>
|
||||
/// Cryptographic checksum.
|
||||
/// </summary>
|
||||
public uint Checksum;
|
||||
public uint Checksum { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -42,7 +42,7 @@ namespace SabreTools.Models.LinearExecutable
|
||||
/// signifies that additional information is contained in the linear EXE module and
|
||||
/// will be used in the future for parameter type checking.
|
||||
/// </remarks>
|
||||
public byte Length;
|
||||
public byte Length { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// ASCII String.
|
||||
@@ -52,9 +52,9 @@ namespace SabreTools.Models.LinearExecutable
|
||||
/// The string is case case sensitive and is not null terminated.
|
||||
/// </remarks>
|
||||
#if NET48
|
||||
public string Name;
|
||||
public string Name { get; set; }
|
||||
#else
|
||||
public string? Name;
|
||||
public string? Name { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
@@ -63,6 +63,6 @@ namespace SabreTools.Models.LinearExecutable
|
||||
/// <remarks>
|
||||
/// The ordinal number in an ordered index into the entry table for this entry point.
|
||||
/// </remarks>
|
||||
public ushort OrdinalNumber;
|
||||
public ushort OrdinalNumber { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,26 +21,26 @@ namespace SabreTools.Models.LinearExecutable
|
||||
/// <summary>
|
||||
/// Resource type ID.
|
||||
/// </summary>
|
||||
public ResourceTableEntryType TypeID;
|
||||
public ResourceTableEntryType TypeID { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// An ID used as a name for the resource when referred to.
|
||||
/// </summary>
|
||||
public ushort NameID;
|
||||
public ushort NameID { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The number of bytes the resource consists of.
|
||||
/// </summary>
|
||||
public uint ResourceSize;
|
||||
public uint ResourceSize { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The number of the object which contains the resource.
|
||||
/// </summary>
|
||||
public ushort ObjectNumber;
|
||||
public ushort ObjectNumber { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The offset within the specified object where the resource begins.
|
||||
/// </summary>
|
||||
public uint Offset;
|
||||
public uint Offset { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -22,7 +22,7 @@ namespace SabreTools.Models.LinearExecutable
|
||||
/// directive table. This is equal to the number of modules referenced by
|
||||
/// this module.
|
||||
/// </remarks>
|
||||
public ushort EntryCount;
|
||||
public ushort EntryCount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Ordinal index into the Import Module Name Table.
|
||||
@@ -31,7 +31,7 @@ namespace SabreTools.Models.LinearExecutable
|
||||
/// This value is an ordered index in to the Import Module Name Table for
|
||||
/// the referenced module.
|
||||
/// </remarks>
|
||||
public ushort OrdinalIndex;
|
||||
public ushort OrdinalIndex { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Module Version.
|
||||
@@ -44,7 +44,7 @@ namespace SabreTools.Models.LinearExecutable
|
||||
/// number in a module to be incremented anytime the entry point offsets
|
||||
/// change.
|
||||
/// </remarks>
|
||||
public ushort Version;
|
||||
public ushort Version { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Module # of Object Entries.
|
||||
@@ -53,7 +53,7 @@ namespace SabreTools.Models.LinearExecutable
|
||||
/// This field is used to identify the number of object verify entries
|
||||
/// that follow for the referenced module.
|
||||
/// </remarks>
|
||||
public ushort ObjectEntriesCount;
|
||||
public ushort ObjectEntriesCount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Object # in Module.
|
||||
@@ -62,7 +62,7 @@ namespace SabreTools.Models.LinearExecutable
|
||||
/// This field specifies the object number in the referenced module that
|
||||
/// is being verified.
|
||||
/// </remarks>
|
||||
public ushort ObjectNumberInModule;
|
||||
public ushort ObjectNumberInModule { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Object load base address.
|
||||
@@ -71,7 +71,7 @@ namespace SabreTools.Models.LinearExecutable
|
||||
/// This is the address that the object was loaded at when the fixups were
|
||||
/// performed.
|
||||
/// </remarks>
|
||||
public ushort ObjectLoadBaseAddress;
|
||||
public ushort ObjectLoadBaseAddress { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Object virtual address size.
|
||||
@@ -80,6 +80,6 @@ namespace SabreTools.Models.LinearExecutable
|
||||
/// This field specifies the total amount of virtual memory required for
|
||||
/// this object.
|
||||
/// </remarks>
|
||||
public ushort ObjectVirtualAddressSize;
|
||||
public ushort ObjectVirtualAddressSize { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -26,18 +26,18 @@ namespace SabreTools.Models.MSDOS
|
||||
/// <summary>
|
||||
/// Number of bytes in the last page.
|
||||
/// </summary>
|
||||
public ushort LastPageBytes;
|
||||
public ushort LastPageBytes { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Number of whole/partial pages.
|
||||
/// </summary>
|
||||
/// <remarks>A page (or block) is 512 bytes long.</remarks>
|
||||
public ushort Pages;
|
||||
public ushort Pages { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Number of entries in the relocation table.
|
||||
/// </summary>
|
||||
public ushort RelocationItems;
|
||||
public ushort RelocationItems { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The number of paragraphs taken up by the header. It can be any value, as the loader
|
||||
@@ -46,57 +46,57 @@ namespace SabreTools.Models.MSDOS
|
||||
/// own header metadata, or put the relocation table there, or use it for any other purpose. [08]
|
||||
/// </summary>
|
||||
/// <remarks>A paragraph is 16 bytes in size</remarks>
|
||||
public ushort HeaderParagraphSize;
|
||||
public ushort HeaderParagraphSize { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The number of paragraphs required by the program, excluding the PSP and program image.
|
||||
/// If no free block is big enough, the loading stops.
|
||||
/// </summary>
|
||||
/// <remarks>A paragraph is 16 bytes in size</remarks>
|
||||
public ushort MinimumExtraParagraphs;
|
||||
public ushort MinimumExtraParagraphs { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The number of paragraphs requested by the program.
|
||||
/// If no free block is big enough, the biggest one possible is allocated.
|
||||
/// </summary>
|
||||
/// <remarks>A paragraph is 16 bytes in size</remarks>
|
||||
public ushort MaximumExtraParagraphs;
|
||||
public ushort MaximumExtraParagraphs { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Relocatable segment address for SS.
|
||||
/// </summary>
|
||||
public ushort InitialSSValue;
|
||||
public ushort InitialSSValue { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Initial value for SP.
|
||||
/// </summary>
|
||||
public ushort InitialSPValue;
|
||||
public ushort InitialSPValue { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// When added to the sum of all other words in the file, the result should be zero.
|
||||
/// </summary>
|
||||
public ushort Checksum;
|
||||
public ushort Checksum { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Initial value for IP. [14]
|
||||
/// </summary>
|
||||
public ushort InitialIPValue;
|
||||
public ushort InitialIPValue { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Relocatable segment address for CS.
|
||||
/// </summary>
|
||||
public ushort InitialCSValue;
|
||||
public ushort InitialCSValue { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The (absolute) offset to the relocation table.
|
||||
/// </summary>
|
||||
public ushort RelocationTableAddr;
|
||||
public ushort RelocationTableAddr { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Value used for overlay management.
|
||||
/// If zero, this is the main executable.
|
||||
/// </summary>
|
||||
public ushort OverlayNumber;
|
||||
public ushort OverlayNumber { get; set; }
|
||||
|
||||
#endregion
|
||||
|
||||
@@ -115,12 +115,12 @@ namespace SabreTools.Models.MSDOS
|
||||
/// <summary>
|
||||
/// Defined by name but no other information is given; typically zeroes
|
||||
/// </summary>
|
||||
public ushort OEMIdentifier;
|
||||
public ushort OEMIdentifier { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Defined by name but no other information is given; typically zeroes
|
||||
/// </summary>
|
||||
public ushort OEMInformation;
|
||||
public ushort OEMInformation { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Reserved words
|
||||
@@ -135,7 +135,7 @@ namespace SabreTools.Models.MSDOS
|
||||
/// <summary>
|
||||
/// Starting address of the PE header
|
||||
/// </summary>
|
||||
public uint NewExeHeaderAddr;
|
||||
public uint NewExeHeaderAddr { get; set; }
|
||||
|
||||
#endregion
|
||||
}
|
||||
|
||||
@@ -12,11 +12,11 @@ namespace SabreTools.Models.MSDOS
|
||||
/// <summary>
|
||||
/// Offset of the relocation within provided segment.
|
||||
/// </summary>
|
||||
public ushort Offset;
|
||||
public ushort Offset { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Segment of the relocation, relative to the load segment address.
|
||||
/// </summary>
|
||||
public ushort Segment;
|
||||
public ushort Segment { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,13 +16,13 @@ namespace SabreTools.Models.MicrosoftCabinet
|
||||
/// Checksum of this CFDATA structure, from the <see cref="CompressedSize"/> through the
|
||||
/// <see cref="CompressedData"/> fields. It can be set to 0 (zero) if the checksum is not supplied.
|
||||
/// </summary>
|
||||
public uint Checksum;
|
||||
public uint Checksum { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Number of bytes of compressed data in this CFDATA structure record. When the
|
||||
/// <see cref="UncompressedSize"/> field is zero, this field indicates only the number of bytes that fit into this cabinet file.
|
||||
/// </summary>
|
||||
public ushort CompressedSize;
|
||||
public ushort CompressedSize { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The uncompressed size of the data in this CFDATA structure entry in bytes. When this
|
||||
@@ -30,7 +30,7 @@ namespace SabreTools.Models.MicrosoftCabinet
|
||||
/// the <see cref="UncompressedSize"/> field in the first CFDATA structure entry in the next cabinet file will report the total
|
||||
/// uncompressed size of the data from both CFDATA structure blocks.
|
||||
/// </summary>
|
||||
public ushort UncompressedSize;
|
||||
public ushort UncompressedSize { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// If the <see cref="HeaderFlags.RESERVE_PRESENT"/> flag is set
|
||||
@@ -38,9 +38,9 @@ namespace SabreTools.Models.MicrosoftCabinet
|
||||
/// This field is defined by the application, and it is used for application-defined purposes.
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public byte[] ReservedData;
|
||||
public byte[] ReservedData { get; set; }
|
||||
#else
|
||||
public byte[]? ReservedData;
|
||||
public byte[]? ReservedData { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
@@ -52,9 +52,9 @@ namespace SabreTools.Models.MicrosoftCabinet
|
||||
/// this CFDATA structure entry crosses a cabinet file boundary.
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public byte[] CompressedData;
|
||||
public byte[] CompressedData { get; set; }
|
||||
#else
|
||||
public byte[]? CompressedData;
|
||||
public byte[]? CompressedData { get; set; }
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,38 +18,38 @@ namespace SabreTools.Models.MicrosoftCabinet
|
||||
/// <summary>
|
||||
/// Specifies the uncompressed size of this file, in bytes.
|
||||
/// </summary>
|
||||
public uint FileSize;
|
||||
public uint FileSize { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Specifies the uncompressed offset, in bytes, of the start of this file's data. For the
|
||||
/// first file in each folder, this value will usually be zero. Subsequent files in the folder will have offsets
|
||||
/// that are typically the running sum of the cbFile field values.
|
||||
/// </summary>
|
||||
public uint FolderStartOffset;
|
||||
public uint FolderStartOffset { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Index of the folder that contains this file's data.
|
||||
/// </summary>
|
||||
public FolderIndex FolderIndex;
|
||||
public FolderIndex FolderIndex { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Date of this file, in the format ((year–1980) << 9)+(month << 5)+(day), where
|
||||
/// month={1..12} and day = { 1..31 }. This "date" is typically considered the "last modified" date in local
|
||||
/// time, but the actual definition is application-defined.
|
||||
/// </summary>
|
||||
public ushort Date;
|
||||
public ushort Date { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Time of this file, in the format (hour << 11)+(minute << 5)+(seconds/2), where
|
||||
/// hour={0..23}. This "time" is typically considered the "last modified" time in local time, but the
|
||||
/// actual definition is application-defined.
|
||||
/// </summary>
|
||||
public ushort Time;
|
||||
public ushort Time { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Attributes of this file; can be used in any combination.
|
||||
/// </summary>
|
||||
public FileAttributes Attributes;
|
||||
public FileAttributes Attributes { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The null-terminated name of this file. Note that this string can include path
|
||||
@@ -64,9 +64,9 @@ namespace SabreTools.Models.MicrosoftCabinet
|
||||
/// interpreted according to the current location.
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public string Name;
|
||||
public string Name { get; set; }
|
||||
#else
|
||||
public string? Name;
|
||||
public string? Name { get; set; }
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user