diff --git a/SabreTools.Models/ArchiveDotOrg/File.cs b/SabreTools.Models/ArchiveDotOrg/File.cs new file mode 100644 index 00000000..b434561a --- /dev/null +++ b/SabreTools.Models/ArchiveDotOrg/File.cs @@ -0,0 +1,94 @@ +using System.Xml; +using System.Xml.Serialization; + +namespace SabreTools.Models.ArchiveDotOrg +{ + [XmlRoot("file")] + public class File + { + [XmlAttribute("name")] + public string? Name { get; set; } + + /// Is this a set of defined values? + [XmlAttribute("source")] + public string? Source { get; set; } + + [XmlElement("btih")] + public string? BitTorrentMagnetHash { get; set; } + + [XmlElement("mtime")] + public long? LastModifiedTime { get; set; } + + [XmlElement("size")] + public long? Size { get; set; } + + [XmlElement("md5")] + public string? MD5 { get; set; } + + [XmlElement("crc32")] + public string? CRC32 { get; set; } + + [XmlElement("sha1")] + public string? SHA1 { get; set; } + + [XmlElement("filecount")] + public long? FileCount { get; set; } + + /// Is this a set of defined values? + [XmlElement("format")] + public string? Format { get; set; } + + [XmlElement("original")] + public string? Original { get; set; } + + /// Is this a set of defined values? + [XmlElement("summation")] + public string? Summation { get; set; } + + /// Is this a set of defined values? + [XmlElement("rotation")] + public long? Rotation { get; set; } + + [XmlElement("hocr_char_to_word_module_version")] + public string? hOCRCharToWordModuleVersion { get; set; } + + [XmlElement("hocr_char_to_word_hocr_version")] + public string? hOCRCharToWordhOCRVersion { get; set; } + + [XmlElement("ocr_module_version")] + public string? TesseractOCRModuleVersion { get; set; } + + [XmlElement("ocr_converted")] + public string? TesseractOCRConverted { get; set; } + + [XmlElement("word_conf_0_10")] + public long? WordConfidenceInterval0To10 { get; set; } + + [XmlElement("word_conf_11_20")] + public long? WordConfidenceInterval11To20 { get; set; } + + [XmlElement("word_conf_21_30")] + public long? WordConfidenceInterval21To30 { get; set; } + + [XmlElement("word_conf_31_40")] + public long? WordConfidenceInterval31To40 { get; set; } + + [XmlElement("word_conf_41_50")] + public long? WordConfidenceInterval41To50 { get; set; } + + [XmlElement("word_conf_51_60")] + public long? WordConfidenceInterval51To60 { get; set; } + + [XmlElement("word_conf_61_70")] + public long? WordConfidenceInterval61To70 { get; set; } + + [XmlElement("word_conf_71_80")] + public long? WordConfidenceInterval71To80 { get; set; } + + [XmlElement("word_conf_81_90")] + public long? WordConfidenceInterval81To90 { get; set; } + + [XmlElement("word_conf_91_100")] + public long? WordConfidenceInterval91To100 { get; set; } + } +} \ No newline at end of file diff --git a/SabreTools.Models/ArchiveDotOrg/Files.cs b/SabreTools.Models/ArchiveDotOrg/Files.cs new file mode 100644 index 00000000..e3dc7cd1 --- /dev/null +++ b/SabreTools.Models/ArchiveDotOrg/Files.cs @@ -0,0 +1,12 @@ +using System.Xml; +using System.Xml.Serialization; + +namespace SabreTools.Models.ArchiveDotOrg +{ + [XmlRoot("files")] + public class Files + { + [XmlElement] + public File[]? File { get; set; } + } +} \ No newline at end of file diff --git a/SabreTools.Models/AttractMode/Row.cs b/SabreTools.Models/AttractMode/Row.cs new file mode 100644 index 00000000..e8883fa3 --- /dev/null +++ b/SabreTools.Models/AttractMode/Row.cs @@ -0,0 +1,39 @@ +namespace SabreTools.Models.AttractMode +{ + public class Row + { + public string Name { get; set; } + + public string Title { get; set; } + + public string Emulator { get; set; } + + public string CloneOf { get; set; } + + public string Year { get; set; } + + public string Manufacturer { get; set; } + + public string Category { get; set; } + + public string Players { get; set; } + + public string Rotation { get; set; } + + public string Control { get; set; } + + public string Status { get; set; } + + public string DisplayCount { get; set; } + + public string DisplayType { get; set; } + + public string AltRomname { get; set; } + + public string AltTitle { get; set; } + + public string Extra { get; set; } + + public string Buttons { get; set; } + } +} \ No newline at end of file diff --git a/SabreTools.Models/EverdriveSMDB/Row.cs b/SabreTools.Models/EverdriveSMDB/Row.cs new file mode 100644 index 00000000..d789657d --- /dev/null +++ b/SabreTools.Models/EverdriveSMDB/Row.cs @@ -0,0 +1,17 @@ +namespace SabreTools.Models.EverdriveSMDB +{ + public class Row + { + public string SHA256 { get; set; } + + public string Name { get; set; } + + public string SHA1 { get; set; } + + public string MD5 { get; set; } + + public string CRC32 { get; set; } + + public long? Size { get; set; } + } +} \ No newline at end of file diff --git a/SabreTools.Models/Listxml/Adjuster.cs b/SabreTools.Models/Listxml/Adjuster.cs new file mode 100644 index 00000000..d0a3ebc7 --- /dev/null +++ b/SabreTools.Models/Listxml/Adjuster.cs @@ -0,0 +1,18 @@ +using System.Xml; +using System.Xml.Serialization; + +namespace SabreTools.Models.Listxml +{ + [XmlRoot("adjuster")] + public class Adjuster + { + [XmlAttribute("name")] + public string Name { get; set; } + + [XmlAttribute("default")] + public string Default { get; set; } + + [XmlElement("condition")] + public Condition? Condition { get; set; } + } +} \ No newline at end of file diff --git a/SabreTools.Models/Listxml/Analog.cs b/SabreTools.Models/Listxml/Analog.cs new file mode 100644 index 00000000..660dd8c6 --- /dev/null +++ b/SabreTools.Models/Listxml/Analog.cs @@ -0,0 +1,12 @@ +using System.Xml; +using System.Xml.Serialization; + +namespace SabreTools.Models.Listxml +{ + [XmlRoot("analog")] + public class Analog + { + [XmlAttribute("mask")] + public string Mask { get; set; } + } +} \ No newline at end of file diff --git a/SabreTools.Models/Listxml/BiosSet.cs b/SabreTools.Models/Listxml/BiosSet.cs new file mode 100644 index 00000000..0e461c2f --- /dev/null +++ b/SabreTools.Models/Listxml/BiosSet.cs @@ -0,0 +1,19 @@ +using System.Xml; +using System.Xml.Serialization; + +namespace SabreTools.Models.Listxml +{ + [XmlRoot("biosset")] + public class BiosSet + { + [XmlAttribute("name")] + public string Name { get; set; } + + [XmlAttribute("description")] + public string Description { get; set; } + + /// (yes|no) "no" + [XmlAttribute("default")] + public string? Default { get; set; } + } +} \ No newline at end of file diff --git a/SabreTools.Models/Listxml/Chip.cs b/SabreTools.Models/Listxml/Chip.cs new file mode 100644 index 00000000..8ceb2626 --- /dev/null +++ b/SabreTools.Models/Listxml/Chip.cs @@ -0,0 +1,22 @@ +using System.Xml; +using System.Xml.Serialization; + +namespace SabreTools.Models.Listxml +{ + [XmlRoot("chip")] + public class Chip + { + [XmlAttribute("name")] + public string Name { get; set; } + + [XmlAttribute("tag")] + public string? Tag { get; set; } + + /// (cpu|audio) + [XmlAttribute("type")] + public string Type { get; set; } + + [XmlAttribute("clock")] + public string? Clock { get; set; } + } +} \ No newline at end of file diff --git a/SabreTools.Models/Listxml/Condition.cs b/SabreTools.Models/Listxml/Condition.cs new file mode 100644 index 00000000..bc0f64dc --- /dev/null +++ b/SabreTools.Models/Listxml/Condition.cs @@ -0,0 +1,22 @@ +using System.Xml; +using System.Xml.Serialization; + +namespace SabreTools.Models.Listxml +{ + [XmlRoot("condition")] + public class Condition + { + [XmlAttribute("tag")] + public string Tag { get; set; } + + [XmlAttribute("mask")] + public string Mask { get; set; } + + /// (eq|ne|gt|le|lt|ge) + [XmlAttribute("relation")] + public string Relation { get; set; } + + [XmlAttribute("value")] + public string Value { get; set; } + } +} \ No newline at end of file diff --git a/SabreTools.Models/Listxml/ConfLocation.cs b/SabreTools.Models/Listxml/ConfLocation.cs new file mode 100644 index 00000000..f4c7a414 --- /dev/null +++ b/SabreTools.Models/Listxml/ConfLocation.cs @@ -0,0 +1,20 @@ +using System.Xml; +using System.Xml.Serialization; + +namespace SabreTools.Models.Listxml +{ + [XmlRoot("conflocation")] + public class ConfLocation + { + [XmlAttribute("name")] + public string Name { get; set; } + + /// Numeric? + [XmlAttribute("number")] + public string Number { get; set; } + + /// (yes|no) "no" + [XmlAttribute("inverted")] + public string? Inverted { get; set; } + } +} \ No newline at end of file diff --git a/SabreTools.Models/Listxml/ConfSetting.cs b/SabreTools.Models/Listxml/ConfSetting.cs new file mode 100644 index 00000000..9796d543 --- /dev/null +++ b/SabreTools.Models/Listxml/ConfSetting.cs @@ -0,0 +1,22 @@ +using System.Xml; +using System.Xml.Serialization; + +namespace SabreTools.Models.Listxml +{ + [XmlRoot("confsetting")] + public class ConfSetting + { + [XmlAttribute("name")] + public string Name { get; set; } + + [XmlAttribute("value")] + public string Value { get; set; } + + /// (yes|no) "no" + [XmlAttribute("default")] + public string? Default { get; set; } + + [XmlElement("condition")] + public Condition? Condition { get; set; } + } +} \ No newline at end of file diff --git a/SabreTools.Models/Listxml/Configuration.cs b/SabreTools.Models/Listxml/Configuration.cs new file mode 100644 index 00000000..f7c18616 --- /dev/null +++ b/SabreTools.Models/Listxml/Configuration.cs @@ -0,0 +1,27 @@ +using System.Xml; +using System.Xml.Serialization; + +namespace SabreTools.Models.Listxml +{ + [XmlRoot("configuration")] + public class Configuration + { + [XmlAttribute("name")] + public string Name { get; set; } + + [XmlAttribute("tag")] + public string Tag { get; set; } + + [XmlAttribute("mask")] + public string? Mask { get; set; } + + [XmlElement("condition")] + public Condition? Condition { get; set; } + + [XmlElement("conflocation")] + public ConfLocation[]? ConfLocation { get; set; } + + [XmlElement("confsetting")] + public ConfSetting[]? ConfSetting { get; set; } + } +} \ No newline at end of file diff --git a/SabreTools.Models/Listxml/Control.cs b/SabreTools.Models/Listxml/Control.cs new file mode 100644 index 00000000..c3b84b2d --- /dev/null +++ b/SabreTools.Models/Listxml/Control.cs @@ -0,0 +1,56 @@ +using System.Xml; +using System.Xml.Serialization; + +namespace SabreTools.Models.Listxml +{ + [XmlRoot("control")] + public class Control + { + [XmlAttribute("type")] + public string Type { get; set; } + + /// Numeric? + [XmlAttribute("player")] + public string? Player { get; set; } + + /// Numeric? + [XmlAttribute("buttons")] + public string? Buttons { get; set; } + + /// Numeric? + [XmlAttribute("reqbuttons")] + public string? ReqButtons { get; set; } + + /// Numeric? + [XmlAttribute("minimum")] + public string? Minimum { get; set; } + + /// Numeric? + [XmlAttribute("maximum")] + public string? Maximum { get; set; } + + /// Numeric? + [XmlAttribute("sensitivity")] + public string? Sensitivity { get; set; } + + /// Numeric? + [XmlAttribute("keydelta")] + public string? KeyDelta { get; set; } + + /// (yes|no) "no" + [XmlAttribute("reverse")] + public string? Reverse { get; set; } + + /// Numeric? + [XmlAttribute("ways")] + public string? Ways { get; set; } + + /// Numeric? + [XmlAttribute("ways2")] + public string? Ways2 { get; set; } + + /// Numeric? + [XmlAttribute("ways3")] + public string? Ways3 { get; set; } + } +} \ No newline at end of file diff --git a/SabreTools.Models/Listxml/Device.cs b/SabreTools.Models/Listxml/Device.cs new file mode 100644 index 00000000..f2718c52 --- /dev/null +++ b/SabreTools.Models/Listxml/Device.cs @@ -0,0 +1,30 @@ +using System.Xml; +using System.Xml.Serialization; + +namespace SabreTools.Models.Listxml +{ + [XmlRoot("device")] + public class Device + { + [XmlAttribute("type")] + public string Type { get; set; } + + [XmlAttribute("tag")] + public string? Tag { get; set; } + + [XmlAttribute("fixed_image")] + public string? FixedImage { get; set; } + + [XmlAttribute("mandatory")] + public string? Mandatory { get; set; } + + [XmlAttribute("interface")] + public string? Interface { get; set; } + + [XmlElement("instance")] + public Instance? Instance { get; set; } + + [XmlElement("extension")] + public Extension[]? Extension { get; set; } + } +} \ No newline at end of file diff --git a/SabreTools.Models/Listxml/DeviceRef.cs b/SabreTools.Models/Listxml/DeviceRef.cs new file mode 100644 index 00000000..4f904f3c --- /dev/null +++ b/SabreTools.Models/Listxml/DeviceRef.cs @@ -0,0 +1,12 @@ +using System.Xml; +using System.Xml.Serialization; + +namespace SabreTools.Models.Listxml +{ + [XmlRoot("device_ref")] + public class DeviceRef + { + [XmlAttribute("name")] + public string Name { get; set; } + } +} \ No newline at end of file diff --git a/SabreTools.Models/Listxml/DipLocation.cs b/SabreTools.Models/Listxml/DipLocation.cs new file mode 100644 index 00000000..4d709cac --- /dev/null +++ b/SabreTools.Models/Listxml/DipLocation.cs @@ -0,0 +1,20 @@ +using System.Xml; +using System.Xml.Serialization; + +namespace SabreTools.Models.Listxml +{ + [XmlRoot("diplocation")] + public class DipLocation + { + [XmlAttribute("name")] + public string Name { get; set; } + + /// Numeric? + [XmlAttribute("number")] + public string Number { get; set; } + + /// (yes|no) "no" + [XmlAttribute("inverted")] + public string? Inverted { get; set; } + } +} \ No newline at end of file diff --git a/SabreTools.Models/Listxml/DipSwitch.cs b/SabreTools.Models/Listxml/DipSwitch.cs new file mode 100644 index 00000000..d67ebc52 --- /dev/null +++ b/SabreTools.Models/Listxml/DipSwitch.cs @@ -0,0 +1,27 @@ +using System.Xml; +using System.Xml.Serialization; + +namespace SabreTools.Models.Listxml +{ + [XmlRoot("dipswitch")] + public class DipSwitch + { + [XmlAttribute("name")] + public string Name { get; set; } + + [XmlAttribute("tag")] + public string Tag { get; set; } + + [XmlAttribute("mask")] + public string? Mask { get; set; } + + [XmlElement("condition")] + public Condition? Condition { get; set; } + + [XmlElement("diplocation")] + public DipLocation[]? DipLocation { get; set; } + + [XmlElement("dipvalue")] + public DipValue[]? DipValue { get; set; } + } +} \ No newline at end of file diff --git a/SabreTools.Models/Listxml/DipValue.cs b/SabreTools.Models/Listxml/DipValue.cs new file mode 100644 index 00000000..80975d36 --- /dev/null +++ b/SabreTools.Models/Listxml/DipValue.cs @@ -0,0 +1,22 @@ +using System.Xml; +using System.Xml.Serialization; + +namespace SabreTools.Models.Listxml +{ + [XmlRoot("dipvalue")] + public class DipValue + { + [XmlAttribute("name")] + public string Name { get; set; } + + [XmlAttribute("value")] + public string Value { get; set; } + + /// (yes|no) "no" + [XmlAttribute("default")] + public string? Default { get; set; } + + [XmlElement("condition")] + public Condition? Condition { get; set; } + } +} \ No newline at end of file diff --git a/SabreTools.Models/Listxml/Disk.cs b/SabreTools.Models/Listxml/Disk.cs new file mode 100644 index 00000000..8d794a82 --- /dev/null +++ b/SabreTools.Models/Listxml/Disk.cs @@ -0,0 +1,37 @@ +using System.Xml; +using System.Xml.Serialization; + +namespace SabreTools.Models.Listxml +{ + [XmlRoot("disk")] + public class Disk + { + [XmlAttribute("name")] + public string Name { get; set; } + + [XmlAttribute("sha1")] + public string? SHA1 { get; set; } + + [XmlAttribute("merge")] + public string? Merge { get; set; } + + [XmlAttribute("region")] + public string? Region { get; set; } + + /// Numeric? + [XmlAttribute("index")] + public string? Index { get; set; } + + /// (yes|no) "no" + [XmlAttribute("writable")] + public string? Writable { get; set; } + + /// (baddump|nodump|good) "good" + [XmlAttribute("status")] + public string? Status { get; set; } + + /// (yes|no) "no" + [XmlAttribute("optional")] + public string? Optional { get; set; } + } +} \ No newline at end of file diff --git a/SabreTools.Models/Listxml/Display.cs b/SabreTools.Models/Listxml/Display.cs new file mode 100644 index 00000000..94ce93b4 --- /dev/null +++ b/SabreTools.Models/Listxml/Display.cs @@ -0,0 +1,64 @@ +using System.Xml; +using System.Xml.Serialization; + +namespace SabreTools.Models.Listxml +{ + [XmlRoot("display")] + public class Display + { + [XmlAttribute("tag")] + public string? Tag { get; set; } + + /// (raster|vector|lcd|svg|unknown) + [XmlAttribute("type")] + public string Type { get; set; } + + /// (0|90|180|270) + [XmlAttribute("rotate")] + public long? Rotate { get; set; } + + /// (yes|no) "no" + [XmlAttribute("flipx")] + public string? FlipX { get; set; } + + /// Numeric? + [XmlAttribute("width")] + public string? Width { get; set; } + + /// Numeric? + [XmlAttribute("height")] + public string? Height { get; set; } + + /// Numeric? + [XmlAttribute("refresh")] + public string Refresh { get; set; } + + /// Numeric? + [XmlAttribute("pixclock")] + public string? PixClock { get; set; } + + /// Numeric? + [XmlAttribute("htotal")] + public string? HTotal { get; set; } + + /// Numeric? + [XmlAttribute("hbend")] + public string? HBEnd { get; set; } + + /// Numeric? + [XmlAttribute("hbstart")] + public string? HBStart { get; set; } + + /// Numeric? + [XmlAttribute("vtotal")] + public string? VTotal { get; set; } + + /// Numeric? + [XmlAttribute("vbend")] + public string? VBEnd { get; set; } + + /// Numeric? + [XmlAttribute("vbstart")] + public string? VBStart { get; set; } + } +} \ No newline at end of file diff --git a/SabreTools.Models/Listxml/Driver.cs b/SabreTools.Models/Listxml/Driver.cs new file mode 100644 index 00000000..a2b42be3 --- /dev/null +++ b/SabreTools.Models/Listxml/Driver.cs @@ -0,0 +1,41 @@ +using System.Xml; +using System.Xml.Serialization; + +namespace SabreTools.Models.Listxml +{ + [XmlRoot("driver")] + public class Driver + { + /// (good|imperfect|preliminary) + [XmlAttribute("status")] + public string Status { get; set; } + + /// (good|imperfect|preliminary) + [XmlAttribute("emulation")] + public string Emulation { get; set; } + + /// (good|imperfect|preliminary) + [XmlAttribute("cocktail")] + public string Cocktail { get; set; } + + /// (supported|unsupported) + [XmlAttribute("savestate")] + public string SaveState { get; set; } + + /// (yes|no) "no" + [XmlAttribute("requiresartwork")] + public string? RequiresArtwork { get; set; } + + /// (yes|no) "no" + [XmlAttribute("unofficial")] + public string? Unofficial { get; set; } + + /// (yes|no) "no" + [XmlAttribute("nosoundhardware")] + public string? NoSoundHardware { get; set; } + + /// (yes|no) "no" + [XmlAttribute("incomplete")] + public string? Incomplete { get; set; } + } +} \ No newline at end of file diff --git a/SabreTools.Models/Listxml/Extension.cs b/SabreTools.Models/Listxml/Extension.cs new file mode 100644 index 00000000..ba51d9b8 --- /dev/null +++ b/SabreTools.Models/Listxml/Extension.cs @@ -0,0 +1,12 @@ +using System.Xml; +using System.Xml.Serialization; + +namespace SabreTools.Models.Listxml +{ + [XmlRoot("extension")] + public class Extension + { + [XmlAttribute("name")] + public string Name { get; set; } + } +} \ No newline at end of file diff --git a/SabreTools.Models/Listxml/Feature.cs b/SabreTools.Models/Listxml/Feature.cs new file mode 100644 index 00000000..10efce6b --- /dev/null +++ b/SabreTools.Models/Listxml/Feature.cs @@ -0,0 +1,21 @@ +using System.Xml; +using System.Xml.Serialization; + +namespace SabreTools.Models.Listxml +{ + [XmlRoot("feature")] + public class Feature + { + /// (protection|timing|graphics|palette|sound|capture|camera|microphone|controls|keyboard|mouse|media|disk|printer|tape|punch|drum|rom|comms|lan|wan) + [XmlAttribute("type")] + public string Type { get; set; } + + /// (unemulated|imperfect) + [XmlAttribute("status")] + public string? Status { get; set; } + + /// (unemulated|imperfect) + [XmlAttribute("overall")] + public string? Overall { get; set; } + } +} \ No newline at end of file diff --git a/SabreTools.Models/Listxml/Input.cs b/SabreTools.Models/Listxml/Input.cs new file mode 100644 index 00000000..ee164e7a --- /dev/null +++ b/SabreTools.Models/Listxml/Input.cs @@ -0,0 +1,29 @@ +using System.Xml; +using System.Xml.Serialization; + +namespace SabreTools.Models.Listxml +{ + [XmlRoot("input")] + public class Input + { + /// (yes|no) "no" + [XmlAttribute("service")] + public string? Service { get; set; } + + /// (yes|no) "no" + [XmlAttribute("tilt")] + public string? Tilt { get; set; } + + /// Numeric? + [XmlAttribute("players")] + public string Players { get; set; } + + /// Numeric? + [XmlAttribute("coins")] + public string? Coins { get; set; } + + /// Numeric? + [XmlElement("control")] + public Control[]? Control { get; set; } + } +} \ No newline at end of file diff --git a/SabreTools.Models/Listxml/Instance.cs b/SabreTools.Models/Listxml/Instance.cs new file mode 100644 index 00000000..14ea7343 --- /dev/null +++ b/SabreTools.Models/Listxml/Instance.cs @@ -0,0 +1,15 @@ +using System.Xml; +using System.Xml.Serialization; + +namespace SabreTools.Models.Listxml +{ + [XmlRoot("instance")] + public class Instance + { + [XmlAttribute("name")] + public string Name { get; set; } + + [XmlAttribute("briefname")] + public string BriefName { get; set; } + } +} \ No newline at end of file diff --git a/SabreTools.Models/Listxml/Machine.cs b/SabreTools.Models/Listxml/Machine.cs new file mode 100644 index 00000000..f799b593 --- /dev/null +++ b/SabreTools.Models/Listxml/Machine.cs @@ -0,0 +1,106 @@ +using System.Xml; +using System.Xml.Serialization; + +namespace SabreTools.Models.Listxml +{ + [XmlRoot("machine")] + public class Machine + { + [XmlAttribute("name")] + public string Name { get; set; } + + [XmlAttribute("sourcefile")] + public string? SourceFile { get; set; } + + /// (yes|no) "no" + [XmlAttribute("isbios")] + public string? IsBios { get; set; } + + /// (yes|no) "no" + [XmlAttribute("isdevice")] + public string? IsDevice { get; set; } + + /// (yes|no) "no" + [XmlAttribute("ismechanical")] + public string? IsMechanical { get; set; } + + /// (yes|no) "no" + [XmlAttribute("runnable")] + public string? Runnable { get; set; } + + [XmlAttribute("cloneof")] + public string? CloneOf { get; set; } + + [XmlAttribute("romof")] + public string? RomOf { get; set; } + + [XmlAttribute("sampleof")] + public string? SampleOf { get; set; } + + [XmlElement("description")] + public string Description { get; set; } + + [XmlElement("year")] + public string? Year { get; set; } + + [XmlElement("manufacturer")] + public string? Manufacturer { get; set; } + + [XmlElement("biosset")] + public BiosSet[]? BiosSet { get; set; } + + [XmlElement("rom")] + public Rom[]? Rom { get; set; } + + [XmlElement("disk")] + public Disk[]? Disk { get; set; } + + [XmlElement("device_ref")] + public DeviceRef[]? DeviceRef { get; set; } + + [XmlElement("sample")] + public Sample[]? Sample { get; set; } + + [XmlElement("chip")] + public Chip[]? Chip { get; set; } + + [XmlElement("display")] + public Display[]? Display { get; set; } + + [XmlElement("sound")] + public Sound? Sound { get; set; } + + [XmlElement("input")] + public Input? Input { get; set; } + + [XmlElement("dipswitch")] + public DipSwitch[]? DipSwitch { get; set; } + + [XmlElement("configuration")] + public Configuration[]? Configuration { get; set; } + + [XmlElement("port")] + public Port[]? Port { get; set; } + + [XmlElement("adjuster")] + public Adjuster[]? Adjuster { get; set; } + + [XmlElement("driver")] + public Driver? Driver { get; set; } + + [XmlElement("feature")] + public Feature[]? Feature { get; set; } + + [XmlElement("device")] + public Device[]? Device { get; set; } + + [XmlElement("slot")] + public Slot[]? Slot { get; set; } + + [XmlElement("softwarelist")] + public SoftwareList[]? SoftwareList { get; set; } + + [XmlElement("ramoption")] + public RamOption[]? RamOption { get; set; } + } +} \ No newline at end of file diff --git a/SabreTools.Models/Listxml/Mame.cs b/SabreTools.Models/Listxml/Mame.cs new file mode 100644 index 00000000..0d116846 --- /dev/null +++ b/SabreTools.Models/Listxml/Mame.cs @@ -0,0 +1,22 @@ +using System.Xml; +using System.Xml.Serialization; + +namespace SabreTools.Models.Listxml +{ + [XmlRoot("mame")] + public class Mame + { + [XmlAttribute("build")] + public string? Build { get; set; } + + /// (yes|no) "no" + [XmlAttribute("debug")] + public string? Debug { get; set; } + + [XmlAttribute("mameconfig")] + public string MameConfig { get; set; } + + [XmlElement("machine")] + public Machine[] Machine { get; set; } + } +} \ No newline at end of file diff --git a/SabreTools.Models/Listxml/Port.cs b/SabreTools.Models/Listxml/Port.cs new file mode 100644 index 00000000..7e608b91 --- /dev/null +++ b/SabreTools.Models/Listxml/Port.cs @@ -0,0 +1,15 @@ +using System.Xml; +using System.Xml.Serialization; + +namespace SabreTools.Models.Listxml +{ + [XmlRoot("port")] + public class Port + { + [XmlAttribute("tag")] + public string Tag { get; set; } + + [XmlElement("analog")] + public Analog[]? Analog { get; set; } + } +} \ No newline at end of file diff --git a/SabreTools.Models/Listxml/RamOption.cs b/SabreTools.Models/Listxml/RamOption.cs new file mode 100644 index 00000000..06311803 --- /dev/null +++ b/SabreTools.Models/Listxml/RamOption.cs @@ -0,0 +1,15 @@ +using System.Xml; +using System.Xml.Serialization; + +namespace SabreTools.Models.Listxml +{ + [XmlRoot("ramoption")] + public class RamOption + { + [XmlAttribute("name")] + public string Name { get; set; } + + [XmlAttribute("default")] + public string? Default { get; set; } + } +} \ No newline at end of file diff --git a/SabreTools.Models/Listxml/Rom.cs b/SabreTools.Models/Listxml/Rom.cs new file mode 100644 index 00000000..f74b2ac3 --- /dev/null +++ b/SabreTools.Models/Listxml/Rom.cs @@ -0,0 +1,42 @@ +using System.Xml; +using System.Xml.Serialization; + +namespace SabreTools.Models.Listxml +{ + [XmlRoot("rom")] + public class Rom + { + [XmlAttribute("name")] + public string Name { get; set; } + + [XmlAttribute("bios")] + public string? Bios { get; set; } + + [XmlAttribute("size")] + public long Size { get; set; } + + [XmlAttribute("crc")] + public string? CRC { get; set; } + + [XmlAttribute("sha1")] + public string? SHA1 { get; set; } + + [XmlAttribute("merge")] + public string? Merge { get; set; } + + [XmlAttribute("region")] + public string? Region { get; set; } + + /// Numeric? + [XmlAttribute("offset")] + public string? Offset { get; set; } + + /// (baddump|nodump|good) "good" + [XmlAttribute("status")] + public string? Status { get; set; } + + /// (yes|no) "no" + [XmlAttribute("optional")] + public string? Optional { get; set; } + } +} \ No newline at end of file diff --git a/SabreTools.Models/Listxml/Sample.cs b/SabreTools.Models/Listxml/Sample.cs new file mode 100644 index 00000000..8e00a82c --- /dev/null +++ b/SabreTools.Models/Listxml/Sample.cs @@ -0,0 +1,12 @@ +using System.Xml; +using System.Xml.Serialization; + +namespace SabreTools.Models.Listxml +{ + [XmlRoot("sample")] + public class Sample + { + [XmlAttribute("name")] + public string Name { get; set; } + } +} \ No newline at end of file diff --git a/SabreTools.Models/Listxml/Slot.cs b/SabreTools.Models/Listxml/Slot.cs new file mode 100644 index 00000000..0f335a51 --- /dev/null +++ b/SabreTools.Models/Listxml/Slot.cs @@ -0,0 +1,15 @@ +using System.Xml; +using System.Xml.Serialization; + +namespace SabreTools.Models.Listxml +{ + [XmlRoot("slot")] + public class Slot + { + [XmlAttribute("name")] + public string Name { get; set; } + + [XmlElement("slotoption")] + public SlotOption[]? SlotOption { get; set; } + } +} \ No newline at end of file diff --git a/SabreTools.Models/Listxml/SlotOption.cs b/SabreTools.Models/Listxml/SlotOption.cs new file mode 100644 index 00000000..4aa34342 --- /dev/null +++ b/SabreTools.Models/Listxml/SlotOption.cs @@ -0,0 +1,19 @@ +using System.Xml; +using System.Xml.Serialization; + +namespace SabreTools.Models.Listxml +{ + [XmlRoot("slotoption")] + public class SlotOption + { + [XmlAttribute("name")] + public string Name { get; set; } + + [XmlAttribute("devname")] + public string DevName { get; set; } + + /// (yes|no) "no" + [XmlAttribute("default")] + public string? Default { get; set; } + } +} \ No newline at end of file diff --git a/SabreTools.Models/Listxml/SoftwareList.cs b/SabreTools.Models/Listxml/SoftwareList.cs new file mode 100644 index 00000000..6b1d0038 --- /dev/null +++ b/SabreTools.Models/Listxml/SoftwareList.cs @@ -0,0 +1,22 @@ +using System.Xml; +using System.Xml.Serialization; + +namespace SabreTools.Models.Listxml +{ + [XmlRoot("softwarelist")] + public class SoftwareList + { + [XmlAttribute("tag")] + public string Tag { get; set; } + + [XmlAttribute("name")] + public string Name { get; set; } + + /// (original|compatible) + [XmlAttribute("status")] + public string Status { get; set; } + + [XmlAttribute("filter")] + public string? Filter { get; set; } + } +} \ No newline at end of file diff --git a/SabreTools.Models/Listxml/Sound.cs b/SabreTools.Models/Listxml/Sound.cs new file mode 100644 index 00000000..b244f2d3 --- /dev/null +++ b/SabreTools.Models/Listxml/Sound.cs @@ -0,0 +1,13 @@ +using System.Xml; +using System.Xml.Serialization; + +namespace SabreTools.Models.Listxml +{ + [XmlRoot("sound")] + public class Sound + { + /// Numeric? + [XmlAttribute("channels")] + public string Channels { get; set; } + } +} \ No newline at end of file diff --git a/SabreTools.Models/SabreTools.Models.csproj b/SabreTools.Models/SabreTools.Models.csproj new file mode 100644 index 00000000..5d83bbdc --- /dev/null +++ b/SabreTools.Models/SabreTools.Models.csproj @@ -0,0 +1,7 @@ + + + + net6.0;net7.0 + + + diff --git a/SabreTools.Models/SoftwareList/DataArea.cs b/SabreTools.Models/SoftwareList/DataArea.cs new file mode 100644 index 00000000..99db3312 --- /dev/null +++ b/SabreTools.Models/SoftwareList/DataArea.cs @@ -0,0 +1,26 @@ +using System.Xml; +using System.Xml.Serialization; + +namespace SabreTools.Models.SoftwareList +{ + [XmlRoot("dataarea")] + public class DataArea + { + [XmlAttribute("name")] + public string Name { get; set; } + + [XmlAttribute("size")] + public long Size { get; set; } + + /// (8|16|32|64) "8" + [XmlAttribute("width")] + public long? Width { get; set; } + + /// (big|little) "little" + [XmlAttribute("endianness")] + public string? Endianness { get; set; } + + [XmlElement("rom")] + public Rom[]? Rom { get; set; } + } +} \ No newline at end of file diff --git a/SabreTools.Models/SoftwareList/DipSwitch.cs b/SabreTools.Models/SoftwareList/DipSwitch.cs new file mode 100644 index 00000000..ff4c5f5f --- /dev/null +++ b/SabreTools.Models/SoftwareList/DipSwitch.cs @@ -0,0 +1,21 @@ +using System.Xml; +using System.Xml.Serialization; + +namespace SabreTools.Models.SoftwareList +{ + [XmlRoot("dipswitch")] + public class DipSwitch + { + [XmlAttribute("name")] + public string Name { get; set; } + + [XmlAttribute("tag")] + public string Tag { get; set; } + + [XmlAttribute("mask")] + public string? Mask { get; set; } + + [XmlElement("dipvalue")] + public DipValue[]? DipValue { get; set; } + } +} \ No newline at end of file diff --git a/SabreTools.Models/SoftwareList/DipValue.cs b/SabreTools.Models/SoftwareList/DipValue.cs new file mode 100644 index 00000000..5afb9d1d --- /dev/null +++ b/SabreTools.Models/SoftwareList/DipValue.cs @@ -0,0 +1,19 @@ +using System.Xml; +using System.Xml.Serialization; + +namespace SabreTools.Models.SoftwareList +{ + [XmlRoot("dipvalue")] + public class DipValue + { + [XmlAttribute("name")] + public string Name { get; set; } + + [XmlAttribute("value")] + public string Value { get; set; } + + /// (yes|no) "no" + [XmlAttribute("default")] + public string? Default { get; set; } + } +} \ No newline at end of file diff --git a/SabreTools.Models/SoftwareList/Disk.cs b/SabreTools.Models/SoftwareList/Disk.cs new file mode 100644 index 00000000..b5966dd6 --- /dev/null +++ b/SabreTools.Models/SoftwareList/Disk.cs @@ -0,0 +1,23 @@ +using System.Xml; +using System.Xml.Serialization; + +namespace SabreTools.Models.SoftwareList +{ + [XmlRoot("disk")] + public class Disk + { + [XmlAttribute("name")] + public string Name { get; set; } + + [XmlAttribute("sha1")] + public string? SHA1 { get; set; } + + /// (baddump|nodump|good) "good" + [XmlAttribute("status")] + public string? Status { get; set; } + + /// (yes|no) "no" + [XmlAttribute("writeable")] + public string? Writeable { get; set; } + } +} \ No newline at end of file diff --git a/SabreTools.Models/SoftwareList/DiskArea.cs b/SabreTools.Models/SoftwareList/DiskArea.cs new file mode 100644 index 00000000..53a480ed --- /dev/null +++ b/SabreTools.Models/SoftwareList/DiskArea.cs @@ -0,0 +1,15 @@ +using System.Xml; +using System.Xml.Serialization; + +namespace SabreTools.Models.SoftwareList +{ + [XmlRoot("diskarea")] + public class DiskArea + { + [XmlAttribute("name")] + public string Name { get; set; } + + [XmlElement("disk")] + public Disk[]? Disk { get; set; } + } +} \ No newline at end of file diff --git a/SabreTools.Models/SoftwareList/Feature.cs b/SabreTools.Models/SoftwareList/Feature.cs new file mode 100644 index 00000000..a8fc8894 --- /dev/null +++ b/SabreTools.Models/SoftwareList/Feature.cs @@ -0,0 +1,15 @@ +using System.Xml; +using System.Xml.Serialization; + +namespace SabreTools.Models.SoftwareList +{ + [XmlRoot("feature")] + public class Feature + { + [XmlAttribute("name")] + public string Name { get; set; } + + [XmlAttribute("value")] + public string? Value { get; set; } + } +} \ No newline at end of file diff --git a/SabreTools.Models/SoftwareList/Info.cs b/SabreTools.Models/SoftwareList/Info.cs new file mode 100644 index 00000000..f843b890 --- /dev/null +++ b/SabreTools.Models/SoftwareList/Info.cs @@ -0,0 +1,15 @@ +using System.Xml; +using System.Xml.Serialization; + +namespace SabreTools.Models.SoftwareList +{ + [XmlRoot("info")] + public class Info + { + [XmlAttribute("name")] + public string Name { get; set; } + + [XmlAttribute("value")] + public string? Value { get; set; } + } +} \ No newline at end of file diff --git a/SabreTools.Models/SoftwareList/Part.cs b/SabreTools.Models/SoftwareList/Part.cs new file mode 100644 index 00000000..a52bb7f8 --- /dev/null +++ b/SabreTools.Models/SoftwareList/Part.cs @@ -0,0 +1,27 @@ +using System.Xml; +using System.Xml.Serialization; + +namespace SabreTools.Models.SoftwareList +{ + [XmlRoot("part")] + public class Part + { + [XmlAttribute("name")] + public string Name { get; set; } + + [XmlAttribute("interface")] + public string Interface { get; set; } + + [XmlElement("feature")] + public Feature[]? Feature { get; set; } + + [XmlElement("dataarea")] + public DataArea[]? DataArea { get; set; } + + [XmlElement("diskarea")] + public DiskArea[]? DiskArea { get; set; } + + [XmlElement("dipswitch")] + public DipSwitch[]? DipSwitch { get; set; } + } +} \ No newline at end of file diff --git a/SabreTools.Models/SoftwareList/Rom.cs b/SabreTools.Models/SoftwareList/Rom.cs new file mode 100644 index 00000000..5add8337 --- /dev/null +++ b/SabreTools.Models/SoftwareList/Rom.cs @@ -0,0 +1,36 @@ +using System.Xml; +using System.Xml.Serialization; + +namespace SabreTools.Models.SoftwareList +{ + [XmlRoot("rom")] + public class Rom + { + [XmlAttribute("name")] + public string Name { get; set; } + + [XmlAttribute("size")] + public long Size { get; set; } + + [XmlAttribute("crc")] + public string? CRC { get; set; } + + [XmlAttribute("sha1")] + public string? SHA1 { get; set; } + + /// Numeric? + [XmlAttribute("offset")] + public string? Offset { get; set; } + + [XmlAttribute("value")] + public string? Value { get; set; } + + /// (baddump|nodump|good) "good" + [XmlAttribute("status")] + public string? Status { get; set; } + + /// (load16_byte|load16_word|load16_word_swap|load32_byte|load32_word|load32_word_swap|load32_dword|load64_word|load64_word_swap|reload|fill|continue|reload_plain|ignore) + [XmlAttribute("loadflag")] + public string? LoadFlag { get; set; } + } +} \ No newline at end of file diff --git a/SabreTools.Models/SoftwareList/SharedFeat.cs b/SabreTools.Models/SoftwareList/SharedFeat.cs new file mode 100644 index 00000000..23dd00c1 --- /dev/null +++ b/SabreTools.Models/SoftwareList/SharedFeat.cs @@ -0,0 +1,15 @@ +using System.Xml; +using System.Xml.Serialization; + +namespace SabreTools.Models.SoftwareList +{ + [XmlRoot("sharedfeat")] + public class SharedFeat + { + [XmlAttribute("name")] + public string Name { get; set; } + + [XmlAttribute("value")] + public string? Value { get; set; } + } +} \ No newline at end of file diff --git a/SabreTools.Models/SoftwareList/Software.cs b/SabreTools.Models/SoftwareList/Software.cs new file mode 100644 index 00000000..ee0ff505 --- /dev/null +++ b/SabreTools.Models/SoftwareList/Software.cs @@ -0,0 +1,40 @@ +using System.Xml; +using System.Xml.Serialization; + +namespace SabreTools.Models.SoftwareList +{ + [XmlRoot("software")] + public class Software + { + [XmlAttribute("name")] + public string Name { get; set; } + + [XmlAttribute("cloneof")] + public string? CloneOf { get; set; } + + /// (yes|partial|no) "yes" + [XmlAttribute("supported")] + public string? Supported { get; set; } + + [XmlElement("description")] + public string Description { get; set; } + + [XmlElement("year")] + public string Year { get; set; } + + [XmlElement("publisher")] + public string Publisher { get; set; } + + [XmlElement("notes")] + public string? Notes { get; set; } + + [XmlElement("info")] + public Info[]? Info { get; set; } + + [XmlElement("sharedfeat")] + public SharedFeat[]? SharedFeat { get; set; } + + [XmlElement("part")] + public Part[]? Part { get; set; } + } +} \ No newline at end of file diff --git a/SabreTools.Models/SoftwareList/SoftwareList.cs b/SabreTools.Models/SoftwareList/SoftwareList.cs new file mode 100644 index 00000000..adbaf704 --- /dev/null +++ b/SabreTools.Models/SoftwareList/SoftwareList.cs @@ -0,0 +1,21 @@ +using System.Xml; +using System.Xml.Serialization; + +namespace SabreTools.Models.SoftwareList +{ + [XmlRoot("softwarelist")] + public class SoftwareList + { + [XmlAttribute("name")] + public string Name { get; set; } + + [XmlAttribute("description")] + public string? Description { get; set; } + + [XmlElement("notes")] + public string? Notes { get; set; } + + [XmlElement("software")] + public Software[] Software { get; set; } + } +} \ No newline at end of file diff --git a/SabreTools.sln b/SabreTools.sln index 0f3dc615..c058564c 100644 --- a/SabreTools.sln +++ b/SabreTools.sln @@ -38,6 +38,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SabreTools.Reports", "Sabre EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SabreTools.Test", "SabreTools.Test\SabreTools.Test.csproj", "{5B4E67D5-F4DA-4750-8FE2-04D08E343791}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SabreTools.Models", "SabreTools.Models\SabreTools.Models.csproj", "{EF2EFD36-B6C4-4555-8604-2DDCA3AD6518}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -158,6 +160,14 @@ Global {5B4E67D5-F4DA-4750-8FE2-04D08E343791}.Release|Any CPU.Build.0 = Release|Any CPU {5B4E67D5-F4DA-4750-8FE2-04D08E343791}.Release|x64.ActiveCfg = Release|Any CPU {5B4E67D5-F4DA-4750-8FE2-04D08E343791}.Release|x64.Build.0 = Release|Any CPU + {EF2EFD36-B6C4-4555-8604-2DDCA3AD6518}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EF2EFD36-B6C4-4555-8604-2DDCA3AD6518}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EF2EFD36-B6C4-4555-8604-2DDCA3AD6518}.Debug|x64.ActiveCfg = Debug|Any CPU + {EF2EFD36-B6C4-4555-8604-2DDCA3AD6518}.Debug|x64.Build.0 = Debug|Any CPU + {EF2EFD36-B6C4-4555-8604-2DDCA3AD6518}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EF2EFD36-B6C4-4555-8604-2DDCA3AD6518}.Release|Any CPU.Build.0 = Release|Any CPU + {EF2EFD36-B6C4-4555-8604-2DDCA3AD6518}.Release|x64.ActiveCfg = Release|Any CPU + {EF2EFD36-B6C4-4555-8604-2DDCA3AD6518}.Release|x64.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE