mirror of
https://github.com/SabreTools/SabreTools.Models.git
synced 2026-02-07 21:31:10 +00:00
Compare commits
124 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5282db965f | ||
|
|
33217a7efe | ||
|
|
c8583589d6 | ||
|
|
6ed2b406d7 | ||
|
|
4b08e0f5dd | ||
|
|
e8259fed12 | ||
|
|
d06df28f72 | ||
|
|
f73ff87922 | ||
|
|
dd6b79a21b | ||
|
|
d3daa2c4aa | ||
|
|
1620d00edf | ||
|
|
5565fa2fc3 | ||
|
|
e088e203ea | ||
|
|
acc8d95930 | ||
|
|
1a76c59827 | ||
|
|
8725ec0337 | ||
|
|
8991cc460d | ||
|
|
98ce8b65ec | ||
|
|
ca58343c30 | ||
|
|
2f637e0012 | ||
|
|
80172942fd | ||
|
|
aa0960b42f | ||
|
|
2554f64277 | ||
|
|
4c5c960915 | ||
|
|
1cb49163dd | ||
|
|
d144dd47a1 | ||
|
|
c4247c7ccb | ||
|
|
1e77437167 | ||
|
|
3d79e07d76 | ||
|
|
9d50d577ab | ||
|
|
494ca175fb | ||
|
|
73b3d4a7a8 | ||
|
|
bd40158423 | ||
|
|
149a45d871 | ||
|
|
e18d8d7543 | ||
|
|
38f0d4aef5 | ||
|
|
3959993255 | ||
|
|
00df5bdd6e | ||
|
|
00c087d8e0 | ||
|
|
6bc948784a | ||
|
|
c4f14854c2 | ||
|
|
adaac68898 | ||
|
|
a9bc4a2bfe | ||
|
|
262b91de65 | ||
|
|
62bd6a4bde | ||
|
|
7f14f0c5b0 | ||
|
|
33d63fddae | ||
|
|
209be57bf4 | ||
|
|
a1581e9d9b | ||
|
|
521664d5a8 | ||
|
|
73a8d91a83 | ||
|
|
438e87f833 | ||
|
|
2cdedbb456 | ||
|
|
b57a545598 | ||
|
|
8dc6eb2eee | ||
|
|
b58436d71a | ||
|
|
925c20021f | ||
|
|
9bebf95599 | ||
|
|
089e13ca03 | ||
|
|
de07b3b0dd | ||
|
|
22cb5360e6 | ||
|
|
a422ec7e6d | ||
|
|
f60afd6368 | ||
|
|
b8f67a8ab0 | ||
|
|
d844a8b582 | ||
|
|
8583baa862 | ||
|
|
8f3be17850 | ||
|
|
5856967794 | ||
|
|
8f78c73c6f | ||
|
|
af4ff3d383 | ||
|
|
3e638a5c57 | ||
|
|
638d0226c1 | ||
|
|
07c6d5b43a | ||
|
|
108e63a099 | ||
|
|
c636d3252b | ||
|
|
b19dbf2254 | ||
|
|
111b84170c | ||
|
|
2d7df0d4fb | ||
|
|
aba02663e5 | ||
|
|
594fec923a | ||
|
|
b5cf4e870d | ||
|
|
e6976796c2 | ||
|
|
295d8c7612 | ||
|
|
4dd184583c | ||
|
|
081c9c9245 | ||
|
|
b974380ccf | ||
|
|
41ed2cbc9a | ||
|
|
2cfcb49e35 | ||
|
|
b3f3f12b3e | ||
|
|
b41700ff92 | ||
|
|
e8a357546b | ||
|
|
68f0201c11 | ||
|
|
25b6493249 | ||
|
|
a551363c0b | ||
|
|
2fd92aea8f | ||
|
|
a61b3d0ed9 | ||
|
|
a40a6871df | ||
|
|
5792ec64c0 | ||
|
|
3b13c7cc96 | ||
|
|
894d7b62e2 | ||
|
|
38e37b1a63 | ||
|
|
1f340bd244 | ||
|
|
e582ce8726 | ||
|
|
dad71add36 | ||
|
|
cb2a28016e | ||
|
|
46a814ac73 | ||
|
|
8fabe9c02d | ||
|
|
21e22a1476 | ||
|
|
016057a837 | ||
|
|
69ca889ac7 | ||
|
|
cd67a7282b | ||
|
|
948edbad58 | ||
|
|
d445f02ba6 | ||
|
|
835fce7876 | ||
|
|
97513840e0 | ||
|
|
6112dcb391 | ||
|
|
c000e581c8 | ||
|
|
465cef4224 | ||
|
|
87cadbfd2b | ||
|
|
648ee2eaa5 | ||
|
|
daa814728d | ||
|
|
68aac36623 | ||
|
|
0c95cfcde4 | ||
|
|
6d6361c153 |
43
.github/workflows/build_nupkg.yml
vendored
Normal file
43
.github/workflows/build_nupkg.yml
vendored
Normal file
@@ -0,0 +1,43 @@
|
||||
name: Nuget Pack
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ "main" ]
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: recursive
|
||||
|
||||
- name: Setup .NET
|
||||
uses: actions/setup-dotnet@v4
|
||||
with:
|
||||
dotnet-version: 9.0.x
|
||||
|
||||
- name: Restore dependencies
|
||||
run: dotnet restore
|
||||
|
||||
- name: Pack
|
||||
run: dotnet pack
|
||||
|
||||
- name: Upload build
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: 'Nuget Package'
|
||||
path: 'SabreTools.Models/bin/Release/*.nupkg'
|
||||
|
||||
- name: Upload to rolling
|
||||
uses: ncipollo/release-action@v1.14.0
|
||||
with:
|
||||
allowUpdates: True
|
||||
artifacts: 'SabreTools.Models/bin/Release/*.nupkg'
|
||||
body: 'Last built commit: ${{ github.sha }}'
|
||||
name: 'Rolling Release'
|
||||
prerelease: True
|
||||
replacesArtifacts: True
|
||||
tag: "rolling"
|
||||
updateOnlyUnreleased: True
|
||||
17
.github/workflows/check_pr.yml
vendored
Normal file
17
.github/workflows/check_pr.yml
vendored
Normal file
@@ -0,0 +1,17 @@
|
||||
name: Build PR
|
||||
|
||||
on: [pull_request]
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Setup .NET
|
||||
uses: actions/setup-dotnet@v4
|
||||
with:
|
||||
dotnet-version: 9.0.x
|
||||
|
||||
- name: Build
|
||||
run: dotnet build
|
||||
@@ -1,36 +0,0 @@
|
||||
using System.Xml;
|
||||
using System.Xml.Serialization;
|
||||
|
||||
namespace SabreTools.Models.ArchiveDotOrg
|
||||
{
|
||||
[XmlRoot("files")]
|
||||
public class Files
|
||||
{
|
||||
[XmlElement("file")]
|
||||
#if NET48
|
||||
public File[] File { get; set; }
|
||||
#else
|
||||
public File?[]? File { get; set; }
|
||||
#endif
|
||||
|
||||
#region DO NOT USE IN PRODUCTION
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyAttribute]
|
||||
#if NET48
|
||||
public XmlAttribute[] ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
#else
|
||||
public XmlAttribute[]? ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyElement]
|
||||
#if NET48
|
||||
public object[] ADDITIONAL_ELEMENTS { get; set; }
|
||||
#else
|
||||
public object[]? ADDITIONAL_ELEMENTS { get; set; }
|
||||
#endif
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -1,150 +0,0 @@
|
||||
namespace SabreTools.Models.AttractMode
|
||||
{
|
||||
public class Row
|
||||
{
|
||||
/// <remarks>Also called Romname</remarks>
|
||||
[Required]
|
||||
#if NET48
|
||||
public string Name { get; set; }
|
||||
#else
|
||||
public string? Name { get; set; }
|
||||
#endif
|
||||
|
||||
#if NET48
|
||||
public string Title { get; set; }
|
||||
#else
|
||||
public string? Title { get; set; }
|
||||
#endif
|
||||
|
||||
#if NET48
|
||||
public string Emulator { get; set; }
|
||||
#else
|
||||
public string? Emulator { get; set; }
|
||||
#endif
|
||||
|
||||
#if NET48
|
||||
public string CloneOf { get; set; }
|
||||
#else
|
||||
public string? CloneOf { get; set; }
|
||||
#endif
|
||||
|
||||
#if NET48
|
||||
public string Year { get; set; }
|
||||
#else
|
||||
public string? Year { get; set; }
|
||||
#endif
|
||||
|
||||
#if NET48
|
||||
public string Manufacturer { get; set; }
|
||||
#else
|
||||
public string? Manufacturer { get; set; }
|
||||
#endif
|
||||
|
||||
#if NET48
|
||||
public string Category { get; set; }
|
||||
#else
|
||||
public string? Category { get; set; }
|
||||
#endif
|
||||
|
||||
#if NET48
|
||||
public string Players { get; set; }
|
||||
#else
|
||||
public string? Players { get; set; }
|
||||
#endif
|
||||
|
||||
#if NET48
|
||||
public string Rotation { get; set; }
|
||||
#else
|
||||
public string? Rotation { get; set; }
|
||||
#endif
|
||||
|
||||
#if NET48
|
||||
public string Control { get; set; }
|
||||
#else
|
||||
public string? Control { get; set; }
|
||||
#endif
|
||||
|
||||
#if NET48
|
||||
public string Status { get; set; }
|
||||
#else
|
||||
public string? Status { get; set; }
|
||||
#endif
|
||||
|
||||
#if NET48
|
||||
public string DisplayCount { get; set; }
|
||||
#else
|
||||
public string? DisplayCount { get; set; }
|
||||
#endif
|
||||
|
||||
#if NET48
|
||||
public string DisplayType { get; set; }
|
||||
#else
|
||||
public string? DisplayType { get; set; }
|
||||
#endif
|
||||
|
||||
#if NET48
|
||||
public string AltRomname { get; set; }
|
||||
#else
|
||||
public string? AltRomname { get; set; }
|
||||
#endif
|
||||
|
||||
#if NET48
|
||||
public string AltTitle { get; set; }
|
||||
#else
|
||||
public string? AltTitle { get; set; }
|
||||
#endif
|
||||
|
||||
#if NET48
|
||||
public string Extra { get; set; }
|
||||
#else
|
||||
public string? Extra { get; set; }
|
||||
#endif
|
||||
|
||||
#if NET48
|
||||
public string Buttons { get; set; }
|
||||
#else
|
||||
public string? Buttons { get; set; }
|
||||
#endif
|
||||
|
||||
#if NET48
|
||||
public string Favorite { get; set; }
|
||||
#else
|
||||
public string? Favorite { get; set; }
|
||||
#endif
|
||||
|
||||
#if NET48
|
||||
public string Tags { get; set; }
|
||||
#else
|
||||
public string? Tags { get; set; }
|
||||
#endif
|
||||
|
||||
#if NET48
|
||||
public string PlayedCount { get; set; }
|
||||
#else
|
||||
public string? PlayedCount { get; set; }
|
||||
#endif
|
||||
|
||||
#if NET48
|
||||
public string PlayedTime { get; set; }
|
||||
#else
|
||||
public string? PlayedTime { get; set; }
|
||||
#endif
|
||||
|
||||
#if NET48
|
||||
public string FileIsAvailable { get; set; }
|
||||
#else
|
||||
public string? FileIsAvailable { get; set; }
|
||||
#endif
|
||||
|
||||
#region DO NOT USE IN PRODUCTION
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
#if NET48
|
||||
public string[] ADDITIONAL_ELEMENTS { get; set; }
|
||||
#else
|
||||
public string[]? ADDITIONAL_ELEMENTS { get; set; }
|
||||
#endif
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
42
CHD/Enums.cs
42
CHD/Enums.cs
@@ -1,42 +0,0 @@
|
||||
using System;
|
||||
|
||||
namespace SabreTools.Models.CHD
|
||||
{
|
||||
/// <see href="https://github.com/mamedev/mame/blob/master/src/lib/util/chd.h"/>
|
||||
public enum CompressionType : uint
|
||||
{
|
||||
#region V1
|
||||
|
||||
CHDCOMPRESSION_NONE = 0,
|
||||
CHDCOMPRESSION_ZLIB = 1,
|
||||
|
||||
#endregion
|
||||
|
||||
#region V3
|
||||
|
||||
CHDCOMPRESSION_ZLIB_PLUS = 2,
|
||||
|
||||
#endregion
|
||||
|
||||
#region V4
|
||||
|
||||
CHDCOMPRESSION_AV = 3,
|
||||
|
||||
#endregion
|
||||
}
|
||||
|
||||
/// <see href="https://github.com/mamedev/mame/blob/master/src/lib/util/chd.h"/>
|
||||
[Flags]
|
||||
public enum Flags : uint
|
||||
{
|
||||
/// <summary>
|
||||
/// Set if this drive has a parent
|
||||
/// </summary>
|
||||
DriveHasParent = 0x00000001,
|
||||
|
||||
/// <summary>
|
||||
/// Set if this drive allows writes
|
||||
/// </summary>
|
||||
DriveAllowsWrites = 0x00000002,
|
||||
}
|
||||
}
|
||||
@@ -1,29 +0,0 @@
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace SabreTools.Models.Charts
|
||||
{
|
||||
/// <see href="https://github.com/TheNathannator/GuitarGame_ChartFormats/blob/main/doc/FileFormats/Other/Frets%20on%20Fire%20X/Careers.md"/>
|
||||
/// <remarks>[titles]</remarks>
|
||||
internal class TitlesIni
|
||||
{
|
||||
/// <summary>
|
||||
/// A space-separated list of .ini sections to include in the career.
|
||||
/// </summary>
|
||||
/// <remarks>sections</remarks>
|
||||
#if NET48
|
||||
public string[] SectionList { get; set; }
|
||||
#else
|
||||
public string[]? SectionList { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// `name` - Display name of the tier.
|
||||
/// `unlock_id` - Name used for associating a song with this tier, and for checking unlock requirements.
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public Dictionary<string, (string Name, string UnlockId)> Sections { get; set; }
|
||||
#else
|
||||
public Dictionary<string, (string? Name, string? UnlockId)>? Sections { get; set; }
|
||||
#endif
|
||||
}
|
||||
}
|
||||
@@ -1,25 +0,0 @@
|
||||
namespace SabreTools.Models.ClrMamePro
|
||||
{
|
||||
/// <remarks>archive</remarks>
|
||||
public class Archive
|
||||
{
|
||||
/// <remarks>name</remarks>
|
||||
[Required]
|
||||
#if NET48
|
||||
public string Name { get; set; }
|
||||
#else
|
||||
public string? Name { get; set; }
|
||||
#endif
|
||||
|
||||
#region DO NOT USE IN PRODUCTION
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
#if NET48
|
||||
public string[] ADDITIONAL_ELEMENTS { get; set; }
|
||||
#else
|
||||
public string[]? ADDITIONAL_ELEMENTS { get; set; }
|
||||
#endif
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -1,40 +0,0 @@
|
||||
namespace SabreTools.Models.ClrMamePro
|
||||
{
|
||||
/// <remarks>biosset</remarks>
|
||||
public class BiosSet
|
||||
{
|
||||
/// <remarks>name</remarks>
|
||||
[Required]
|
||||
#if NET48
|
||||
public string Name { get; set; }
|
||||
#else
|
||||
public string? Name { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>description</remarks>
|
||||
[Required]
|
||||
#if NET48
|
||||
public string Description { get; set; }
|
||||
#else
|
||||
public string? Description { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>default</remarks>
|
||||
#if NET48
|
||||
public string Default { get; set; }
|
||||
#else
|
||||
public string? Default { get; set; }
|
||||
#endif
|
||||
|
||||
#region DO NOT USE IN PRODUCTION
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
#if NET48
|
||||
public string[] ADDITIONAL_ELEMENTS { get; set; }
|
||||
#else
|
||||
public string[]? ADDITIONAL_ELEMENTS { get; set; }
|
||||
#endif
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -1,47 +0,0 @@
|
||||
namespace SabreTools.Models.ClrMamePro
|
||||
{
|
||||
/// <remarks>chip</remarks>
|
||||
public class Chip
|
||||
{
|
||||
/// <remarks>type, (cpu|audio)</remarks>
|
||||
[Required]
|
||||
#if NET48
|
||||
public string Type { get; set; }
|
||||
#else
|
||||
public string? Type { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>name</remarks>
|
||||
[Required]
|
||||
#if NET48
|
||||
public string Name { get; set; }
|
||||
#else
|
||||
public string? Name { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>flags</remarks>
|
||||
#if NET48
|
||||
public string Flags { get; set; }
|
||||
#else
|
||||
public string? Flags { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>clock, Numeric?</remarks>
|
||||
#if NET48
|
||||
public string Clock { get; set; }
|
||||
#else
|
||||
public string? Clock { get; set; }
|
||||
#endif
|
||||
|
||||
#region DO NOT USE IN PRODUCTION
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
#if NET48
|
||||
public object[] ADDITIONAL_ELEMENTS { get; set; }
|
||||
#else
|
||||
public object[]? ADDITIONAL_ELEMENTS { get; set; }
|
||||
#endif
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -1,39 +0,0 @@
|
||||
namespace SabreTools.Models.ClrMamePro
|
||||
{
|
||||
/// <remarks>dipswitch</remarks>
|
||||
public class DipSwitch
|
||||
{
|
||||
/// <remarks>name</remarks>
|
||||
[Required]
|
||||
#if NET48
|
||||
public string Name { get; set; }
|
||||
#else
|
||||
public string? Name { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>entry</remarks>
|
||||
#if NET48
|
||||
public string[] Entry { get; set; }
|
||||
#else
|
||||
public string[]? Entry { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>default, (yes|no) "no"</remarks>
|
||||
#if NET48
|
||||
public string Default { get; set; }
|
||||
#else
|
||||
public string? Default { get; set; }
|
||||
#endif
|
||||
|
||||
#region DO NOT USE IN PRODUCTION
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
#if NET48
|
||||
public object[] ADDITIONAL_ELEMENTS { get; set; }
|
||||
#else
|
||||
public object[]? ADDITIONAL_ELEMENTS { get; set; }
|
||||
#endif
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -1,60 +0,0 @@
|
||||
namespace SabreTools.Models.ClrMamePro
|
||||
{
|
||||
/// <remarks>disk</remarks>
|
||||
public class Disk
|
||||
{
|
||||
/// <remarks>name</remarks>
|
||||
[Required]
|
||||
#if NET48
|
||||
public string Name { get; set; }
|
||||
#else
|
||||
public string? Name { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>md5</remarks>
|
||||
#if NET48
|
||||
public string MD5 { get; set; }
|
||||
#else
|
||||
public string? MD5 { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>sha1</remarks>
|
||||
#if NET48
|
||||
public string SHA1 { get; set; }
|
||||
#else
|
||||
public string? SHA1 { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>merge</remarks>
|
||||
#if NET48
|
||||
public string Merge { get; set; }
|
||||
#else
|
||||
public string? Merge { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>status</remarks>
|
||||
#if NET48
|
||||
public string Status { get; set; }
|
||||
#else
|
||||
public string? Status { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>flags</remarks>
|
||||
#if NET48
|
||||
public string Flags { get; set; }
|
||||
#else
|
||||
public string? Flags { get; set; }
|
||||
#endif
|
||||
|
||||
#region DO NOT USE IN PRODUCTION
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
#if NET48
|
||||
public string[] ADDITIONAL_ELEMENTS { get; set; }
|
||||
#else
|
||||
public string[]? ADDITIONAL_ELEMENTS { get; set; }
|
||||
#endif
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -1,53 +0,0 @@
|
||||
namespace SabreTools.Models.ClrMamePro
|
||||
{
|
||||
/// <remarks>media</remarks>
|
||||
public class Media
|
||||
{
|
||||
/// <remarks>name</remarks>
|
||||
[Required]
|
||||
#if NET48
|
||||
public string Name { get; set; }
|
||||
#else
|
||||
public string? Name { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>md5</remarks>
|
||||
#if NET48
|
||||
public string MD5 { get; set; }
|
||||
#else
|
||||
public string? MD5 { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>sha1</remarks>
|
||||
#if NET48
|
||||
public string SHA1 { get; set; }
|
||||
#else
|
||||
public string? SHA1 { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>sha256</remarks>
|
||||
#if NET48
|
||||
public string SHA256 { get; set; }
|
||||
#else
|
||||
public string? SHA256 { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>spamsum</remarks>
|
||||
#if NET48
|
||||
public string SpamSum { get; set; }
|
||||
#else
|
||||
public string? SpamSum { get; set; }
|
||||
#endif
|
||||
|
||||
#region DO NOT USE IN PRODUCTION
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
#if NET48
|
||||
public string[] ADDITIONAL_ELEMENTS { get; set; }
|
||||
#else
|
||||
public string[]? ADDITIONAL_ELEMENTS { get; set; }
|
||||
#endif
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -1,30 +0,0 @@
|
||||
namespace SabreTools.Models.ClrMamePro
|
||||
{
|
||||
public class MetadataFile
|
||||
{
|
||||
/// <remarks>clrmamepro</remarks>
|
||||
#if NET48
|
||||
public ClrMamePro ClrMamePro { get; set; }
|
||||
#else
|
||||
public ClrMamePro? ClrMamePro { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>game, machine, resource, set</remarks>
|
||||
#if NET48
|
||||
public GameBase[] Game { get; set; }
|
||||
#else
|
||||
public GameBase?[]? Game { get; set; }
|
||||
#endif
|
||||
|
||||
#region DO NOT USE IN PRODUCTION
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
#if NET48
|
||||
public string[] ADDITIONAL_ELEMENTS { get; set; }
|
||||
#else
|
||||
public string[]? ADDITIONAL_ELEMENTS { get; set; }
|
||||
#endif
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -1,54 +0,0 @@
|
||||
namespace SabreTools.Models.ClrMamePro
|
||||
{
|
||||
/// <remarks>release</remarks>
|
||||
public class Release
|
||||
{
|
||||
/// <remarks>name</remarks>
|
||||
[Required]
|
||||
#if NET48
|
||||
public string Name { get; set; }
|
||||
#else
|
||||
public string? Name { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>region</remarks>
|
||||
[Required]
|
||||
#if NET48
|
||||
public string Region { get; set; }
|
||||
#else
|
||||
public string? Region { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>language</remarks>
|
||||
#if NET48
|
||||
public string Language { get; set; }
|
||||
#else
|
||||
public string? Language { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>date</remarks>
|
||||
#if NET48
|
||||
public string Date { get; set; }
|
||||
#else
|
||||
public string? Date { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>default</remarks>
|
||||
#if NET48
|
||||
public string Default { get; set; }
|
||||
#else
|
||||
public string? Default { get; set; }
|
||||
#endif
|
||||
|
||||
#region DO NOT USE IN PRODUCTION
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
#if NET48
|
||||
public string[] ADDITIONAL_ELEMENTS { get; set; }
|
||||
#else
|
||||
public string[]? ADDITIONAL_ELEMENTS { get; set; }
|
||||
#endif
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -1,25 +0,0 @@
|
||||
namespace SabreTools.Models.ClrMamePro
|
||||
{
|
||||
/// <remarks>sample</remarks>
|
||||
public class Sample
|
||||
{
|
||||
/// <remarks>name</remarks>
|
||||
[Required]
|
||||
#if NET48
|
||||
public string Name { get; set; }
|
||||
#else
|
||||
public string? Name { get; set; }
|
||||
#endif
|
||||
|
||||
#region DO NOT USE IN PRODUCTION
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
#if NET48
|
||||
public string[] ADDITIONAL_ELEMENTS { get; set; }
|
||||
#else
|
||||
public string[]? ADDITIONAL_ELEMENTS { get; set; }
|
||||
#endif
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -1,25 +0,0 @@
|
||||
namespace SabreTools.Models.ClrMamePro
|
||||
{
|
||||
/// <remarks>sound</remarks>
|
||||
public class Sound
|
||||
{
|
||||
/// <remarks>channels, Numeric?</remarks>
|
||||
[Required]
|
||||
#if NET48
|
||||
public string Channels { get; set; }
|
||||
#else
|
||||
public string? Channels { get; set; }
|
||||
#endif
|
||||
|
||||
#region DO NOT USE IN PRODUCTION
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
#if NET48
|
||||
public object[] ADDITIONAL_ELEMENTS { get; set; }
|
||||
#else
|
||||
public object[]? ADDITIONAL_ELEMENTS { get; set; }
|
||||
#endif
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -1,21 +0,0 @@
|
||||
namespace SabreTools.Models.Compression.LZ
|
||||
{
|
||||
/// <summary>
|
||||
/// Format of first 14 byte of LZ compressed file
|
||||
/// </summary>
|
||||
/// <see href="https://github.com/wine-mirror/wine/blob/master/dlls/kernel32/lzexpand.c"/>
|
||||
public sealed class FileHeaader
|
||||
{
|
||||
#if NET48
|
||||
public string Magic { get; set; }
|
||||
#else
|
||||
public string? Magic { get; set; }
|
||||
#endif
|
||||
|
||||
public byte CompressionType { get; set; }
|
||||
|
||||
public char LastChar { get; set; }
|
||||
|
||||
public uint RealLength { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -1,46 +0,0 @@
|
||||
namespace SabreTools.Models.Compression.LZX
|
||||
{
|
||||
public static class Constants
|
||||
{
|
||||
/* some constants defined by the LZX specification */
|
||||
public const int LZX_MIN_MATCH = (2);
|
||||
public const int LZX_MAX_MATCH = (257);
|
||||
public const int LZX_NUM_CHARS = (256);
|
||||
|
||||
/// <summary>
|
||||
/// also blocktypes 4-7 invalid
|
||||
/// </summary>
|
||||
public const int LZX_BLOCKTYPE_INVALID = (0);
|
||||
public const int LZX_BLOCKTYPE_VERBATIM = (1);
|
||||
public const int LZX_BLOCKTYPE_ALIGNED = (2);
|
||||
public const int LZX_BLOCKTYPE_UNCOMPRESSED = (3);
|
||||
public const int LZX_PRETREE_NUM_ELEMENTS = (20);
|
||||
|
||||
/// <summary>
|
||||
/// aligned offset tree #elements
|
||||
/// </summary>
|
||||
public const int LZX_ALIGNED_NUM_ELEMENTS = (8);
|
||||
|
||||
/// <summary>
|
||||
/// this one missing from spec!
|
||||
/// </summary>
|
||||
public const int LZX_NUM_PRIMARY_LENGTHS = (7);
|
||||
|
||||
/// <summary>
|
||||
/// length tree #elements
|
||||
/// </summary>
|
||||
public const int LZX_NUM_SECONDARY_LENGTHS = (249);
|
||||
|
||||
/* LZX huffman defines: tweak tablebits as desired */
|
||||
public const int LZX_PRETREE_MAXSYMBOLS = (LZX_PRETREE_NUM_ELEMENTS);
|
||||
public const int LZX_PRETREE_TABLEBITS = (6);
|
||||
public const int LZX_MAINTREE_MAXSYMBOLS = (LZX_NUM_CHARS + 50 * 8);
|
||||
public const int LZX_MAINTREE_TABLEBITS = (12);
|
||||
public const int LZX_LENGTH_MAXSYMBOLS = (LZX_NUM_SECONDARY_LENGTHS + 1);
|
||||
public const int LZX_LENGTH_TABLEBITS = (12);
|
||||
public const int LZX_ALIGNED_MAXSYMBOLS = (LZX_ALIGNED_NUM_ELEMENTS);
|
||||
public const int LZX_ALIGNED_TABLEBITS = (7);
|
||||
|
||||
public const int LZX_LENTABLE_SAFETY = (64); /* we allow length table decoding overruns */
|
||||
}
|
||||
}
|
||||
@@ -1,102 +0,0 @@
|
||||
namespace SabreTools.Models.Compression.LZX
|
||||
{
|
||||
public class Header
|
||||
{
|
||||
/*
|
||||
2.2 Header
|
||||
|
||||
2.2.1 Chunk Size
|
||||
|
||||
The LZXD compressor emits chunks of compressed data. A chunk represents exactly 32 KB of
|
||||
uncompressed data until the last chunk in the stream, which can represent less than 32 KB. To
|
||||
ensure that an exact number of input bytes represent an exact number of output bytes for each
|
||||
chunk, after each 32 KB of uncompressed data is represented in the output compressed bitstream, the
|
||||
output bitstream is padded with up to 15 bits of zeros to realign the bitstream on a 16-bit boundary
|
||||
(even byte boundary) for the next 32 KB of data. This results in a compressed chunk of a byte-aligned
|
||||
size. The compressed chunk could be smaller than 32 KB or larger than 32 KB if the data is
|
||||
incompressible when the chunk is not the last one.
|
||||
|
||||
The LZXD engine encodes a compressed, chunk-size prefix field preceding each compressed chunk in
|
||||
the compressed byte stream. The compressed, chunk-size prefix field is a byte aligned, little-endian,
|
||||
16-bit field. The chunk prefix chain could be followed in the compressed stream without
|
||||
decompressing any data. The next chunk prefix is at a location computed by the absolute byte offset
|
||||
location of this chunk prefix plus 2 (for the size of the chunk-size prefix field) plus the current chunk
|
||||
size.
|
||||
|
||||
2.2.2 E8 Call Translation
|
||||
|
||||
E8 call translation is an optional feature that can be used when the data to compress contains x86
|
||||
instruction sequences. E8 translation operates as a preprocessing stage before compressing each
|
||||
chunk, and the compressed stream header contains a bit that indicates whether the decoder shall
|
||||
reverse the translation as a postprocessing step after decompressing each chunk.
|
||||
|
||||
The x86 instruction beginning with a byte value of 0xE8 is followed by a 32-bit, little-endian relative
|
||||
displacement to the call target. When E8 call translation is enabled, the following preprocessing steps
|
||||
are performed on the uncompressed input before compression (assuming little-endian byte ordering):
|
||||
|
||||
Let chunk_offset refer to the total number of uncompressed bytes preceding this chunk.
|
||||
|
||||
Let E8_file_size refer to the caller-specified value given to the compressor or decoded from the header
|
||||
of the compressed stream during decompression.
|
||||
|
||||
The following example shows how E8 translation is performed for each 32-KB chunk of uncompressed
|
||||
data (or less than 32 KB if last chunk to compress).
|
||||
|
||||
if (( chunk_offset < 0x40000000 ) && ( chunk_size > 10 ))
|
||||
for ( i = 0; i < (chunk_size – 10); i++ )
|
||||
if ( chunk_byte[ i ] == 0xE8 )
|
||||
long current_pointer = chunk_offset + i;
|
||||
long displacement = chunk_byte[ i+1 ] |
|
||||
chunk_byte[ i+2 ] << 8 |
|
||||
chunk_byte[ i+3 ] << 16 |
|
||||
chunk_byte[ i+4 ] << 24;
|
||||
long target = current_pointer + displacement;
|
||||
if (( target >= 0 ) && ( target < E8_file_size+current_pointer))
|
||||
if ( target >= E8_file_size )
|
||||
target = displacement – E8_file_size;
|
||||
endif
|
||||
chunk_byte[ i+1 ] = (byte)( target );
|
||||
chunk_byte[ i+2 ] = (byte)( target >> 8 );
|
||||
chunk_byte[ i+3 ] = (byte)( target >> 16 );
|
||||
chunk_byte[ i+4 ] = (byte)( target >> 24 );
|
||||
endif
|
||||
i += 4;
|
||||
endif
|
||||
endfor
|
||||
endif
|
||||
|
||||
After decompression, the E8 scanning algorithm is the same. The following example shows how E8
|
||||
translation reversal is performed.
|
||||
|
||||
long value = chunk_byte[ i+1 ] |
|
||||
chunk_byte[ i+2 ] << 8 |
|
||||
chunk_byte[ i+3 ] << 16 |
|
||||
chunk_byte[ i+4 ] << 24;
|
||||
if (( value >= -current_pointer ) && ( value < E8_file_size ))
|
||||
if ( value >= 0 )
|
||||
displacement = value – current_pointer;
|
||||
else
|
||||
displacement = value + E8_file_size;
|
||||
endif
|
||||
chunk_byte[ i+1 ] = (byte)( displacement );
|
||||
chunk_byte[ i+2 ] = (byte)( displacement >> 8 );
|
||||
chunk_byte[ i+3 ] = (byte)( displacement >> 16 );
|
||||
chunk_byte[ i+4 ] = (byte)( displacement >> 24 );
|
||||
endif
|
||||
|
||||
The first bit in the first chunk in the LZXD bitstream (following the 2-byte, chunk-size prefix described
|
||||
in section 2.2.1) indicates the presence or absence of two 16-bit fields immediately following the
|
||||
single bit. If the bit is set, E8 translation is enabled for all the following chunks in the stream using the
|
||||
32-bit value derived from the two 16-bit fields as the E8_file_size provided to the compressor when E8
|
||||
translation was enabled. Note that E8_file_size is completely independent of the length of the
|
||||
uncompressed data. E8 call translation is disabled after the 32,768th chunk (after 1 gigabyte (GB) of
|
||||
uncompressed data).
|
||||
|
||||
Field Comments Size
|
||||
----------------------------------------------------------------
|
||||
E8 translation 0-disabled, 1-enabled 1 bit
|
||||
Translation size high word Only present if enabled 0 or 16 bits
|
||||
Translation size low word Only present if enabled 0 or 16 bits
|
||||
*/
|
||||
}
|
||||
}
|
||||
@@ -1,45 +0,0 @@
|
||||
namespace SabreTools.Models.Compression.Quantum
|
||||
{
|
||||
public static class Constants
|
||||
{
|
||||
/// <summary>
|
||||
/// Mask for Quantum Compression Level
|
||||
/// </summary>
|
||||
public const ushort MASK_QUANTUM_LEVEL = 0x00F0;
|
||||
|
||||
/// <summary>
|
||||
/// Lowest Quantum Level (1)
|
||||
/// </summary>
|
||||
public const ushort QUANTUM_LEVEL_LO = 0x0010;
|
||||
|
||||
/// <summary>
|
||||
/// Highest Quantum Level (7)
|
||||
/// </summary>
|
||||
public const ushort QUANTUM_LEVEL_HI = 0x0070;
|
||||
|
||||
/// <summary>
|
||||
/// Amount to shift over to get int
|
||||
/// </summary>
|
||||
public const ushort SHIFT_QUANTUM_LEVEL = 4;
|
||||
|
||||
/// <summary>
|
||||
/// Mask for Quantum Compression Memory
|
||||
/// </summary>
|
||||
public const ushort MASK_QUANTUM_MEM = 0x1F00;
|
||||
|
||||
/// <summary>
|
||||
/// Lowest Quantum Memory (10)
|
||||
/// </summary>
|
||||
public const ushort QUANTUM_MEM_LO = 0x0A00;
|
||||
|
||||
/// <summary>
|
||||
/// Highest Quantum Memory (21)
|
||||
/// </summary>
|
||||
public const ushort QUANTUM_MEM_HI = 0x1500;
|
||||
|
||||
/// <summary>
|
||||
/// Amount to shift over to get int
|
||||
/// </summary>
|
||||
public const ushort SHIFT_QUANTUM_MEM = 8;
|
||||
}
|
||||
}
|
||||
@@ -1,23 +0,0 @@
|
||||
namespace SabreTools.Models.Compression.Quantum
|
||||
{
|
||||
/// <see href="https://github.com/wine-mirror/wine/blob/master/dlls/cabinet/cabinet.h"/>
|
||||
/// <see href="http://www.russotto.net/quantumcomp.html"/>
|
||||
public sealed class Model
|
||||
{
|
||||
public int TimeToReorder { get; set; }
|
||||
|
||||
public int Entries { get; set; }
|
||||
|
||||
#if NET48
|
||||
public ModelSymbol[] Symbols { get; set; }
|
||||
#else
|
||||
public ModelSymbol?[]? Symbols { get; set; }
|
||||
#endif
|
||||
|
||||
#if NET48
|
||||
public ushort[] LookupTable { get; set; } = new ushort[256];
|
||||
#else
|
||||
public ushort[]? LookupTable { get; set; } = new ushort[256];
|
||||
#endif
|
||||
}
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
namespace SabreTools.Models.Compression.Quantum
|
||||
{
|
||||
/// <see href="https://github.com/wine-mirror/wine/blob/master/dlls/cabinet/cabinet.h"/>
|
||||
/// <see href="http://www.russotto.net/quantumcomp.html"/>
|
||||
public sealed class ModelSymbol
|
||||
{
|
||||
public ushort Symbol { get; set; }
|
||||
|
||||
public ushort CumulativeFrequency { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -1,66 +0,0 @@
|
||||
namespace SabreTools.Models.DosCenter
|
||||
{
|
||||
/// <remarks>doscenter</remarks>
|
||||
public class DosCenter
|
||||
{
|
||||
/// <remarks>name</remarks>
|
||||
#if NET48
|
||||
public string Name { get; set; }
|
||||
#else
|
||||
public string? Name { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>description</remarks>
|
||||
#if NET48
|
||||
public string Description { get; set; }
|
||||
#else
|
||||
public string? Description { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>version</remarks>
|
||||
#if NET48
|
||||
public string Version { get; set; }
|
||||
#else
|
||||
public string? Version { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>date</remarks>
|
||||
#if NET48
|
||||
public string Date { get; set; }
|
||||
#else
|
||||
public string? Date { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>author</remarks>
|
||||
#if NET48
|
||||
public string Author { get; set; }
|
||||
#else
|
||||
public string? Author { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>homepage</remarks>
|
||||
#if NET48
|
||||
public string Homepage { get; set; }
|
||||
#else
|
||||
public string? Homepage { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>comment</remarks>
|
||||
#if NET48
|
||||
public string Comment { get; set; }
|
||||
#else
|
||||
public string? Comment { get; set; }
|
||||
#endif
|
||||
|
||||
#region DO NOT USE IN PRODUCTION
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
#if NET48
|
||||
public string[] ADDITIONAL_ELEMENTS { get; set; }
|
||||
#else
|
||||
public string[]? ADDITIONAL_ELEMENTS { get; set; }
|
||||
#endif
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -1,32 +0,0 @@
|
||||
namespace SabreTools.Models.DosCenter
|
||||
{
|
||||
/// <remarks>game</remarks>
|
||||
public class Game
|
||||
{
|
||||
/// <remarks>name</remarks>
|
||||
[Required]
|
||||
#if NET48
|
||||
public string Name { get; set; }
|
||||
#else
|
||||
public string? Name { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>file</remarks>
|
||||
#if NET48
|
||||
public File[] File { get; set; }
|
||||
#else
|
||||
public File[]? File { get; set; }
|
||||
#endif
|
||||
|
||||
#region DO NOT USE IN PRODUCTION
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
#if NET48
|
||||
public string[] ADDITIONAL_ELEMENTS { get; set; }
|
||||
#else
|
||||
public string[]? ADDITIONAL_ELEMENTS { get; set; }
|
||||
#endif
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -1,30 +0,0 @@
|
||||
namespace SabreTools.Models.DosCenter
|
||||
{
|
||||
public class MetadataFile
|
||||
{
|
||||
/// <remarks>doscenter</remarks>
|
||||
#if NET48
|
||||
public DosCenter DosCenter { get; set; }
|
||||
#else
|
||||
public DosCenter? DosCenter { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>game</remarks>
|
||||
#if NET48
|
||||
public Game[] Game { get; set; }
|
||||
#else
|
||||
public Game[]? Game { get; set; }
|
||||
#endif
|
||||
|
||||
#region DO NOT USE IN PRODUCTION
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
#if NET48
|
||||
public string[] ADDITIONAL_ELEMENTS { get; set; }
|
||||
#else
|
||||
public string[]? ADDITIONAL_ELEMENTS { get; set; }
|
||||
#endif
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -1,60 +0,0 @@
|
||||
namespace SabreTools.Models.EverdriveSMDB
|
||||
{
|
||||
/// <summary>
|
||||
/// SHA-256 \t Machine Name/Filename \t SHA-1 \t MD5 \t CRC32 \t Size (Optional)
|
||||
/// </summary>
|
||||
public class Row
|
||||
{
|
||||
[Required]
|
||||
#if NET48
|
||||
public string SHA256 { get; set; }
|
||||
#else
|
||||
public string? SHA256 { get; set; }
|
||||
#endif
|
||||
|
||||
[Required]
|
||||
#if NET48
|
||||
public string Name { get; set; }
|
||||
#else
|
||||
public string? Name { get; set; }
|
||||
#endif
|
||||
|
||||
[Required]
|
||||
#if NET48
|
||||
public string SHA1 { get; set; }
|
||||
#else
|
||||
public string? SHA1 { get; set; }
|
||||
#endif
|
||||
|
||||
[Required]
|
||||
#if NET48
|
||||
public string MD5 { get; set; }
|
||||
#else
|
||||
public string? MD5 { get; set; }
|
||||
#endif
|
||||
|
||||
[Required]
|
||||
#if NET48
|
||||
public string CRC32 { get; set; }
|
||||
#else
|
||||
public string? CRC32 { get; set; }
|
||||
#endif
|
||||
|
||||
#if NET48
|
||||
public string Size { get; set; }
|
||||
#else
|
||||
public string? Size { get; set; }
|
||||
#endif
|
||||
|
||||
#region DO NOT USE IN PRODUCTION
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
#if NET48
|
||||
public string[] ADDITIONAL_ELEMENTS { get; set; }
|
||||
#else
|
||||
public string[]? ADDITIONAL_ELEMENTS { get; set; }
|
||||
#endif
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -1,59 +0,0 @@
|
||||
namespace SabreTools.Models.Hashfile
|
||||
{
|
||||
/// <remarks>Hashfiles can only contain one type of hash at a time</remarks>
|
||||
public class Hashfile
|
||||
{
|
||||
#if NET48
|
||||
public SFV[] SFV { get; set; }
|
||||
#else
|
||||
public SFV[]? SFV { get; set; }
|
||||
#endif
|
||||
|
||||
#if NET48
|
||||
public MD5[] MD5 { get; set; }
|
||||
#else
|
||||
public MD5[]? MD5 { get; set; }
|
||||
#endif
|
||||
|
||||
#if NET48
|
||||
public SHA1[] SHA1 { get; set; }
|
||||
#else
|
||||
public SHA1[]? SHA1 { get; set; }
|
||||
#endif
|
||||
|
||||
#if NET48
|
||||
public SHA256[] SHA256 { get; set; }
|
||||
#else
|
||||
public SHA256[]? SHA256 { get; set; }
|
||||
#endif
|
||||
|
||||
#if NET48
|
||||
public SHA384[] SHA384 { get; set; }
|
||||
#else
|
||||
public SHA384[]? SHA384 { get; set; }
|
||||
#endif
|
||||
|
||||
#if NET48
|
||||
public SHA512[] SHA512 { get; set; }
|
||||
#else
|
||||
public SHA512[]? SHA512 { get; set; }
|
||||
#endif
|
||||
|
||||
#if NET48
|
||||
public SpamSum[] SpamSum { get; set; }
|
||||
#else
|
||||
public SpamSum[]? SpamSum { get; set; }
|
||||
#endif
|
||||
|
||||
#region DO NOT USE IN PRODUCTION
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
#if NET48
|
||||
public string[] ADDITIONAL_ELEMENTS { get; set; }
|
||||
#else
|
||||
public string[]? ADDITIONAL_ELEMENTS { get; set; }
|
||||
#endif
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -1,23 +0,0 @@
|
||||
using System;
|
||||
|
||||
namespace SabreTools.Models.InstallShieldCabinet
|
||||
{
|
||||
/// <see href="https://github.com/twogood/unshield/blob/main/lib/cabfile.h"/>
|
||||
[Flags]
|
||||
public enum FileFlags : ushort
|
||||
{
|
||||
FILE_SPLIT = 1,
|
||||
FILE_OBFUSCATED = 2,
|
||||
FILE_COMPRESSED = 4,
|
||||
FILE_INVALID = 8,
|
||||
}
|
||||
|
||||
/// <see href="https://github.com/twogood/unshield/blob/main/lib/cabfile.h"/>
|
||||
public enum LinkFlags : byte
|
||||
{
|
||||
LINK_NONE = 0,
|
||||
LINK_PREV = 1,
|
||||
LINK_NEXT = 2,
|
||||
LINK_BOTH = 3,
|
||||
}
|
||||
}
|
||||
@@ -1,162 +0,0 @@
|
||||
namespace SabreTools.Models.InstallShieldCabinet
|
||||
{
|
||||
/// <see href="https://github.com/twogood/unshield/blob/main/lib/libunshield.h"/>
|
||||
public sealed class FileGroup
|
||||
{
|
||||
/// <summary>
|
||||
/// Offset to the file group name
|
||||
/// </summary>
|
||||
public uint NameOffset { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// File group name
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public string Name { get; set; }
|
||||
#else
|
||||
public string? Name { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Size of the expanded data
|
||||
/// </summary>
|
||||
public uint ExpandedSize { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Reserved
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public byte[] Reserved0 { get; set; }
|
||||
#else
|
||||
public byte[]? Reserved0 { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Size of the compressed data
|
||||
/// </summary>
|
||||
public uint CompressedSize { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Reserved
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public byte[] Reserved1 { get; set; }
|
||||
#else
|
||||
public byte[]? Reserved1 { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Reserved
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public byte[] Reserved2 { get; set; }
|
||||
#else
|
||||
public byte[]? Reserved2 { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Attribute(?)
|
||||
/// </summary>
|
||||
public ushort Attribute1 { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Attribute(?)
|
||||
/// </summary>
|
||||
public ushort Attribute2 { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Index of the first file
|
||||
/// </summary>
|
||||
public uint FirstFile { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Index of the last file
|
||||
/// </summary>
|
||||
public uint LastFile { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Unknown offset(?)
|
||||
/// </summary>
|
||||
public uint UnknownOffset { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Var 4 offset(?)
|
||||
/// </summary>
|
||||
public uint Var4Offset { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Var 1 offset(?)
|
||||
/// </summary>
|
||||
public uint Var1Offset { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Offset to the HTTP location
|
||||
/// </summary>
|
||||
public uint HTTPLocationOffset { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Offset to the FTP location
|
||||
/// </summary>
|
||||
public uint FTPLocationOffset { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Misc offset(?)
|
||||
/// </summary>
|
||||
public uint MiscOffset { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Var 2 offset(?)
|
||||
/// </summary>
|
||||
public uint Var2Offset { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Offset to the target directory
|
||||
/// </summary>
|
||||
public uint TargetDirectoryOffset { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Reserved
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public byte[] Reserved3 { get; set; }
|
||||
#else
|
||||
public byte[]? Reserved3 { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Reserved
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public byte[] Reserved4 { get; set; }
|
||||
#else
|
||||
public byte[]? Reserved4 { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Reserved
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public byte[] Reserved5 { get; set; }
|
||||
#else
|
||||
public byte[]? Reserved5 { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Reserved
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public byte[] Reserved6 { get; set; }
|
||||
#else
|
||||
public byte[]? Reserved6 { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Reserved
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public byte[] Reserved7 { get; set; }
|
||||
#else
|
||||
public byte[]? Reserved7 { get; set; }
|
||||
#endif
|
||||
}
|
||||
}
|
||||
@@ -1,22 +0,0 @@
|
||||
namespace SabreTools.Models.Listrom
|
||||
{
|
||||
public class MetadataFile
|
||||
{
|
||||
#if NET48
|
||||
public Set[] Set { get; set; }
|
||||
#else
|
||||
public Set[]? Set { get; set; }
|
||||
#endif
|
||||
|
||||
#region DO NOT USE IN PRODUCTION
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
#if NET48
|
||||
public string[] ADDITIONAL_ELEMENTS { get; set; }
|
||||
#else
|
||||
public string[]? ADDITIONAL_ELEMENTS { get; set; }
|
||||
#endif
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -1,52 +0,0 @@
|
||||
using System.Xml;
|
||||
using System.Xml.Serialization;
|
||||
|
||||
namespace SabreTools.Models.Listxml
|
||||
{
|
||||
[XmlRoot("adjuster")]
|
||||
public class Adjuster
|
||||
{
|
||||
[Required]
|
||||
[XmlAttribute("name")]
|
||||
#if NET48
|
||||
public string Name { get; set; }
|
||||
#else
|
||||
public string? Name { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>(yes|no) "no"</remarks>
|
||||
[XmlAttribute("default")]
|
||||
#if NET48
|
||||
public string Default { get; set; }
|
||||
#else
|
||||
public string? Default { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlElement("condition")]
|
||||
#if NET48
|
||||
public Condition Condition { get; set; }
|
||||
#else
|
||||
public Condition? Condition { get; set; }
|
||||
#endif
|
||||
|
||||
#region DO NOT USE IN PRODUCTION
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyAttribute]
|
||||
#if NET48
|
||||
public XmlAttribute[] ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
#else
|
||||
public XmlAttribute[]? ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyElement]
|
||||
#if NET48
|
||||
public object[] ADDITIONAL_ELEMENTS { get; set; }
|
||||
#else
|
||||
public object[]? ADDITIONAL_ELEMENTS { get; set; }
|
||||
#endif
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -1,37 +0,0 @@
|
||||
using System.Xml;
|
||||
using System.Xml.Serialization;
|
||||
|
||||
namespace SabreTools.Models.Listxml
|
||||
{
|
||||
[XmlRoot("analog")]
|
||||
public class Analog
|
||||
{
|
||||
[Required]
|
||||
[XmlAttribute("mask")]
|
||||
#if NET48
|
||||
public string Mask { get; set; }
|
||||
#else
|
||||
public string? Mask { get; set; }
|
||||
#endif
|
||||
|
||||
#region DO NOT USE IN PRODUCTION
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyAttribute]
|
||||
#if NET48
|
||||
public XmlAttribute[] ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
#else
|
||||
public XmlAttribute[]? ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyElement]
|
||||
#if NET48
|
||||
public object[] ADDITIONAL_ELEMENTS { get; set; }
|
||||
#else
|
||||
public object[]? ADDITIONAL_ELEMENTS { get; set; }
|
||||
#endif
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -1,53 +0,0 @@
|
||||
using System.Xml;
|
||||
using System.Xml.Serialization;
|
||||
|
||||
namespace SabreTools.Models.Listxml
|
||||
{
|
||||
[XmlRoot("biosset")]
|
||||
public class BiosSet
|
||||
{
|
||||
[Required]
|
||||
[XmlAttribute("name")]
|
||||
#if NET48
|
||||
public string Name { get; set; }
|
||||
#else
|
||||
public string? Name { get; set; }
|
||||
#endif
|
||||
|
||||
[Required]
|
||||
[XmlAttribute("description")]
|
||||
#if NET48
|
||||
public string Description { get; set; }
|
||||
#else
|
||||
public string? Description { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>(yes|no) "no"</remarks>
|
||||
[XmlAttribute("default")]
|
||||
#if NET48
|
||||
public string Default { get; set; }
|
||||
#else
|
||||
public string? Default { get; set; }
|
||||
#endif
|
||||
|
||||
#region DO NOT USE IN PRODUCTION
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyAttribute]
|
||||
#if NET48
|
||||
public XmlAttribute[] ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
#else
|
||||
public XmlAttribute[]? ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyElement]
|
||||
#if NET48
|
||||
public object[] ADDITIONAL_ELEMENTS { get; set; }
|
||||
#else
|
||||
public object[]? ADDITIONAL_ELEMENTS { get; set; }
|
||||
#endif
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -1,68 +0,0 @@
|
||||
using System.Xml;
|
||||
using System.Xml.Serialization;
|
||||
|
||||
namespace SabreTools.Models.Listxml
|
||||
{
|
||||
[XmlRoot("chip")]
|
||||
public class Chip
|
||||
{
|
||||
[Required]
|
||||
[XmlAttribute("name")]
|
||||
#if NET48
|
||||
public string Name { get; set; }
|
||||
#else
|
||||
public string? Name { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlAttribute("tag")]
|
||||
#if NET48
|
||||
public string Tag { get; set; }
|
||||
#else
|
||||
public string? Tag { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>(cpu|audio)</remarks>
|
||||
[Required]
|
||||
[XmlAttribute("type")]
|
||||
#if NET48
|
||||
public string Type { get; set; }
|
||||
#else
|
||||
public string? Type { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>Only present in older versions</remarks>
|
||||
[XmlAttribute("soundonly")]
|
||||
#if NET48
|
||||
public string SoundOnly { get; set; }
|
||||
#else
|
||||
public string? SoundOnly { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlAttribute("clock")]
|
||||
#if NET48
|
||||
public string Clock { get; set; }
|
||||
#else
|
||||
public string? Clock { get; set; }
|
||||
#endif
|
||||
|
||||
#region DO NOT USE IN PRODUCTION
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyAttribute]
|
||||
#if NET48
|
||||
public XmlAttribute[] ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
#else
|
||||
public XmlAttribute[]? ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyElement]
|
||||
#if NET48
|
||||
public object[] ADDITIONAL_ELEMENTS { get; set; }
|
||||
#else
|
||||
public object[]? ADDITIONAL_ELEMENTS { get; set; }
|
||||
#endif
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -1,62 +0,0 @@
|
||||
using System.Xml;
|
||||
using System.Xml.Serialization;
|
||||
|
||||
namespace SabreTools.Models.Listxml
|
||||
{
|
||||
[XmlRoot("condition")]
|
||||
public class Condition
|
||||
{
|
||||
[Required]
|
||||
[XmlAttribute("tag")]
|
||||
#if NET48
|
||||
public string Tag { get; set; }
|
||||
#else
|
||||
public string? Tag { get; set; }
|
||||
#endif
|
||||
|
||||
[Required]
|
||||
[XmlAttribute("mask")]
|
||||
#if NET48
|
||||
public string Mask { get; set; }
|
||||
#else
|
||||
public string? Mask { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>(eq|ne|gt|le|lt|ge)</remarks>
|
||||
[Required]
|
||||
[XmlAttribute("relation")]
|
||||
#if NET48
|
||||
public string Relation { get; set; }
|
||||
#else
|
||||
public string? Relation { get; set; }
|
||||
#endif
|
||||
|
||||
[Required]
|
||||
[XmlAttribute("value")]
|
||||
#if NET48
|
||||
public string Value { get; set; }
|
||||
#else
|
||||
public string? Value { get; set; }
|
||||
#endif
|
||||
|
||||
#region DO NOT USE IN PRODUCTION
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyAttribute]
|
||||
#if NET48
|
||||
public XmlAttribute[] ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
#else
|
||||
public XmlAttribute[]? ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyElement]
|
||||
#if NET48
|
||||
public object[] ADDITIONAL_ELEMENTS { get; set; }
|
||||
#else
|
||||
public object[]? ADDITIONAL_ELEMENTS { get; set; }
|
||||
#endif
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -1,54 +0,0 @@
|
||||
using System.Xml;
|
||||
using System.Xml.Serialization;
|
||||
|
||||
namespace SabreTools.Models.Listxml
|
||||
{
|
||||
[XmlRoot("conflocation")]
|
||||
public class ConfLocation
|
||||
{
|
||||
[Required]
|
||||
[XmlAttribute("name")]
|
||||
#if NET48
|
||||
public string Name { get; set; }
|
||||
#else
|
||||
public string? Name { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>Numeric?</remarks>
|
||||
[Required]
|
||||
[XmlAttribute("number")]
|
||||
#if NET48
|
||||
public string Number { get; set; }
|
||||
#else
|
||||
public string? Number { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>(yes|no) "no"</remarks>
|
||||
[XmlAttribute("inverted")]
|
||||
#if NET48
|
||||
public string Inverted { get; set; }
|
||||
#else
|
||||
public string? Inverted { get; set; }
|
||||
#endif
|
||||
|
||||
#region DO NOT USE IN PRODUCTION
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyAttribute]
|
||||
#if NET48
|
||||
public XmlAttribute[] ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
#else
|
||||
public XmlAttribute[]? ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyElement]
|
||||
#if NET48
|
||||
public object[] ADDITIONAL_ELEMENTS { get; set; }
|
||||
#else
|
||||
public object[]? ADDITIONAL_ELEMENTS { get; set; }
|
||||
#endif
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -1,60 +0,0 @@
|
||||
using System.Xml;
|
||||
using System.Xml.Serialization;
|
||||
|
||||
namespace SabreTools.Models.Listxml
|
||||
{
|
||||
[XmlRoot("confsetting")]
|
||||
public class ConfSetting
|
||||
{
|
||||
[Required]
|
||||
[XmlAttribute("name")]
|
||||
#if NET48
|
||||
public string Name { get; set; }
|
||||
#else
|
||||
public string? Name { get; set; }
|
||||
#endif
|
||||
|
||||
[Required]
|
||||
[XmlAttribute("value")]
|
||||
#if NET48
|
||||
public string Value { get; set; }
|
||||
#else
|
||||
public string? Value { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>(yes|no) "no"</remarks>
|
||||
[XmlAttribute("default")]
|
||||
#if NET48
|
||||
public string Default { get; set; }
|
||||
#else
|
||||
public string? Default { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlElement("condition")]
|
||||
#if NET48
|
||||
public Condition Condition { get; set; }
|
||||
#else
|
||||
public Condition? Condition { get; set; }
|
||||
#endif
|
||||
|
||||
#region DO NOT USE IN PRODUCTION
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyAttribute]
|
||||
#if NET48
|
||||
public XmlAttribute[] ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
#else
|
||||
public XmlAttribute[]? ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyElement]
|
||||
#if NET48
|
||||
public object[] ADDITIONAL_ELEMENTS { get; set; }
|
||||
#else
|
||||
public object[]? ADDITIONAL_ELEMENTS { get; set; }
|
||||
#endif
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -1,73 +0,0 @@
|
||||
using System.Xml;
|
||||
using System.Xml.Serialization;
|
||||
|
||||
namespace SabreTools.Models.Listxml
|
||||
{
|
||||
[XmlRoot("configuration")]
|
||||
public class Configuration
|
||||
{
|
||||
[Required]
|
||||
[XmlAttribute("name")]
|
||||
#if NET48
|
||||
public string Name { get; set; }
|
||||
#else
|
||||
public string? Name { get; set; }
|
||||
#endif
|
||||
|
||||
[Required]
|
||||
[XmlAttribute("tag")]
|
||||
#if NET48
|
||||
public string Tag { get; set; }
|
||||
#else
|
||||
public string? Tag { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlAttribute("mask")]
|
||||
#if NET48
|
||||
public string Mask { get; set; }
|
||||
#else
|
||||
public string? Mask { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlElement("condition")]
|
||||
#if NET48
|
||||
public Condition Condition { get; set; }
|
||||
#else
|
||||
public Condition? Condition { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlElement("conflocation")]
|
||||
#if NET48
|
||||
public ConfLocation[] ConfLocation { get; set; }
|
||||
#else
|
||||
public ConfLocation[]? ConfLocation { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlElement("confsetting")]
|
||||
#if NET48
|
||||
public ConfSetting[] ConfSetting { get; set; }
|
||||
#else
|
||||
public ConfSetting[]? ConfSetting { get; set; }
|
||||
#endif
|
||||
|
||||
#region DO NOT USE IN PRODUCTION
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyAttribute]
|
||||
#if NET48
|
||||
public XmlAttribute[] ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
#else
|
||||
public XmlAttribute[]? ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyElement]
|
||||
#if NET48
|
||||
public object[] ADDITIONAL_ELEMENTS { get; set; }
|
||||
#else
|
||||
public object[]? ADDITIONAL_ELEMENTS { get; set; }
|
||||
#endif
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -1,80 +0,0 @@
|
||||
using System.Xml;
|
||||
using System.Xml.Serialization;
|
||||
|
||||
namespace SabreTools.Models.Listxml
|
||||
{
|
||||
[XmlRoot("device")]
|
||||
public class Device
|
||||
{
|
||||
[Required]
|
||||
[XmlAttribute("type")]
|
||||
#if NET48
|
||||
public string Type { get; set; }
|
||||
#else
|
||||
public string? Type { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlAttribute("tag")]
|
||||
#if NET48
|
||||
public string Tag { get; set; }
|
||||
#else
|
||||
public string? Tag { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlAttribute("fixed_image")]
|
||||
#if NET48
|
||||
public string FixedImage { get; set; }
|
||||
#else
|
||||
public string? FixedImage { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>Numeric boolean</remarks>
|
||||
[XmlAttribute("mandatory")]
|
||||
#if NET48
|
||||
public string Mandatory { get; set; }
|
||||
#else
|
||||
public string? Mandatory { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlAttribute("interface")]
|
||||
#if NET48
|
||||
public string Interface { get; set; }
|
||||
#else
|
||||
public string? Interface { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlElement("instance")]
|
||||
#if NET48
|
||||
public Instance Instance { get; set; }
|
||||
#else
|
||||
public Instance? Instance { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlElement("extension")]
|
||||
#if NET48
|
||||
public Extension[] Extension { get; set; }
|
||||
#else
|
||||
public Extension[]? Extension { get; set; }
|
||||
#endif
|
||||
|
||||
#region DO NOT USE IN PRODUCTION
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyAttribute]
|
||||
#if NET48
|
||||
public XmlAttribute[] ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
#else
|
||||
public XmlAttribute[]? ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyElement]
|
||||
#if NET48
|
||||
public object[] ADDITIONAL_ELEMENTS { get; set; }
|
||||
#else
|
||||
public object[]? ADDITIONAL_ELEMENTS { get; set; }
|
||||
#endif
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -1,37 +0,0 @@
|
||||
using System.Xml;
|
||||
using System.Xml.Serialization;
|
||||
|
||||
namespace SabreTools.Models.Listxml
|
||||
{
|
||||
[XmlRoot("device_ref")]
|
||||
public class DeviceRef
|
||||
{
|
||||
[Required]
|
||||
[XmlAttribute("name")]
|
||||
#if NET48
|
||||
public string Name { get; set; }
|
||||
#else
|
||||
public string? Name { get; set; }
|
||||
#endif
|
||||
|
||||
#region DO NOT USE IN PRODUCTION
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyAttribute]
|
||||
#if NET48
|
||||
public XmlAttribute[] ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
#else
|
||||
public XmlAttribute[]? ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyElement]
|
||||
#if NET48
|
||||
public object[] ADDITIONAL_ELEMENTS { get; set; }
|
||||
#else
|
||||
public object[]? ADDITIONAL_ELEMENTS { get; set; }
|
||||
#endif
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -1,54 +0,0 @@
|
||||
using System.Xml;
|
||||
using System.Xml.Serialization;
|
||||
|
||||
namespace SabreTools.Models.Listxml
|
||||
{
|
||||
[XmlRoot("diplocation")]
|
||||
public class DipLocation
|
||||
{
|
||||
[Required]
|
||||
[XmlAttribute("name")]
|
||||
#if NET48
|
||||
public string Name { get; set; }
|
||||
#else
|
||||
public string? Name { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>Numeric?</remarks>
|
||||
[Required]
|
||||
[XmlAttribute("number")]
|
||||
#if NET48
|
||||
public string Number { get; set; }
|
||||
#else
|
||||
public string? Number { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>(yes|no) "no"</remarks>
|
||||
[XmlAttribute("inverted")]
|
||||
#if NET48
|
||||
public string Inverted { get; set; }
|
||||
#else
|
||||
public string? Inverted { get; set; }
|
||||
#endif
|
||||
|
||||
#region DO NOT USE IN PRODUCTION
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyAttribute]
|
||||
#if NET48
|
||||
public XmlAttribute[] ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
#else
|
||||
public XmlAttribute[]? ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyElement]
|
||||
#if NET48
|
||||
public object[] ADDITIONAL_ELEMENTS { get; set; }
|
||||
#else
|
||||
public object[]? ADDITIONAL_ELEMENTS { get; set; }
|
||||
#endif
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -1,73 +0,0 @@
|
||||
using System.Xml;
|
||||
using System.Xml.Serialization;
|
||||
|
||||
namespace SabreTools.Models.Listxml
|
||||
{
|
||||
[XmlRoot("dipswitch")]
|
||||
public class DipSwitch
|
||||
{
|
||||
[Required]
|
||||
[XmlAttribute("name")]
|
||||
#if NET48
|
||||
public string Name { get; set; }
|
||||
#else
|
||||
public string? Name { get; set; }
|
||||
#endif
|
||||
|
||||
[Required]
|
||||
[XmlAttribute("tag")]
|
||||
#if NET48
|
||||
public string Tag { get; set; }
|
||||
#else
|
||||
public string? Tag { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlAttribute("mask")]
|
||||
#if NET48
|
||||
public string Mask { get; set; }
|
||||
#else
|
||||
public string? Mask { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlElement("condition")]
|
||||
#if NET48
|
||||
public Condition Condition { get; set; }
|
||||
#else
|
||||
public Condition? Condition { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlElement("diplocation")]
|
||||
#if NET48
|
||||
public DipLocation[] DipLocation { get; set; }
|
||||
#else
|
||||
public DipLocation[]? DipLocation { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlElement("dipvalue")]
|
||||
#if NET48
|
||||
public DipValue[] DipValue { get; set; }
|
||||
#else
|
||||
public DipValue[]? DipValue { get; set; }
|
||||
#endif
|
||||
|
||||
#region DO NOT USE IN PRODUCTION
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyAttribute]
|
||||
#if NET48
|
||||
public XmlAttribute[] ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
#else
|
||||
public XmlAttribute[]? ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyElement]
|
||||
#if NET48
|
||||
public object[] ADDITIONAL_ELEMENTS { get; set; }
|
||||
#else
|
||||
public object[]? ADDITIONAL_ELEMENTS { get; set; }
|
||||
#endif
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -1,60 +0,0 @@
|
||||
using System.Xml;
|
||||
using System.Xml.Serialization;
|
||||
|
||||
namespace SabreTools.Models.Listxml
|
||||
{
|
||||
[XmlRoot("dipvalue")]
|
||||
public class DipValue
|
||||
{
|
||||
[Required]
|
||||
[XmlAttribute("name")]
|
||||
#if NET48
|
||||
public string Name { get; set; }
|
||||
#else
|
||||
public string? Name { get; set; }
|
||||
#endif
|
||||
|
||||
[Required]
|
||||
[XmlAttribute("value")]
|
||||
#if NET48
|
||||
public string Value { get; set; }
|
||||
#else
|
||||
public string? Value { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>(yes|no) "no"</remarks>
|
||||
[XmlAttribute("default")]
|
||||
#if NET48
|
||||
public string Default { get; set; }
|
||||
#else
|
||||
public string? Default { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlElement("condition")]
|
||||
#if NET48
|
||||
public Condition Condition { get; set; }
|
||||
#else
|
||||
public Condition? Condition { get; set; }
|
||||
#endif
|
||||
|
||||
#region DO NOT USE IN PRODUCTION
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyAttribute]
|
||||
#if NET48
|
||||
public XmlAttribute[] ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
#else
|
||||
public XmlAttribute[]? ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyElement]
|
||||
#if NET48
|
||||
public object[] ADDITIONAL_ELEMENTS { get; set; }
|
||||
#else
|
||||
public object[]? ADDITIONAL_ELEMENTS { get; set; }
|
||||
#endif
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -1,37 +0,0 @@
|
||||
using System.Xml;
|
||||
using System.Xml.Serialization;
|
||||
|
||||
namespace SabreTools.Models.Listxml
|
||||
{
|
||||
[XmlRoot("extension")]
|
||||
public class Extension
|
||||
{
|
||||
[Required]
|
||||
[XmlAttribute("name")]
|
||||
#if NET48
|
||||
public string Name { get; set; }
|
||||
#else
|
||||
public string? Name { get; set; }
|
||||
#endif
|
||||
|
||||
#region DO NOT USE IN PRODUCTION
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyAttribute]
|
||||
#if NET48
|
||||
public XmlAttribute[] ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
#else
|
||||
public XmlAttribute[]? ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyElement]
|
||||
#if NET48
|
||||
public object[] ADDITIONAL_ELEMENTS { get; set; }
|
||||
#else
|
||||
public object[]? ADDITIONAL_ELEMENTS { get; set; }
|
||||
#endif
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -1,54 +0,0 @@
|
||||
using System.Xml;
|
||||
using System.Xml.Serialization;
|
||||
|
||||
namespace SabreTools.Models.Listxml
|
||||
{
|
||||
[XmlRoot("feature")]
|
||||
public class Feature
|
||||
{
|
||||
/// <remarks>(protection|timing|graphics|palette|sound|capture|camera|microphone|controls|keyboard|mouse|media|disk|printer|tape|punch|drum|rom|comms|lan|wan)</remarks>
|
||||
[Required]
|
||||
[XmlAttribute("type")]
|
||||
#if NET48
|
||||
public string Type { get; set; }
|
||||
#else
|
||||
public string? Type { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>(unemulated|imperfect)</remarks>
|
||||
[XmlAttribute("status")]
|
||||
#if NET48
|
||||
public string Status { get; set; }
|
||||
#else
|
||||
public string? Status { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>(unemulated|imperfect)</remarks>
|
||||
[XmlAttribute("overall")]
|
||||
#if NET48
|
||||
public string Overall { get; set; }
|
||||
#else
|
||||
public string? Overall { get; set; }
|
||||
#endif
|
||||
|
||||
#region DO NOT USE IN PRODUCTION
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyAttribute]
|
||||
#if NET48
|
||||
public XmlAttribute[] ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
#else
|
||||
public XmlAttribute[]? ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyElement]
|
||||
#if NET48
|
||||
public object[] ADDITIONAL_ELEMENTS { get; set; }
|
||||
#else
|
||||
public object[]? ADDITIONAL_ELEMENTS { get; set; }
|
||||
#endif
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -1,45 +0,0 @@
|
||||
using System.Xml;
|
||||
using System.Xml.Serialization;
|
||||
|
||||
namespace SabreTools.Models.Listxml
|
||||
{
|
||||
[XmlRoot("instance")]
|
||||
public class Instance
|
||||
{
|
||||
[Required]
|
||||
[XmlAttribute("name")]
|
||||
#if NET48
|
||||
public string Name { get; set; }
|
||||
#else
|
||||
public string? Name { get; set; }
|
||||
#endif
|
||||
|
||||
[Required]
|
||||
[XmlAttribute("briefname")]
|
||||
#if NET48
|
||||
public string BriefName { get; set; }
|
||||
#else
|
||||
public string? BriefName { get; set; }
|
||||
#endif
|
||||
|
||||
#region DO NOT USE IN PRODUCTION
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyAttribute]
|
||||
#if NET48
|
||||
public XmlAttribute[] ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
#else
|
||||
public XmlAttribute[]? ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyElement]
|
||||
#if NET48
|
||||
public object[] ADDITIONAL_ELEMENTS { get; set; }
|
||||
#else
|
||||
public object[]? ADDITIONAL_ELEMENTS { get; set; }
|
||||
#endif
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -1,44 +0,0 @@
|
||||
using System.Xml;
|
||||
using System.Xml.Serialization;
|
||||
|
||||
namespace SabreTools.Models.Listxml
|
||||
{
|
||||
[XmlRoot("m1")]
|
||||
public class M1
|
||||
{
|
||||
[XmlAttribute("version")]
|
||||
#if NET48
|
||||
public string Version { get; set; }
|
||||
#else
|
||||
public string? Version { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlElement("machine", typeof(Machine))]
|
||||
[XmlElement("game", typeof(Game))]
|
||||
#if NET48
|
||||
public GameBase[] Game { get; set; }
|
||||
#else
|
||||
public GameBase[]? Game { get; set; }
|
||||
#endif
|
||||
|
||||
#region DO NOT USE IN PRODUCTION
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyAttribute]
|
||||
#if NET48
|
||||
public XmlAttribute[] ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
#else
|
||||
public XmlAttribute[]? ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyElement]
|
||||
#if NET48
|
||||
public object[] ADDITIONAL_ELEMENTS { get; set; }
|
||||
#else
|
||||
public object[]? ADDITIONAL_ELEMENTS { get; set; }
|
||||
#endif
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -1,60 +0,0 @@
|
||||
using System.Xml;
|
||||
using System.Xml.Serialization;
|
||||
|
||||
namespace SabreTools.Models.Listxml
|
||||
{
|
||||
[XmlRoot("mame")]
|
||||
public class Mame
|
||||
{
|
||||
[XmlAttribute("build")]
|
||||
#if NET48
|
||||
public string Build { get; set; }
|
||||
#else
|
||||
public string? Build { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>(yes|no) "no"</remarks>
|
||||
[XmlAttribute("debug")]
|
||||
#if NET48
|
||||
public string Debug { get; set; }
|
||||
#else
|
||||
public string? Debug { get; set; }
|
||||
#endif
|
||||
|
||||
[Required]
|
||||
[XmlAttribute("mameconfig")]
|
||||
#if NET48
|
||||
public string MameConfig { get; set; }
|
||||
#else
|
||||
public string? MameConfig { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlElement("machine", typeof(Machine))]
|
||||
[XmlElement("game", typeof(Game))]
|
||||
#if NET48
|
||||
public GameBase[] Game { get; set; }
|
||||
#else
|
||||
public GameBase[]? Game { get; set; }
|
||||
#endif
|
||||
|
||||
#region DO NOT USE IN PRODUCTION
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyAttribute]
|
||||
#if NET48
|
||||
public XmlAttribute[] ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
#else
|
||||
public XmlAttribute[]? ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyElement]
|
||||
#if NET48
|
||||
public object[] ADDITIONAL_ELEMENTS { get; set; }
|
||||
#else
|
||||
public object[]? ADDITIONAL_ELEMENTS { get; set; }
|
||||
#endif
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -1,44 +0,0 @@
|
||||
using System.Xml;
|
||||
using System.Xml.Serialization;
|
||||
|
||||
namespace SabreTools.Models.Listxml
|
||||
{
|
||||
[XmlRoot("port")]
|
||||
public class Port
|
||||
{
|
||||
[Required]
|
||||
[XmlAttribute("tag")]
|
||||
#if NET48
|
||||
public string Tag { get; set; }
|
||||
#else
|
||||
public string? Tag { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlElement("analog")]
|
||||
#if NET48
|
||||
public Analog[] Analog { get; set; }
|
||||
#else
|
||||
public Analog[]? Analog { get; set; }
|
||||
#endif
|
||||
|
||||
#region DO NOT USE IN PRODUCTION
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyAttribute]
|
||||
#if NET48
|
||||
public XmlAttribute[] ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
#else
|
||||
public XmlAttribute[]? ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyElement]
|
||||
#if NET48
|
||||
public object[] ADDITIONAL_ELEMENTS { get; set; }
|
||||
#else
|
||||
public object[]? ADDITIONAL_ELEMENTS { get; set; }
|
||||
#endif
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -1,51 +0,0 @@
|
||||
using System.Xml;
|
||||
using System.Xml.Serialization;
|
||||
|
||||
namespace SabreTools.Models.Listxml
|
||||
{
|
||||
[XmlRoot("ramoption")]
|
||||
public class RamOption
|
||||
{
|
||||
[Required]
|
||||
[XmlAttribute("name")]
|
||||
#if NET48
|
||||
public string Name { get; set; }
|
||||
#else
|
||||
public string? Name { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlAttribute("default")]
|
||||
#if NET48
|
||||
public string Default { get; set; }
|
||||
#else
|
||||
public string? Default { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlText]
|
||||
#if NET48
|
||||
public string Content { get; set; }
|
||||
#else
|
||||
public string? Content { get; set; }
|
||||
#endif
|
||||
|
||||
#region DO NOT USE IN PRODUCTION
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyAttribute]
|
||||
#if NET48
|
||||
public XmlAttribute[] ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
#else
|
||||
public XmlAttribute[]? ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyElement]
|
||||
#if NET48
|
||||
public object[] ADDITIONAL_ELEMENTS { get; set; }
|
||||
#else
|
||||
public object[]? ADDITIONAL_ELEMENTS { get; set; }
|
||||
#endif
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -1,37 +0,0 @@
|
||||
using System.Xml;
|
||||
using System.Xml.Serialization;
|
||||
|
||||
namespace SabreTools.Models.Listxml
|
||||
{
|
||||
[XmlRoot("sample")]
|
||||
public class Sample
|
||||
{
|
||||
[Required]
|
||||
[XmlAttribute("name")]
|
||||
#if NET48
|
||||
public string Name { get; set; }
|
||||
#else
|
||||
public string? Name { get; set; }
|
||||
#endif
|
||||
|
||||
#region DO NOT USE IN PRODUCTION
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyAttribute]
|
||||
#if NET48
|
||||
public XmlAttribute[] ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
#else
|
||||
public XmlAttribute[]? ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyElement]
|
||||
#if NET48
|
||||
public object[] ADDITIONAL_ELEMENTS { get; set; }
|
||||
#else
|
||||
public object[]? ADDITIONAL_ELEMENTS { get; set; }
|
||||
#endif
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -1,44 +0,0 @@
|
||||
using System.Xml;
|
||||
using System.Xml.Serialization;
|
||||
|
||||
namespace SabreTools.Models.Listxml
|
||||
{
|
||||
[XmlRoot("slot")]
|
||||
public class Slot
|
||||
{
|
||||
[Required]
|
||||
[XmlAttribute("name")]
|
||||
#if NET48
|
||||
public string Name { get; set; }
|
||||
#else
|
||||
public string? Name { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlElement("slotoption")]
|
||||
#if NET48
|
||||
public SlotOption[] SlotOption { get; set; }
|
||||
#else
|
||||
public SlotOption[]? SlotOption { get; set; }
|
||||
#endif
|
||||
|
||||
#region DO NOT USE IN PRODUCTION
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyAttribute]
|
||||
#if NET48
|
||||
public XmlAttribute[] ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
#else
|
||||
public XmlAttribute[]? ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyElement]
|
||||
#if NET48
|
||||
public object[] ADDITIONAL_ELEMENTS { get; set; }
|
||||
#else
|
||||
public object[]? ADDITIONAL_ELEMENTS { get; set; }
|
||||
#endif
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -1,53 +0,0 @@
|
||||
using System.Xml;
|
||||
using System.Xml.Serialization;
|
||||
|
||||
namespace SabreTools.Models.Listxml
|
||||
{
|
||||
[XmlRoot("slotoption")]
|
||||
public class SlotOption
|
||||
{
|
||||
[Required]
|
||||
[XmlAttribute("name")]
|
||||
#if NET48
|
||||
public string Name { get; set; }
|
||||
#else
|
||||
public string? Name { get; set; }
|
||||
#endif
|
||||
|
||||
[Required]
|
||||
[XmlAttribute("devname")]
|
||||
#if NET48
|
||||
public string DevName { get; set; }
|
||||
#else
|
||||
public string? DevName { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>(yes|no) "no"</remarks>
|
||||
[XmlAttribute("default")]
|
||||
#if NET48
|
||||
public string Default { get; set; }
|
||||
#else
|
||||
public string? Default { get; set; }
|
||||
#endif
|
||||
|
||||
#region DO NOT USE IN PRODUCTION
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyAttribute]
|
||||
#if NET48
|
||||
public XmlAttribute[] ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
#else
|
||||
public XmlAttribute[]? ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyElement]
|
||||
#if NET48
|
||||
public object[] ADDITIONAL_ELEMENTS { get; set; }
|
||||
#else
|
||||
public object[]? ADDITIONAL_ELEMENTS { get; set; }
|
||||
#endif
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -1,61 +0,0 @@
|
||||
using System.Xml;
|
||||
using System.Xml.Serialization;
|
||||
|
||||
namespace SabreTools.Models.Listxml
|
||||
{
|
||||
[XmlRoot("softwarelist")]
|
||||
public class SoftwareList
|
||||
{
|
||||
[Required]
|
||||
[XmlAttribute("tag")]
|
||||
#if NET48
|
||||
public string Tag { get; set; }
|
||||
#else
|
||||
public string? Tag { get; set; }
|
||||
#endif
|
||||
|
||||
[Required]
|
||||
[XmlAttribute("name")]
|
||||
#if NET48
|
||||
public string Name { get; set; }
|
||||
#else
|
||||
public string? Name { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>(original|compatible)</remarks>
|
||||
[Required]
|
||||
[XmlAttribute("status")]
|
||||
#if NET48
|
||||
public string Status { get; set; }
|
||||
#else
|
||||
public string? Status { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlAttribute("filter")]
|
||||
#if NET48
|
||||
public string Filter { get; set; }
|
||||
#else
|
||||
public string? Filter { get; set; }
|
||||
#endif
|
||||
|
||||
#region DO NOT USE IN PRODUCTION
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyAttribute]
|
||||
#if NET48
|
||||
public XmlAttribute[] ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
#else
|
||||
public XmlAttribute[]? ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyElement]
|
||||
#if NET48
|
||||
public object[] ADDITIONAL_ELEMENTS { get; set; }
|
||||
#else
|
||||
public object[]? ADDITIONAL_ELEMENTS { get; set; }
|
||||
#endif
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -1,38 +0,0 @@
|
||||
using System.Xml;
|
||||
using System.Xml.Serialization;
|
||||
|
||||
namespace SabreTools.Models.Listxml
|
||||
{
|
||||
[XmlRoot("sound")]
|
||||
public class Sound
|
||||
{
|
||||
/// <remarks>Numeric</remarks>
|
||||
[Required]
|
||||
[XmlAttribute("channels")]
|
||||
#if NET48
|
||||
public string Channels { get; set; }
|
||||
#else
|
||||
public string? Channels { get; set; }
|
||||
#endif
|
||||
|
||||
#region DO NOT USE IN PRODUCTION
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyAttribute]
|
||||
#if NET48
|
||||
public XmlAttribute[] ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
#else
|
||||
public XmlAttribute[]? ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyElement]
|
||||
#if NET48
|
||||
public object[] ADDITIONAL_ELEMENTS { get; set; }
|
||||
#else
|
||||
public object[]? ADDITIONAL_ELEMENTS { get; set; }
|
||||
#endif
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -1,37 +0,0 @@
|
||||
using System.Xml;
|
||||
using System.Xml.Serialization;
|
||||
|
||||
namespace SabreTools.Models.Logiqx
|
||||
{
|
||||
[XmlRoot("archive")]
|
||||
public class Archive
|
||||
{
|
||||
[Required]
|
||||
[XmlAttribute("name")]
|
||||
#if NET48
|
||||
public string Name { get; set; }
|
||||
#else
|
||||
public string? Name { get; set; }
|
||||
#endif
|
||||
|
||||
#region DO NOT USE IN PRODUCTION
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyAttribute]
|
||||
#if NET48
|
||||
public XmlAttribute[] ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
#else
|
||||
public XmlAttribute[]? ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyElement]
|
||||
#if NET48
|
||||
public object[] ADDITIONAL_ELEMENTS { get; set; }
|
||||
#else
|
||||
public object[]? ADDITIONAL_ELEMENTS { get; set; }
|
||||
#endif
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -1,53 +0,0 @@
|
||||
using System.Xml;
|
||||
using System.Xml.Serialization;
|
||||
|
||||
namespace SabreTools.Models.Logiqx
|
||||
{
|
||||
[XmlRoot("biosset")]
|
||||
public class BiosSet
|
||||
{
|
||||
[Required]
|
||||
[XmlAttribute("name")]
|
||||
#if NET48
|
||||
public string Name { get; set; }
|
||||
#else
|
||||
public string? Name { get; set; }
|
||||
#endif
|
||||
|
||||
[Required]
|
||||
[XmlAttribute("description")]
|
||||
#if NET48
|
||||
public string Description { get; set; }
|
||||
#else
|
||||
public string? Description { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>(yes|no) "no"</remarks>
|
||||
[XmlAttribute("default")]
|
||||
#if NET48
|
||||
public string Default { get; set; }
|
||||
#else
|
||||
public string? Default { get; set; }
|
||||
#endif
|
||||
|
||||
#region DO NOT USE IN PRODUCTION
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyAttribute]
|
||||
#if NET48
|
||||
public XmlAttribute[] ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
#else
|
||||
public XmlAttribute[]? ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyElement]
|
||||
#if NET48
|
||||
public object[] ADDITIONAL_ELEMENTS { get; set; }
|
||||
#else
|
||||
public object[]? ADDITIONAL_ELEMENTS { get; set; }
|
||||
#endif
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -1,60 +0,0 @@
|
||||
using System.Xml;
|
||||
using System.Xml.Serialization;
|
||||
|
||||
namespace SabreTools.Models.Logiqx
|
||||
{
|
||||
[XmlRoot("clrmamepro")]
|
||||
public class ClrMamePro
|
||||
{
|
||||
[XmlAttribute("header")]
|
||||
#if NET48
|
||||
public string Header { get; set; }
|
||||
#else
|
||||
public string? Header { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>(none|split|merged|nonmerged|fullmerged|device|full) "split"</remarks>
|
||||
[XmlAttribute("forcemerging")]
|
||||
#if NET48
|
||||
public string ForceMerging { get; set; }
|
||||
#else
|
||||
public string? ForceMerging { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>(obsolete|required|ignore) "obsolete"</remarks>
|
||||
[XmlAttribute("forcenodump")]
|
||||
#if NET48
|
||||
public string ForceNodump { get; set; }
|
||||
#else
|
||||
public string? ForceNodump { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>(zip|unzip) "zip"</remarks>
|
||||
[XmlAttribute("forcepacking")]
|
||||
#if NET48
|
||||
public string ForcePacking { get; set; }
|
||||
#else
|
||||
public string? ForcePacking { get; set; }
|
||||
#endif
|
||||
|
||||
#region DO NOT USE IN PRODUCTION
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyAttribute]
|
||||
#if NET48
|
||||
public XmlAttribute[] ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
#else
|
||||
public XmlAttribute[]? ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyElement]
|
||||
#if NET48
|
||||
public object[] ADDITIONAL_ELEMENTS { get; set; }
|
||||
#else
|
||||
public object[]? ADDITIONAL_ELEMENTS { get; set; }
|
||||
#endif
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -1,75 +0,0 @@
|
||||
using System.Xml;
|
||||
using System.Xml.Serialization;
|
||||
|
||||
namespace SabreTools.Models.Logiqx
|
||||
{
|
||||
[XmlRoot("datafile")]
|
||||
public class Datafile
|
||||
{
|
||||
[XmlAttribute("build")]
|
||||
#if NET48
|
||||
public string Build { get; set; }
|
||||
#else
|
||||
public string? Build { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>(yes|no) "no"</remarks>
|
||||
[XmlAttribute("debug")]
|
||||
#if NET48
|
||||
public string Debug { get; set; }
|
||||
#else
|
||||
public string? Debug { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>No-Intro extension</remarks>
|
||||
[XmlAttribute(Namespace = "http://www.w3.org/2001/XMLSchema-instance", AttributeName = "schemaLocation")]
|
||||
#if NET48
|
||||
public string SchemaLocation { get; set; }
|
||||
#else
|
||||
public string? SchemaLocation { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlElement("header")]
|
||||
#if NET48
|
||||
public Header Header { get; set; }
|
||||
#else
|
||||
public Header? Header { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlElement("game", typeof(Game))]
|
||||
[XmlElement("machine", typeof(Machine))]
|
||||
#if NET48
|
||||
public GameBase[] Game { get; set; }
|
||||
#else
|
||||
public GameBase[]? Game { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>RomVault extension</remarks>
|
||||
[XmlElement("dir")]
|
||||
#if NET48
|
||||
public Dir[] Dir { get; set; }
|
||||
#else
|
||||
public Dir[]? Dir { get; set; }
|
||||
#endif
|
||||
|
||||
#region DO NOT USE IN PRODUCTION
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyAttribute]
|
||||
#if NET48
|
||||
public XmlAttribute[] ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
#else
|
||||
public XmlAttribute[]? ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyElement]
|
||||
#if NET48
|
||||
public object[] ADDITIONAL_ELEMENTS { get; set; }
|
||||
#else
|
||||
public object[]? ADDITIONAL_ELEMENTS { get; set; }
|
||||
#endif
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -1,37 +0,0 @@
|
||||
using System.Xml;
|
||||
using System.Xml.Serialization;
|
||||
|
||||
namespace SabreTools.Models.Logiqx
|
||||
{
|
||||
[XmlRoot("device_ref")]
|
||||
public class DeviceRef
|
||||
{
|
||||
[Required]
|
||||
[XmlAttribute("name")]
|
||||
#if NET48
|
||||
public string Name { get; set; }
|
||||
#else
|
||||
public string? Name { get; set; }
|
||||
#endif
|
||||
|
||||
#region DO NOT USE IN PRODUCTION
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyAttribute]
|
||||
#if NET48
|
||||
public XmlAttribute[] ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
#else
|
||||
public XmlAttribute[]? ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyElement]
|
||||
#if NET48
|
||||
public object[] ADDITIONAL_ELEMENTS { get; set; }
|
||||
#else
|
||||
public object[]? ADDITIONAL_ELEMENTS { get; set; }
|
||||
#endif
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -1,45 +0,0 @@
|
||||
using System.Xml;
|
||||
using System.Xml.Serialization;
|
||||
|
||||
namespace SabreTools.Models.Logiqx
|
||||
{
|
||||
[XmlRoot("dir")]
|
||||
public class Dir
|
||||
{
|
||||
[Required]
|
||||
[XmlAttribute("name")]
|
||||
#if NET48
|
||||
public string Name { get; set; }
|
||||
#else
|
||||
public string? Name { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlElement("game", typeof(Game))]
|
||||
[XmlElement("machine", typeof(Machine))]
|
||||
#if NET48
|
||||
public GameBase[] Game { get; set; }
|
||||
#else
|
||||
public GameBase[]? Game { get; set; }
|
||||
#endif
|
||||
|
||||
#region DO NOT USE IN PRODUCTION
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyAttribute]
|
||||
#if NET48
|
||||
public XmlAttribute[] ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
#else
|
||||
public XmlAttribute[]? ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyElement]
|
||||
#if NET48
|
||||
public object[] ADDITIONAL_ELEMENTS { get; set; }
|
||||
#else
|
||||
public object[]? ADDITIONAL_ELEMENTS { get; set; }
|
||||
#endif
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -1,74 +0,0 @@
|
||||
using System.Xml;
|
||||
using System.Xml.Serialization;
|
||||
|
||||
namespace SabreTools.Models.Logiqx
|
||||
{
|
||||
[XmlRoot("disk")]
|
||||
public class Disk
|
||||
{
|
||||
[Required]
|
||||
[XmlAttribute("name")]
|
||||
#if NET48
|
||||
public string Name { get; set; }
|
||||
#else
|
||||
public string? Name { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlAttribute("md5")]
|
||||
#if NET48
|
||||
public string MD5 { get; set; }
|
||||
#else
|
||||
public string? MD5 { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlAttribute("sha1")]
|
||||
#if NET48
|
||||
public string SHA1 { get; set; }
|
||||
#else
|
||||
public string? SHA1 { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlAttribute("merge")]
|
||||
#if NET48
|
||||
public string Merge { get; set; }
|
||||
#else
|
||||
public string? Merge { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>(baddump|nodump|good|verified) "good"</remarks>
|
||||
[XmlAttribute("status")]
|
||||
#if NET48
|
||||
public string Status { get; set; }
|
||||
#else
|
||||
public string? Status { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>MAME extension</remarks>
|
||||
[XmlAttribute("region")]
|
||||
#if NET48
|
||||
public string Region { get; set; }
|
||||
#else
|
||||
public string? Region { get; set; }
|
||||
#endif
|
||||
|
||||
#region DO NOT USE IN PRODUCTION
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyAttribute]
|
||||
#if NET48
|
||||
public XmlAttribute[] ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
#else
|
||||
public XmlAttribute[]? ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyElement]
|
||||
#if NET48
|
||||
public object[] ADDITIONAL_ELEMENTS { get; set; }
|
||||
#else
|
||||
public object[]? ADDITIONAL_ELEMENTS { get; set; }
|
||||
#endif
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -1,65 +0,0 @@
|
||||
using System.Xml;
|
||||
using System.Xml.Serialization;
|
||||
|
||||
namespace SabreTools.Models.Logiqx
|
||||
{
|
||||
[XmlRoot("media")]
|
||||
public class Media
|
||||
{
|
||||
[Required]
|
||||
[XmlAttribute("name")]
|
||||
#if NET48
|
||||
public string Name { get; set; }
|
||||
#else
|
||||
public string? Name { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlAttribute("md5")]
|
||||
#if NET48
|
||||
public string MD5 { get; set; }
|
||||
#else
|
||||
public string? MD5 { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlAttribute("sha1")]
|
||||
#if NET48
|
||||
public string SHA1 { get; set; }
|
||||
#else
|
||||
public string? SHA1 { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlAttribute("sha256")]
|
||||
#if NET48
|
||||
public string SHA256 { get; set; }
|
||||
#else
|
||||
public string? SHA256 { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlAttribute("spamsum")]
|
||||
#if NET48
|
||||
public string SpamSum { get; set; }
|
||||
#else
|
||||
public string? SpamSum { get; set; }
|
||||
#endif
|
||||
|
||||
#region DO NOT USE IN PRODUCTION
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyAttribute]
|
||||
#if NET48
|
||||
public XmlAttribute[] ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
#else
|
||||
public XmlAttribute[]? ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyElement]
|
||||
#if NET48
|
||||
public object[] ADDITIONAL_ELEMENTS { get; set; }
|
||||
#else
|
||||
public object[]? ADDITIONAL_ELEMENTS { get; set; }
|
||||
#endif
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -1,67 +0,0 @@
|
||||
using System.Xml;
|
||||
using System.Xml.Serialization;
|
||||
|
||||
namespace SabreTools.Models.Logiqx
|
||||
{
|
||||
[XmlRoot("release")]
|
||||
public class Release
|
||||
{
|
||||
[Required]
|
||||
[XmlAttribute("name")]
|
||||
#if NET48
|
||||
public string Name { get; set; }
|
||||
#else
|
||||
public string? Name { get; set; }
|
||||
#endif
|
||||
|
||||
[Required]
|
||||
[XmlAttribute("region")]
|
||||
#if NET48
|
||||
public string Region { get; set; }
|
||||
#else
|
||||
public string? Region { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlAttribute("language")]
|
||||
#if NET48
|
||||
public string Language { get; set; }
|
||||
#else
|
||||
public string? Language { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlAttribute("date")]
|
||||
#if NET48
|
||||
public string Date { get; set; }
|
||||
#else
|
||||
public string? Date { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>(yes|no) "no"</remarks>
|
||||
[XmlAttribute("default")]
|
||||
#if NET48
|
||||
public string Default { get; set; }
|
||||
#else
|
||||
public string? Default { get; set; }
|
||||
#endif
|
||||
|
||||
#region DO NOT USE IN PRODUCTION
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyAttribute]
|
||||
#if NET48
|
||||
public XmlAttribute[] ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
#else
|
||||
public XmlAttribute[]? ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyElement]
|
||||
#if NET48
|
||||
public object[] ADDITIONAL_ELEMENTS { get; set; }
|
||||
#else
|
||||
public object[]? ADDITIONAL_ELEMENTS { get; set; }
|
||||
#endif
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -1,37 +0,0 @@
|
||||
using System.Xml;
|
||||
using System.Xml.Serialization;
|
||||
|
||||
namespace SabreTools.Models.Logiqx
|
||||
{
|
||||
[XmlRoot("sample")]
|
||||
public class Sample
|
||||
{
|
||||
[Required]
|
||||
[XmlAttribute("name")]
|
||||
#if NET48
|
||||
public string Name { get; set; }
|
||||
#else
|
||||
public string? Name { get; set; }
|
||||
#endif
|
||||
|
||||
#region DO NOT USE IN PRODUCTION
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyAttribute]
|
||||
#if NET48
|
||||
public XmlAttribute[] ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
#else
|
||||
public XmlAttribute[]? ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyElement]
|
||||
#if NET48
|
||||
public object[] ADDITIONAL_ELEMENTS { get; set; }
|
||||
#else
|
||||
public object[]? ADDITIONAL_ELEMENTS { get; set; }
|
||||
#endif
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -1,61 +0,0 @@
|
||||
using System.Xml;
|
||||
using System.Xml.Serialization;
|
||||
|
||||
namespace SabreTools.Models.Logiqx
|
||||
{
|
||||
[XmlRoot("softwarelist")]
|
||||
public class SoftwareList
|
||||
{
|
||||
[Required]
|
||||
[XmlAttribute("tag")]
|
||||
#if NET48
|
||||
public string Tag { get; set; }
|
||||
#else
|
||||
public string? Tag { get; set; }
|
||||
#endif
|
||||
|
||||
[Required]
|
||||
[XmlAttribute("name")]
|
||||
#if NET48
|
||||
public string Name { get; set; }
|
||||
#else
|
||||
public string? Name { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>(original|compatible)</remarks>
|
||||
[Required]
|
||||
[XmlAttribute("status")]
|
||||
#if NET48
|
||||
public string Status { get; set; }
|
||||
#else
|
||||
public string? Status { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlAttribute("filter")]
|
||||
#if NET48
|
||||
public string Filter { get; set; }
|
||||
#else
|
||||
public string? Filter { get; set; }
|
||||
#endif
|
||||
|
||||
#region DO NOT USE IN PRODUCTION
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyAttribute]
|
||||
#if NET48
|
||||
public XmlAttribute[] ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
#else
|
||||
public XmlAttribute[]? ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyElement]
|
||||
#if NET48
|
||||
public object[] ADDITIONAL_ELEMENTS { get; set; }
|
||||
#else
|
||||
public object[]? ADDITIONAL_ELEMENTS { get; set; }
|
||||
#endif
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
128
Logiqx/Trurip.cs
128
Logiqx/Trurip.cs
@@ -1,128 +0,0 @@
|
||||
using System.Xml;
|
||||
using System.Xml.Serialization;
|
||||
|
||||
namespace SabreTools.Models.Logiqx
|
||||
{
|
||||
[XmlRoot("trurip")]
|
||||
public class Trurip
|
||||
{
|
||||
[XmlElement("titleid")]
|
||||
#if NET48
|
||||
public string TitleID { get; set; }
|
||||
#else
|
||||
public string? TitleID { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlElement("publisher")]
|
||||
#if NET48
|
||||
public string Publisher { get; set; }
|
||||
#else
|
||||
public string? Publisher { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlElement("developer")]
|
||||
#if NET48
|
||||
public string Developer { get; set; }
|
||||
#else
|
||||
public string? Developer { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlElement("year")]
|
||||
#if NET48
|
||||
public string Year { get; set; }
|
||||
#else
|
||||
public string? Year { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlElement("genre")]
|
||||
#if NET48
|
||||
public string Genre { get; set; }
|
||||
#else
|
||||
public string? Genre { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlElement("subgenre")]
|
||||
#if NET48
|
||||
public string Subgenre { get; set; }
|
||||
#else
|
||||
public string? Subgenre { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlElement("ratings")]
|
||||
#if NET48
|
||||
public string Ratings { get; set; }
|
||||
#else
|
||||
public string? Ratings { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlElement("score")]
|
||||
#if NET48
|
||||
public string Score { get; set; }
|
||||
#else
|
||||
public string? Score { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlElement("players")]
|
||||
#if NET48
|
||||
public string Players { get; set; }
|
||||
#else
|
||||
public string? Players { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>Boolean?</remarks>
|
||||
[XmlElement("enabled")]
|
||||
#if NET48
|
||||
public string Enabled { get; set; }
|
||||
#else
|
||||
public string? Enabled { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlElement("crc")]
|
||||
#if NET48
|
||||
public string CRC { get; set; }
|
||||
#else
|
||||
public string? CRC { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlElement("source")]
|
||||
#if NET48
|
||||
public string Source { get; set; }
|
||||
#else
|
||||
public string? Source { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlElement("cloneof")]
|
||||
#if NET48
|
||||
public string CloneOf { get; set; }
|
||||
#else
|
||||
public string? CloneOf { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlElement("relatedto")]
|
||||
#if NET48
|
||||
public string RelatedTo { get; set; }
|
||||
#else
|
||||
public string? RelatedTo { get; set; }
|
||||
#endif
|
||||
|
||||
#region DO NOT USE IN PRODUCTION
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyAttribute]
|
||||
#if NET48
|
||||
public XmlAttribute[] ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
#else
|
||||
public XmlAttribute[]? ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyElement]
|
||||
#if NET48
|
||||
public object[] ADDITIONAL_ELEMENTS { get; set; }
|
||||
#else
|
||||
public object[]? ADDITIONAL_ELEMENTS { get; set; }
|
||||
#endif
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -1,33 +0,0 @@
|
||||
namespace SabreTools.Models.N3DS
|
||||
{
|
||||
/// <see href="https://www.3dbrew.org/wiki/NCCH/Extended_Header#Access_Control_Info"/>
|
||||
public sealed class AccessControlInfo
|
||||
{
|
||||
/// <summary>
|
||||
/// ARM11 local system capabilities
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public ARM11LocalSystemCapabilities ARM11LocalSystemCapabilities { get; set; }
|
||||
#else
|
||||
public ARM11LocalSystemCapabilities? ARM11LocalSystemCapabilities { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// ARM11 kernel capabilities
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public ARM11KernelCapabilities ARM11KernelCapabilities { get; set; }
|
||||
#else
|
||||
public ARM11KernelCapabilities? ARM11KernelCapabilities { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// ARM9 access control
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public ARM9AccessControl ARM9AccessControl { get; set; }
|
||||
#else
|
||||
public ARM9AccessControl? ARM9AccessControl { get; set; }
|
||||
#endif
|
||||
}
|
||||
}
|
||||
@@ -1,81 +0,0 @@
|
||||
namespace SabreTools.Models.N3DS
|
||||
{
|
||||
/// <see href="https://www.3dbrew.org/wiki/NCSD#Card_Info_Header"/>
|
||||
public sealed class CardInfoHeader
|
||||
{
|
||||
/// <summary>
|
||||
/// CARD2: Writable Address In Media Units (For 'On-Chip' Savedata). CARD1: Always 0xFFFFFFFF.
|
||||
/// </summary>
|
||||
public uint WritableAddressMediaUnits { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Card Info Bitmask
|
||||
/// </summary>
|
||||
public uint CardInfoBitmask { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Reserved
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public byte[] Reserved1 { get; set; }
|
||||
#else
|
||||
public byte[]? Reserved1 { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Filled size of cartridge
|
||||
/// </summary>
|
||||
public uint FilledSize { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Reserved
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public byte[] Reserved2 { get; set; }
|
||||
#else
|
||||
public byte[]? Reserved2 { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Title version
|
||||
/// </summary>
|
||||
public ushort TitleVersion { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Card revision
|
||||
/// </summary>
|
||||
public ushort CardRevision { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Reserved
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public byte[] Reserved3 { get; set; }
|
||||
#else
|
||||
public byte[]? Reserved3 { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Title ID of CVer in included update partition
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public byte[] CVerTitleID { get; set; }
|
||||
#else
|
||||
public byte[]? CVerTitleID { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Version number of CVer in included update partition
|
||||
/// </summary>
|
||||
public ushort CVerVersionNumber { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Reserved
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public byte[] Reserved4 { get; set; }
|
||||
#else
|
||||
public byte[]? Reserved4 { get; set; }
|
||||
#endif
|
||||
}
|
||||
}
|
||||
@@ -1,51 +0,0 @@
|
||||
namespace SabreTools.Models.N3DS
|
||||
{
|
||||
/// <see href="https://www.3dbrew.org/wiki/NCSD#Development_Card_Info_Header_Extension"/>
|
||||
public sealed class DevelopmentCardInfoHeader
|
||||
{
|
||||
/// <summary>
|
||||
/// InitialData
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public InitialData InitialData { get; set; }
|
||||
#else
|
||||
public InitialData? InitialData { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// CardDeviceReserved1
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public byte[] CardDeviceReserved1 { get; set; }
|
||||
#else
|
||||
public byte[]? CardDeviceReserved1 { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// TitleKey
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public byte[] TitleKey { get; set; }
|
||||
#else
|
||||
public byte[]? TitleKey { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// CardDeviceReserved2
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public byte[] CardDeviceReserved2 { get; set; }
|
||||
#else
|
||||
public byte[]? CardDeviceReserved2 { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// TestData
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public TestData TestData { get; set; }
|
||||
#else
|
||||
public TestData? TestData { get; set; }
|
||||
#endif
|
||||
}
|
||||
}
|
||||
@@ -1,60 +0,0 @@
|
||||
namespace SabreTools.Models.N3DS
|
||||
{
|
||||
/// <see href="https://www.3dbrew.org/wiki/NCSD#InitialData"/>
|
||||
public sealed class InitialData
|
||||
{
|
||||
/// <summary>
|
||||
/// Card seed keyY (first u64 is Media ID (same as first NCCH partitionId))
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public byte[] CardSeedKeyY { get; set; }
|
||||
#else
|
||||
public byte[]? CardSeedKeyY { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Encrypted card seed (AES-CCM, keyslot 0x3B for retail cards, see CTRCARD_SECSEED)
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public byte[] EncryptedCardSeed { get; set; }
|
||||
#else
|
||||
public byte[]? EncryptedCardSeed { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Card seed AES-MAC
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public byte[] CardSeedAESMAC { get; set; }
|
||||
#else
|
||||
public byte[]? CardSeedAESMAC { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Card seed nonce
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public byte[] CardSeedNonce { get; set; }
|
||||
#else
|
||||
public byte[]? CardSeedNonce { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Reserved3
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public byte[] Reserved { get; set; }
|
||||
#else
|
||||
public byte[]? Reserved { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Copy of first NCCH header (excluding RSA signature)
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public NCCHHeader BackupHeader { get; set; }
|
||||
#else
|
||||
public NCCHHeader? BackupHeader { get; set; }
|
||||
#endif
|
||||
}
|
||||
}
|
||||
@@ -1,48 +0,0 @@
|
||||
namespace SabreTools.Models.N3DS
|
||||
{
|
||||
/// <see href="https://www.3dbrew.org/wiki/CIA#Meta"/>
|
||||
public sealed class MetaData
|
||||
{
|
||||
/// <summary>
|
||||
/// Title ID dependency list - Taken from the application's ExHeader
|
||||
/// </summary>
|
||||
/// TODO: Determine numeric format of each entry
|
||||
#if NET48
|
||||
public byte[] TitleIDDependencyList { get; set; }
|
||||
#else
|
||||
public byte[]? TitleIDDependencyList { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Reserved
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public byte[] Reserved1 { get; set; }
|
||||
#else
|
||||
public byte[]? Reserved1 { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Core Version
|
||||
/// </summary>
|
||||
public uint CoreVersion { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Reserved
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public byte[] Reserved2 { get; set; }
|
||||
#else
|
||||
public byte[]? Reserved2 { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Icon Data(.ICN) - Taken from the application's ExeFS
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public byte[] IconData { get; set; }
|
||||
#else
|
||||
public byte[]? IconData { get; set; }
|
||||
#endif
|
||||
}
|
||||
}
|
||||
@@ -1,98 +0,0 @@
|
||||
namespace SabreTools.Models.N3DS
|
||||
{
|
||||
/// <see href="https://www.3dbrew.org/wiki/NCCH/Extended_Header#System_Control_Info"/>
|
||||
public sealed class SystemControlInfo
|
||||
{
|
||||
/// <summary>
|
||||
/// Application title (default is "CtrApp")
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public string ApplicationTitle { get; set; }
|
||||
#else
|
||||
public string? ApplicationTitle { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Reserved
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public byte[] Reserved1 { get; set; }
|
||||
#else
|
||||
public byte[]? Reserved1 { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Flag (bit 0: CompressExefsCode, bit 1: SDApplication)
|
||||
/// </summary>
|
||||
public byte Flag { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Remaster version
|
||||
/// </summary>
|
||||
public ushort RemasterVersion { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Text code set info
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public CodeSetInfo TextCodeSetInfo { get; set; }
|
||||
#else
|
||||
public CodeSetInfo? TextCodeSetInfo { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Stack size
|
||||
/// </summary>
|
||||
public uint StackSize { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Read-only code set info
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public CodeSetInfo ReadOnlyCodeSetInfo { get; set; }
|
||||
#else
|
||||
public CodeSetInfo? ReadOnlyCodeSetInfo { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Reserved
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public byte[] Reserved2 { get; set; }
|
||||
#else
|
||||
public byte[]? Reserved2 { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Data code set info
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public CodeSetInfo DataCodeSetInfo { get; set; }
|
||||
#else
|
||||
public CodeSetInfo? DataCodeSetInfo { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// BSS size
|
||||
/// </summary>
|
||||
public uint BSSSize { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Dependency module (program ID) list
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public ulong[] DependencyModuleList { get; set; }
|
||||
#else
|
||||
public ulong[]? DependencyModuleList { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// SystemInfo
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public SystemInfo SystemInfo { get; set; }
|
||||
#else
|
||||
public SystemInfo? SystemInfo { get; set; }
|
||||
#endif
|
||||
}
|
||||
}
|
||||
@@ -1,95 +0,0 @@
|
||||
namespace SabreTools.Models.N3DS
|
||||
{
|
||||
/// <summary>
|
||||
/// The test data is the same one encountered in development DS/DSi cartridges.
|
||||
/// </summary>
|
||||
/// <see href="https://www.3dbrew.org/wiki/NCSD#TestData"/>
|
||||
public sealed class TestData
|
||||
{
|
||||
/// <summary>
|
||||
/// The bytes FF 00 FF 00 AA 55 AA 55.
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public byte[] Signature { get; set; }
|
||||
#else
|
||||
public byte[]? Signature { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// An ascending byte sequence equal to the offset mod 256 (08 09 0A ... FE FF 00 01 ... FF).
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public byte[] AscendingByteSequence { get; set; }
|
||||
#else
|
||||
public byte[]? AscendingByteSequence { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// A descending byte sequence equal to 255 minus the offset mod 256 (FF FE FD ... 00 FF DE ... 00).
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public byte[] DescendingByteSequence { get; set; }
|
||||
#else
|
||||
public byte[]? DescendingByteSequence { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Filled with 00 (0b00000000) bytes.
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public byte[] Filled00 { get; set; }
|
||||
#else
|
||||
public byte[]? Filled00 { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Filled with FF (0b11111111) bytes.
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public byte[] FilledFF { get; set; }
|
||||
#else
|
||||
public byte[]? FilledFF { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Filled with 0F (0b00001111) bytes.
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public byte[] Filled0F { get; set; }
|
||||
#else
|
||||
public byte[]? Filled0F { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Filled with F0 (0b11110000) bytes.
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public byte[] FilledF0 { get; set; }
|
||||
#else
|
||||
public byte[]? FilledF0 { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Filled with 55 (0b01010101) bytes.
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public byte[] Filled55 { get; set; }
|
||||
#else
|
||||
public byte[]? Filled55 { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Filled with AA (0b10101010) bytes.
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public byte[] FilledAA { get; set; }
|
||||
#else
|
||||
public byte[]? FilledAA { get; set; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// The final byte is 00 (0b00000000).
|
||||
/// </summary>
|
||||
public byte FinalByte { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -1,36 +0,0 @@
|
||||
using System.Xml;
|
||||
using System.Xml.Serialization;
|
||||
|
||||
namespace SabreTools.Models.OfflineList
|
||||
{
|
||||
[XmlRoot("canOpen")]
|
||||
public class CanOpen
|
||||
{
|
||||
[XmlElement("extension")]
|
||||
#if NET48
|
||||
public string[] Extension { get; set; }
|
||||
#else
|
||||
public string[]? Extension { get; set; }
|
||||
#endif
|
||||
|
||||
#region DO NOT USE IN PRODUCTION
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyAttribute]
|
||||
#if NET48
|
||||
public XmlAttribute[] ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
#else
|
||||
public XmlAttribute[]? ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyElement]
|
||||
#if NET48
|
||||
public object[] ADDITIONAL_ELEMENTS { get; set; }
|
||||
#else
|
||||
public object[]? ADDITIONAL_ELEMENTS { get; set; }
|
||||
#endif
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -1,108 +0,0 @@
|
||||
using System.Xml;
|
||||
using System.Xml.Serialization;
|
||||
|
||||
namespace SabreTools.Models.OfflineList
|
||||
{
|
||||
[XmlRoot("configuration")]
|
||||
public class Configuration
|
||||
{
|
||||
[XmlElement("datName")]
|
||||
#if NET48
|
||||
public string DatName { get; set; }
|
||||
#else
|
||||
public string? DatName { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlElement("imFolder")]
|
||||
#if NET48
|
||||
public string ImFolder { get; set; }
|
||||
#else
|
||||
public string? ImFolder { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlElement("datVersion")]
|
||||
#if NET48
|
||||
public string DatVersion { get; set; }
|
||||
#else
|
||||
public string? DatVersion { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlElement("system")]
|
||||
#if NET48
|
||||
public string System { get; set; }
|
||||
#else
|
||||
public string? System { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>Numeric?</remarks>
|
||||
[XmlElement("screenshotsWidth")]
|
||||
#if NET48
|
||||
public string ScreenshotsWidth { get; set; }
|
||||
#else
|
||||
public string? ScreenshotsWidth { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>Numeric?</remarks>
|
||||
[XmlElement("screenshotsHeight")]
|
||||
#if NET48
|
||||
public string ScreenshotsHeight { get; set; }
|
||||
#else
|
||||
public string? ScreenshotsHeight { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlElement("infos")]
|
||||
#if NET48
|
||||
public Infos Infos { get; set; }
|
||||
#else
|
||||
public Infos? Infos { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlElement("canOpen")]
|
||||
#if NET48
|
||||
public CanOpen CanOpen { get; set; }
|
||||
#else
|
||||
public CanOpen? CanOpen { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlElement("newDat")]
|
||||
#if NET48
|
||||
public NewDat NewDat { get; set; }
|
||||
#else
|
||||
public NewDat? NewDat { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlElement("search")]
|
||||
#if NET48
|
||||
public Search Search { get; set; }
|
||||
#else
|
||||
public Search? Search { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlElement("romTitle")]
|
||||
#if NET48
|
||||
public string RomTitle { get; set; }
|
||||
#else
|
||||
public string? RomTitle { get; set; }
|
||||
#endif
|
||||
|
||||
#region DO NOT USE IN PRODUCTION
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyAttribute]
|
||||
#if NET48
|
||||
public XmlAttribute[] ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
#else
|
||||
public XmlAttribute[]? ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyElement]
|
||||
#if NET48
|
||||
public object[] ADDITIONAL_ELEMENTS { get; set; }
|
||||
#else
|
||||
public object[]? ADDITIONAL_ELEMENTS { get; set; }
|
||||
#endif
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -1,57 +0,0 @@
|
||||
using System.Xml;
|
||||
using System.Xml.Serialization;
|
||||
|
||||
namespace SabreTools.Models.OfflineList
|
||||
{
|
||||
[XmlRoot("dat")]
|
||||
public class Dat
|
||||
{
|
||||
[XmlAttribute(Namespace = "http://www.w3.org/2001/XMLSchema-instance", AttributeName = "noNamespaceSchemaLocation")]
|
||||
#if NET48
|
||||
public string NoNamespaceSchemaLocation { get; set; }
|
||||
#else
|
||||
public string? NoNamespaceSchemaLocation { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlElement("configuration")]
|
||||
#if NET48
|
||||
public Configuration Configuration { get; set; }
|
||||
#else
|
||||
public Configuration? Configuration { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlElement("games")]
|
||||
#if NET48
|
||||
public Games Games { get; set; }
|
||||
#else
|
||||
public Games? Games { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlElement("gui")]
|
||||
#if NET48
|
||||
public GUI GUI { get; set; }
|
||||
#else
|
||||
public GUI? GUI { get; set; }
|
||||
#endif
|
||||
|
||||
#region DO NOT USE IN PRODUCTION
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyAttribute]
|
||||
#if NET48
|
||||
public XmlAttribute[] ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
#else
|
||||
public XmlAttribute[]? ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyElement]
|
||||
#if NET48
|
||||
public object[] ADDITIONAL_ELEMENTS { get; set; }
|
||||
#else
|
||||
public object[]? ADDITIONAL_ELEMENTS { get; set; }
|
||||
#endif
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -1,43 +0,0 @@
|
||||
using System.Xml;
|
||||
using System.Xml.Serialization;
|
||||
|
||||
namespace SabreTools.Models.OfflineList
|
||||
{
|
||||
[XmlRoot("datURL")]
|
||||
public class DatUrl
|
||||
{
|
||||
[XmlAttribute("fileName")]
|
||||
#if NET48
|
||||
public string FileName { get; set; }
|
||||
#else
|
||||
public string? FileName { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlText]
|
||||
#if NET48
|
||||
public string Content { get; set; }
|
||||
#else
|
||||
public string? Content { get; set; }
|
||||
#endif
|
||||
|
||||
#region DO NOT USE IN PRODUCTION
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyAttribute]
|
||||
#if NET48
|
||||
public XmlAttribute[] ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
#else
|
||||
public XmlAttribute[]? ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyElement]
|
||||
#if NET48
|
||||
public object[] ADDITIONAL_ELEMENTS { get; set; }
|
||||
#else
|
||||
public object[]? ADDITIONAL_ELEMENTS { get; set; }
|
||||
#endif
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -1,43 +0,0 @@
|
||||
using System.Xml;
|
||||
using System.Xml.Serialization;
|
||||
|
||||
namespace SabreTools.Models.OfflineList
|
||||
{
|
||||
[XmlRoot("romCRC")]
|
||||
public class FileRomCRC
|
||||
{
|
||||
[XmlAttribute("extension")]
|
||||
#if NET48
|
||||
public string Extension { get; set; }
|
||||
#else
|
||||
public string? Extension { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlText]
|
||||
#if NET48
|
||||
public string Content { get; set; }
|
||||
#else
|
||||
public string? Content { get; set; }
|
||||
#endif
|
||||
|
||||
#region DO NOT USE IN PRODUCTION
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyAttribute]
|
||||
#if NET48
|
||||
public XmlAttribute[] ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
#else
|
||||
public XmlAttribute[]? ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyElement]
|
||||
#if NET48
|
||||
public object[] ADDITIONAL_ELEMENTS { get; set; }
|
||||
#else
|
||||
public object[]? ADDITIONAL_ELEMENTS { get; set; }
|
||||
#endif
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -1,36 +0,0 @@
|
||||
using System.Xml;
|
||||
using System.Xml.Serialization;
|
||||
|
||||
namespace SabreTools.Models.OfflineList
|
||||
{
|
||||
[XmlRoot("files")]
|
||||
public class Files
|
||||
{
|
||||
[XmlElement("romCRC")]
|
||||
#if NET48
|
||||
public FileRomCRC[] RomCRC { get; set; }
|
||||
#else
|
||||
public FileRomCRC[]? RomCRC { get; set; }
|
||||
#endif
|
||||
|
||||
#region DO NOT USE IN PRODUCTION
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyAttribute]
|
||||
#if NET48
|
||||
public XmlAttribute[] ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
#else
|
||||
public XmlAttribute[]? ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyElement]
|
||||
#if NET48
|
||||
public object[] ADDITIONAL_ELEMENTS { get; set; }
|
||||
#else
|
||||
public object[]? ADDITIONAL_ELEMENTS { get; set; }
|
||||
#endif
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -1,51 +0,0 @@
|
||||
using System.Xml;
|
||||
using System.Xml.Serialization;
|
||||
|
||||
namespace SabreTools.Models.OfflineList
|
||||
{
|
||||
[XmlRoot("find")]
|
||||
public class Find
|
||||
{
|
||||
[XmlAttribute("operation")]
|
||||
#if NET48
|
||||
public string Operation { get; set; }
|
||||
#else
|
||||
public string? Operation { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>Numeric?</remarks>
|
||||
[XmlAttribute("value")]
|
||||
#if NET48
|
||||
public string Value { get; set; }
|
||||
#else
|
||||
public string? Value { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlText]
|
||||
#if NET48
|
||||
public string Content { get; set; }
|
||||
#else
|
||||
public string? Content { get; set; }
|
||||
#endif
|
||||
|
||||
#region DO NOT USE IN PRODUCTION
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyAttribute]
|
||||
#if NET48
|
||||
public XmlAttribute[] ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
#else
|
||||
public XmlAttribute[]? ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyElement]
|
||||
#if NET48
|
||||
public object[] ADDITIONAL_ELEMENTS { get; set; }
|
||||
#else
|
||||
public object[]? ADDITIONAL_ELEMENTS { get; set; }
|
||||
#endif
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -1,36 +0,0 @@
|
||||
using System.Xml;
|
||||
using System.Xml.Serialization;
|
||||
|
||||
namespace SabreTools.Models.OfflineList
|
||||
{
|
||||
[XmlRoot("gui")]
|
||||
public class GUI
|
||||
{
|
||||
[XmlElement("images")]
|
||||
#if NET48
|
||||
public Images Images { get; set; }
|
||||
#else
|
||||
public Images? Images { get; set; }
|
||||
#endif
|
||||
|
||||
#region DO NOT USE IN PRODUCTION
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyAttribute]
|
||||
#if NET48
|
||||
public XmlAttribute[] ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
#else
|
||||
public XmlAttribute[]? ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyElement]
|
||||
#if NET48
|
||||
public object[] ADDITIONAL_ELEMENTS { get; set; }
|
||||
#else
|
||||
public object[]? ADDITIONAL_ELEMENTS { get; set; }
|
||||
#endif
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -1,128 +0,0 @@
|
||||
using System.Xml;
|
||||
using System.Xml.Serialization;
|
||||
|
||||
namespace SabreTools.Models.OfflineList
|
||||
{
|
||||
[XmlRoot("game")]
|
||||
public class Game
|
||||
{
|
||||
[XmlElement("imageNumber")]
|
||||
#if NET48
|
||||
public string ImageNumber { get; set; }
|
||||
#else
|
||||
public string? ImageNumber { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlElement("releaseNumber")]
|
||||
#if NET48
|
||||
public string ReleaseNumber { get; set; }
|
||||
#else
|
||||
public string? ReleaseNumber { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlElement("title")]
|
||||
#if NET48
|
||||
public string Title { get; set; }
|
||||
#else
|
||||
public string? Title { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlElement("saveType")]
|
||||
#if NET48
|
||||
public string SaveType { get; set; }
|
||||
#else
|
||||
public string? SaveType { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>Numeric</remarks>
|
||||
[XmlElement("romSize")]
|
||||
#if NET48
|
||||
public string RomSize { get; set; }
|
||||
#else
|
||||
public string? RomSize { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlElement("publisher")]
|
||||
#if NET48
|
||||
public string Publisher { get; set; }
|
||||
#else
|
||||
public string? Publisher { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlElement("location")]
|
||||
#if NET48
|
||||
public string Location { get; set; }
|
||||
#else
|
||||
public string? Location { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlElement("sourceRom")]
|
||||
#if NET48
|
||||
public string SourceRom { get; set; }
|
||||
#else
|
||||
public string? SourceRom { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlElement("language")]
|
||||
#if NET48
|
||||
public string Language { get; set; }
|
||||
#else
|
||||
public string? Language { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlElement("files")]
|
||||
#if NET48
|
||||
public Files Files { get; set; }
|
||||
#else
|
||||
public Files? Files { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlElement("im1CRC")]
|
||||
#if NET48
|
||||
public string Im1CRC { get; set; }
|
||||
#else
|
||||
public string? Im1CRC { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlElement("im2CRC")]
|
||||
#if NET48
|
||||
public string Im2CRC { get; set; }
|
||||
#else
|
||||
public string? Im2CRC { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlElement("comment")]
|
||||
#if NET48
|
||||
public string Comment { get; set; }
|
||||
#else
|
||||
public string? Comment { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlElement("duplicateID")]
|
||||
#if NET48
|
||||
public string DuplicateID { get; set; }
|
||||
#else
|
||||
public string? DuplicateID { get; set; }
|
||||
#endif
|
||||
|
||||
#region DO NOT USE IN PRODUCTION
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyAttribute]
|
||||
#if NET48
|
||||
public XmlAttribute[] ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
#else
|
||||
public XmlAttribute[]? ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyElement]
|
||||
#if NET48
|
||||
public object[] ADDITIONAL_ELEMENTS { get; set; }
|
||||
#else
|
||||
public object[]? ADDITIONAL_ELEMENTS { get; set; }
|
||||
#endif
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -1,36 +0,0 @@
|
||||
using System.Xml;
|
||||
using System.Xml.Serialization;
|
||||
|
||||
namespace SabreTools.Models.OfflineList
|
||||
{
|
||||
[XmlRoot("games")]
|
||||
public class Games
|
||||
{
|
||||
[XmlElement("game")]
|
||||
#if NET48
|
||||
public Game[] Game { get; set; }
|
||||
#else
|
||||
public Game[]? Game { get; set; }
|
||||
#endif
|
||||
|
||||
#region DO NOT USE IN PRODUCTION
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyAttribute]
|
||||
#if NET48
|
||||
public XmlAttribute[] ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
#else
|
||||
public XmlAttribute[]? ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyElement]
|
||||
#if NET48
|
||||
public object[] ADDITIONAL_ELEMENTS { get; set; }
|
||||
#else
|
||||
public object[]? ADDITIONAL_ELEMENTS { get; set; }
|
||||
#endif
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -1,57 +0,0 @@
|
||||
using System.Xml;
|
||||
using System.Xml.Serialization;
|
||||
|
||||
namespace SabreTools.Models.OfflineList
|
||||
{
|
||||
[XmlRoot("image")]
|
||||
public class Image
|
||||
{
|
||||
[XmlAttribute("x")]
|
||||
#if NET48
|
||||
public string X { get; set; }
|
||||
#else
|
||||
public string? X { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlAttribute("y")]
|
||||
#if NET48
|
||||
public string Y { get; set; }
|
||||
#else
|
||||
public string? Y { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlAttribute("width")]
|
||||
#if NET48
|
||||
public string Width { get; set; }
|
||||
#else
|
||||
public string? Width { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlAttribute("height")]
|
||||
#if NET48
|
||||
public string Height { get; set; }
|
||||
#else
|
||||
public string? Height { get; set; }
|
||||
#endif
|
||||
|
||||
#region DO NOT USE IN PRODUCTION
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyAttribute]
|
||||
#if NET48
|
||||
public XmlAttribute[] ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
#else
|
||||
public XmlAttribute[]? ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyElement]
|
||||
#if NET48
|
||||
public object[] ADDITIONAL_ELEMENTS { get; set; }
|
||||
#else
|
||||
public object[]? ADDITIONAL_ELEMENTS { get; set; }
|
||||
#endif
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -1,50 +0,0 @@
|
||||
using System.Xml;
|
||||
using System.Xml.Serialization;
|
||||
|
||||
namespace SabreTools.Models.OfflineList
|
||||
{
|
||||
[XmlRoot("images")]
|
||||
public class Images
|
||||
{
|
||||
[XmlAttribute("width")]
|
||||
#if NET48
|
||||
public string Width { get; set; }
|
||||
#else
|
||||
public string? Width { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlAttribute("height")]
|
||||
#if NET48
|
||||
public string Height { get; set; }
|
||||
#else
|
||||
public string? Height { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlElement("image")]
|
||||
#if NET48
|
||||
public Image[] Image { get; set; }
|
||||
#else
|
||||
public Image[]? Image { get; set; }
|
||||
#endif
|
||||
|
||||
#region DO NOT USE IN PRODUCTION
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyAttribute]
|
||||
#if NET48
|
||||
public XmlAttribute[] ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
#else
|
||||
public XmlAttribute[]? ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyElement]
|
||||
#if NET48
|
||||
public object[] ADDITIONAL_ELEMENTS { get; set; }
|
||||
#else
|
||||
public object[]? ADDITIONAL_ELEMENTS { get; set; }
|
||||
#endif
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -1,120 +0,0 @@
|
||||
using System.Xml;
|
||||
using System.Xml.Serialization;
|
||||
|
||||
namespace SabreTools.Models.OfflineList
|
||||
{
|
||||
[XmlRoot("infos")]
|
||||
public class Infos
|
||||
{
|
||||
[XmlElement("title")]
|
||||
#if NET48
|
||||
public Title Title { get; set; }
|
||||
#else
|
||||
public Title? Title { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlElement("location")]
|
||||
#if NET48
|
||||
public Location Location { get; set; }
|
||||
#else
|
||||
public Location? Location { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlElement("publisher")]
|
||||
#if NET48
|
||||
public Publisher Publisher { get; set; }
|
||||
#else
|
||||
public Publisher? Publisher { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlElement("sourceRom")]
|
||||
#if NET48
|
||||
public SourceRom SourceRom { get; set; }
|
||||
#else
|
||||
public SourceRom? SourceRom { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlElement("saveType")]
|
||||
#if NET48
|
||||
public SaveType SaveType { get; set; }
|
||||
#else
|
||||
public SaveType? SaveType { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlElement("romSize")]
|
||||
#if NET48
|
||||
public RomSize RomSize { get; set; }
|
||||
#else
|
||||
public RomSize? RomSize { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlElement("releaseNumber")]
|
||||
#if NET48
|
||||
public ReleaseNumber ReleaseNumber { get; set; }
|
||||
#else
|
||||
public ReleaseNumber? ReleaseNumber { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlElement("languageNumber")]
|
||||
#if NET48
|
||||
public LanguageNumber LanguageNumber { get; set; }
|
||||
#else
|
||||
public LanguageNumber? LanguageNumber { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlElement("comment")]
|
||||
#if NET48
|
||||
public Comment Comment { get; set; }
|
||||
#else
|
||||
public Comment? Comment { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlElement("romCRC")]
|
||||
#if NET48
|
||||
public RomCRC RomCRC { get; set; }
|
||||
#else
|
||||
public RomCRC? RomCRC { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlElement("im1CRC")]
|
||||
#if NET48
|
||||
public Im1CRC Im1CRC { get; set; }
|
||||
#else
|
||||
public Im1CRC? Im1CRC { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlElement("im2CRC")]
|
||||
#if NET48
|
||||
public Im2CRC Im2CRC { get; set; }
|
||||
#else
|
||||
public Im2CRC? Im2CRC { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlElement("languages")]
|
||||
#if NET48
|
||||
public Languages Languages { get; set; }
|
||||
#else
|
||||
public Languages? Languages { get; set; }
|
||||
#endif
|
||||
|
||||
#region DO NOT USE IN PRODUCTION
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyAttribute]
|
||||
#if NET48
|
||||
public XmlAttribute[] ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
#else
|
||||
public XmlAttribute[]? ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyElement]
|
||||
#if NET48
|
||||
public object[] ADDITIONAL_ELEMENTS { get; set; }
|
||||
#else
|
||||
public object[]? ADDITIONAL_ELEMENTS { get; set; }
|
||||
#endif
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -1,50 +0,0 @@
|
||||
using System.Xml;
|
||||
using System.Xml.Serialization;
|
||||
|
||||
namespace SabreTools.Models.OfflineList
|
||||
{
|
||||
[XmlRoot("newDat")]
|
||||
public class NewDat
|
||||
{
|
||||
[XmlElement("datVersionURL")]
|
||||
#if NET48
|
||||
public string DatVersionUrl { get; set; }
|
||||
#else
|
||||
public string? DatVersionUrl { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlElement("datURL")]
|
||||
#if NET48
|
||||
public DatUrl DatUrl { get; set; }
|
||||
#else
|
||||
public DatUrl? DatUrl { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlElement("imURL")]
|
||||
#if NET48
|
||||
public string ImUrl { get; set; }
|
||||
#else
|
||||
public string? ImUrl { get; set; }
|
||||
#endif
|
||||
|
||||
#region DO NOT USE IN PRODUCTION
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyAttribute]
|
||||
#if NET48
|
||||
public XmlAttribute[] ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
#else
|
||||
public XmlAttribute[]? ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyElement]
|
||||
#if NET48
|
||||
public object[] ADDITIONAL_ELEMENTS { get; set; }
|
||||
#else
|
||||
public object[]? ADDITIONAL_ELEMENTS { get; set; }
|
||||
#endif
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -1,36 +0,0 @@
|
||||
using System.Xml;
|
||||
using System.Xml.Serialization;
|
||||
|
||||
namespace SabreTools.Models.OfflineList
|
||||
{
|
||||
[XmlRoot("search")]
|
||||
public class Search
|
||||
{
|
||||
[XmlElement("to")]
|
||||
#if NET48
|
||||
public To[] To { get; set; }
|
||||
#else
|
||||
public To[]? To { get; set; }
|
||||
#endif
|
||||
|
||||
#region DO NOT USE IN PRODUCTION
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyAttribute]
|
||||
#if NET48
|
||||
public XmlAttribute[] ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
#else
|
||||
public XmlAttribute[]? ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyElement]
|
||||
#if NET48
|
||||
public object[] ADDITIONAL_ELEMENTS { get; set; }
|
||||
#else
|
||||
public object[]? ADDITIONAL_ELEMENTS { get; set; }
|
||||
#endif
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -1,59 +0,0 @@
|
||||
using System.Xml;
|
||||
using System.Xml.Serialization;
|
||||
|
||||
namespace SabreTools.Models.OfflineList
|
||||
{
|
||||
[XmlRoot("to")]
|
||||
public class To
|
||||
{
|
||||
[XmlAttribute("value")]
|
||||
#if NET48
|
||||
public string Value { get; set; }
|
||||
#else
|
||||
public string? Value { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>Boolean</remarks>
|
||||
[XmlAttribute("default")]
|
||||
#if NET48
|
||||
public string Default { get; set; }
|
||||
#else
|
||||
public string? Default { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>Boolean</remarks>
|
||||
[XmlAttribute("auto")]
|
||||
#if NET48
|
||||
public string Auto { get; set; }
|
||||
#else
|
||||
public string? Auto { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlElement("find")]
|
||||
#if NET48
|
||||
public Find[] Find { get; set; }
|
||||
#else
|
||||
public Find[]? Find { get; set; }
|
||||
#endif
|
||||
|
||||
#region DO NOT USE IN PRODUCTION
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyAttribute]
|
||||
#if NET48
|
||||
public XmlAttribute[] ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
#else
|
||||
public XmlAttribute[]? ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyElement]
|
||||
#if NET48
|
||||
public object[] ADDITIONAL_ELEMENTS { get; set; }
|
||||
#else
|
||||
public object[]? ADDITIONAL_ELEMENTS { get; set; }
|
||||
#endif
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -1,45 +0,0 @@
|
||||
using System.Xml;
|
||||
using System.Xml.Serialization;
|
||||
|
||||
namespace SabreTools.Models.OpenMSX
|
||||
{
|
||||
[XmlRoot("dump")]
|
||||
public class Dump
|
||||
{
|
||||
[XmlElement("original")]
|
||||
#if NET48
|
||||
public Original Original { get; set; }
|
||||
#else
|
||||
public Original? Original { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlElement("rom", typeof(Rom))]
|
||||
[XmlElement("megarom", typeof(MegaRom))]
|
||||
[XmlElement("sccpluscart", typeof(SCCPlusCart))]
|
||||
#if NET48
|
||||
public RomBase Rom { get; set; }
|
||||
#else
|
||||
public RomBase? Rom { get; set; }
|
||||
#endif
|
||||
|
||||
#region DO NOT USE IN PRODUCTION
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyAttribute]
|
||||
#if NET48
|
||||
public XmlAttribute[] ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
#else
|
||||
public XmlAttribute[]? ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyElement]
|
||||
#if NET48
|
||||
public object[] ADDITIONAL_ELEMENTS { get; set; }
|
||||
#else
|
||||
public object[]? ADDITIONAL_ELEMENTS { get; set; }
|
||||
#endif
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -1,44 +0,0 @@
|
||||
using System.Xml;
|
||||
using System.Xml.Serialization;
|
||||
|
||||
namespace SabreTools.Models.OpenMSX
|
||||
{
|
||||
[XmlRoot("original")]
|
||||
public class Original
|
||||
{
|
||||
/// <remarks>Boolean?</remarks>
|
||||
[XmlAttribute("value")]
|
||||
#if NET48
|
||||
public string Value { get; set; }
|
||||
#else
|
||||
public string? Value { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlText]
|
||||
#if NET48
|
||||
public string Content { get; set; }
|
||||
#else
|
||||
public string? Content { get; set; }
|
||||
#endif
|
||||
|
||||
#region DO NOT USE IN PRODUCTION
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyAttribute]
|
||||
#if NET48
|
||||
public XmlAttribute[] ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
#else
|
||||
public XmlAttribute[]? ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyElement]
|
||||
#if NET48
|
||||
public object[] ADDITIONAL_ELEMENTS { get; set; }
|
||||
#else
|
||||
public object[]? ADDITIONAL_ELEMENTS { get; set; }
|
||||
#endif
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -1,60 +0,0 @@
|
||||
using System.Xml;
|
||||
using System.Xml.Serialization;
|
||||
|
||||
namespace SabreTools.Models.OpenMSX
|
||||
{
|
||||
/// <summary>
|
||||
/// Base class to unify the various rom types
|
||||
/// </summary>
|
||||
public abstract class RomBase
|
||||
{
|
||||
[XmlElement("start")]
|
||||
#if NET48
|
||||
public string Start { get; set; }
|
||||
#else
|
||||
public string? Start { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlElement("type")]
|
||||
#if NET48
|
||||
public string Type { get; set; }
|
||||
#else
|
||||
public string? Type { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>SHA-1 hash</remarks>
|
||||
[XmlElement("hash")]
|
||||
#if NET48
|
||||
public string Hash { get; set; }
|
||||
#else
|
||||
public string? Hash { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlElement("remark")]
|
||||
#if NET48
|
||||
public string Remark { get; set; }
|
||||
#else
|
||||
public string? Remark { get; set; }
|
||||
#endif
|
||||
|
||||
#region DO NOT USE IN PRODUCTION
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyAttribute]
|
||||
#if NET48
|
||||
public XmlAttribute[] ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
#else
|
||||
public XmlAttribute[]? ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyElement]
|
||||
#if NET48
|
||||
public object[] ADDITIONAL_ELEMENTS { get; set; }
|
||||
#else
|
||||
public object[]? ADDITIONAL_ELEMENTS { get; set; }
|
||||
#endif
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -1,83 +0,0 @@
|
||||
using System.Xml;
|
||||
using System.Xml.Serialization;
|
||||
|
||||
namespace SabreTools.Models.OpenMSX
|
||||
{
|
||||
[XmlRoot("software")]
|
||||
public class Software
|
||||
{
|
||||
[Required]
|
||||
[XmlElement("title")]
|
||||
#if NET48
|
||||
public string Title { get; set; }
|
||||
#else
|
||||
public string? Title { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlElement("genmsxid")]
|
||||
#if NET48
|
||||
public string GenMSXID { get; set; }
|
||||
#else
|
||||
public string? GenMSXID { get; set; }
|
||||
#endif
|
||||
|
||||
[Required]
|
||||
[XmlElement("system")]
|
||||
#if NET48
|
||||
public string System { get; set; }
|
||||
#else
|
||||
public string? System { get; set; }
|
||||
#endif
|
||||
|
||||
[Required]
|
||||
[XmlElement("company")]
|
||||
#if NET48
|
||||
public string Company { get; set; }
|
||||
#else
|
||||
public string? Company { get; set; }
|
||||
#endif
|
||||
|
||||
[Required]
|
||||
[XmlElement("year")]
|
||||
#if NET48
|
||||
public string Year { get; set; }
|
||||
#else
|
||||
public string? Year { get; set; }
|
||||
#endif
|
||||
|
||||
[Required]
|
||||
[XmlElement("country")]
|
||||
#if NET48
|
||||
public string Country { get; set; }
|
||||
#else
|
||||
public string? Country { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlElement("dump")]
|
||||
#if NET48
|
||||
public Dump[] Dump { get; set; }
|
||||
#else
|
||||
public Dump[]? Dump { get; set; }
|
||||
#endif
|
||||
|
||||
#region DO NOT USE IN PRODUCTION
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyAttribute]
|
||||
#if NET48
|
||||
public XmlAttribute[] ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
#else
|
||||
public XmlAttribute[]? ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyElement]
|
||||
#if NET48
|
||||
public object[] ADDITIONAL_ELEMENTS { get; set; }
|
||||
#else
|
||||
public object[]? ADDITIONAL_ELEMENTS { get; set; }
|
||||
#endif
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -1,43 +0,0 @@
|
||||
using System.Xml;
|
||||
using System.Xml.Serialization;
|
||||
|
||||
namespace SabreTools.Models.OpenMSX
|
||||
{
|
||||
[XmlRoot("softwaredb")]
|
||||
public class SoftwareDb
|
||||
{
|
||||
[XmlAttribute("timestamp")]
|
||||
#if NET48
|
||||
public string Timestamp { get; set; }
|
||||
#else
|
||||
public string? Timestamp { get; set; }
|
||||
#endif
|
||||
|
||||
[XmlElement("software")]
|
||||
#if NET48
|
||||
public Software[] Software { get; set; }
|
||||
#else
|
||||
public Software[]? Software { get; set; }
|
||||
#endif
|
||||
|
||||
#region DO NOT USE IN PRODUCTION
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyAttribute]
|
||||
#if NET48
|
||||
public XmlAttribute[] ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
#else
|
||||
public XmlAttribute[]? ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyElement]
|
||||
#if NET48
|
||||
public object[] ADDITIONAL_ELEMENTS { get; set; }
|
||||
#else
|
||||
public object[]? ADDITIONAL_ELEMENTS { get; set; }
|
||||
#endif
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -1,70 +0,0 @@
|
||||
namespace SabreTools.Models.PortableExecutable
|
||||
{
|
||||
/// <summary>
|
||||
/// Contains information about each item in a menu resource that does not open a menu
|
||||
/// or a submenu. The structure definition provided here is for explanation only; it
|
||||
/// is not present in any standard header file.
|
||||
///
|
||||
/// Contains information about the menu items in a menu resource that open a menu
|
||||
/// or a submenu. The structure definition provided here is for explanation only;
|
||||
/// it is not present in any standard header file.
|
||||
/// </summary>
|
||||
/// <see href="https://learn.microsoft.com/en-us/windows/win32/menurc/normalmenuitem"/>
|
||||
/// <see href="https://learn.microsoft.com/en-us/windows/win32/menurc/popupmenuitem"/>
|
||||
public sealed class MenuItem
|
||||
{
|
||||
#region NORMALMENUITEM
|
||||
|
||||
/// <summary>
|
||||
/// The type of menu item.
|
||||
/// </summary>
|
||||
public MenuFlags NormalResInfo { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// A null-terminated Unicode string that contains the text for this menu item.
|
||||
/// There is no fixed limit on the size of this string.
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public string NormalMenuText { get; set; }
|
||||
#else
|
||||
public string? NormalMenuText { get; set; }
|
||||
#endif
|
||||
|
||||
#endregion
|
||||
|
||||
#region POPUPMENUITEM
|
||||
|
||||
/// <summary>
|
||||
/// Describes the menu item.
|
||||
/// </summary>
|
||||
public MenuFlags PopupItemType { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Describes the menu item.
|
||||
/// </summary>
|
||||
public MenuFlags PopupState { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// A numeric expression that identifies the menu item that is passed in the
|
||||
/// WM_COMMAND message.
|
||||
/// </summary>
|
||||
public uint PopupID { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// A set of bit flags that specify the type of menu item.
|
||||
/// </summary>
|
||||
public MenuFlags PopupResInfo { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// A null-terminated Unicode string that contains the text for this menu item.
|
||||
/// There is no fixed limit on the size of this string.
|
||||
/// </summary>
|
||||
#if NET48
|
||||
public string PopupMenuText { get; set; }
|
||||
#else
|
||||
public string? PopupMenuText { get; set; }
|
||||
#endif
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
18
README.MD
18
README.MD
@@ -4,24 +4,6 @@ This library comprises of models that represent either directly serializable or
|
||||
|
||||
Find the link to the Nuget package [here](https://www.nuget.org/packages/SabreTools.Models).
|
||||
|
||||
In most completed models for serialization, there is a section that looks like the following:
|
||||
|
||||
```c#
|
||||
#region DO NOT USE IN PRODUCTION
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyAttribute]
|
||||
public XmlAttribute[]? ADDITIONAL_ATTRIBUTES { get; set; }
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
[XmlAnyElement]
|
||||
public object[]? ADDITIONAL_ELEMENTS { get; set; }
|
||||
|
||||
#endregion
|
||||
```
|
||||
|
||||
This code should be removed before the models are used. This is only included during debugging and implementation as to ensure that there are no notable holes in the models that would disallow 1:1 replication of inputs.
|
||||
|
||||
## Missing Metadata Models
|
||||
|
||||
The following metadata file formats do not have models included in this library yet and, as such, do not have serializers:
|
||||
|
||||
@@ -1,66 +0,0 @@
|
||||
namespace SabreTools.Models.RomCenter
|
||||
{
|
||||
/// <remarks>[credits]</remarks>
|
||||
public class Credits
|
||||
{
|
||||
/// <remarks>author</remarks>
|
||||
#if NET48
|
||||
public string Author { get; set; }
|
||||
#else
|
||||
public string? Author { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>version</remarks>
|
||||
#if NET48
|
||||
public string Version { get; set; }
|
||||
#else
|
||||
public string? Version { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>email</remarks>
|
||||
#if NET48
|
||||
public string Email { get; set; }
|
||||
#else
|
||||
public string? Email { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>homepage</remarks>
|
||||
#if NET48
|
||||
public string Homepage { get; set; }
|
||||
#else
|
||||
public string? Homepage { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>url</remarks>
|
||||
#if NET48
|
||||
public string Url { get; set; }
|
||||
#else
|
||||
public string? Url { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>date</remarks>
|
||||
#if NET48
|
||||
public string Date { get; set; }
|
||||
#else
|
||||
public string? Date { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>comment</remarks>
|
||||
#if NET48
|
||||
public string Comment { get; set; }
|
||||
#else
|
||||
public string? Comment { get; set; }
|
||||
#endif
|
||||
|
||||
#region DO NOT USE IN PRODUCTION
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
#if NET48
|
||||
public string[] ADDITIONAL_ELEMENTS { get; set; }
|
||||
#else
|
||||
public string[]? ADDITIONAL_ELEMENTS { get; set; }
|
||||
#endif
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -1,45 +0,0 @@
|
||||
namespace SabreTools.Models.RomCenter
|
||||
{
|
||||
/// <remarks>[dat]</remarks>
|
||||
public class Dat
|
||||
{
|
||||
/// <remarks>version</remarks>
|
||||
#if NET48
|
||||
public string Version { get; set; }
|
||||
#else
|
||||
public string? Version { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>plugin</remarks>
|
||||
#if NET48
|
||||
public string Plugin { get; set; }
|
||||
#else
|
||||
public string? Plugin { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>split</remarks>
|
||||
#if NET48
|
||||
public string Split { get; set; }
|
||||
#else
|
||||
public string? Split { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>merge</remarks>
|
||||
#if NET48
|
||||
public string Merge { get; set; }
|
||||
#else
|
||||
public string? Merge { get; set; }
|
||||
#endif
|
||||
|
||||
#region DO NOT USE IN PRODUCTION
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
#if NET48
|
||||
public string[] ADDITIONAL_ELEMENTS { get; set; }
|
||||
#else
|
||||
public string[]? ADDITIONAL_ELEMENTS { get; set; }
|
||||
#endif
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -1,31 +0,0 @@
|
||||
namespace SabreTools.Models.RomCenter
|
||||
{
|
||||
/// <remarks>[emulator]</remarks>
|
||||
public class Emulator
|
||||
{
|
||||
/// <remarks>refname</remarks>
|
||||
#if NET48
|
||||
public string RefName { get; set; }
|
||||
#else
|
||||
public string? RefName { get; set; }
|
||||
#endif
|
||||
|
||||
/// <remarks>version</remarks>
|
||||
#if NET48
|
||||
public string Version { get; set; }
|
||||
#else
|
||||
public string? Version { get; set; }
|
||||
#endif
|
||||
|
||||
#region DO NOT USE IN PRODUCTION
|
||||
|
||||
/// <remarks>Should be empty</remarks>
|
||||
#if NET48
|
||||
public string[] ADDITIONAL_ELEMENTS { get; set; }
|
||||
#else
|
||||
public string[]? ADDITIONAL_ELEMENTS { get; set; }
|
||||
#endif
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user