using System.Collections.Generic; using Newtonsoft.Json; /// /// This holds all of the auxiliary types needed for proper parsing /// namespace SabreTools.Library.DatItems { #region Machine #region ListXML /// /// Represents one ListXML adjuster /// [JsonObject("adjuster")] public class ListXmlAdjuster { [JsonProperty("name")] public string Name { get; set; } [JsonProperty("default")] public bool? Default { get; set; } [JsonProperty("conditions")] public List Conditions { get; set; } } /// /// Represents one ListXML analog /// [JsonObject("analog")] public class ListXmlAnalog { [JsonProperty("mask")] public string Mask { get; set; } } /// /// Represents one ListXML chip /// [JsonObject("chip")] public class ListXmlChip { [JsonProperty("name")] public string Name { get; set; } [JsonProperty("tag")] public string Tag { get; set; } [JsonProperty("type")] public string Type { get; set; } // TODO: (cpu|audio) [JsonProperty("clock")] public string Clock { get; set; } } /// /// Represents one ListXML condition /// [JsonObject("condition")] public class ListXmlCondition { [JsonProperty("tag")] public string Tag { get; set; } [JsonProperty("mask")] public string Mask { get; set; } [JsonProperty("relation")] public string Relation { get; set; } // TODO: (eq|ne|gt|le|lt|ge) [JsonProperty("value")] public string Value { get; set; } } /// /// Represents one ListXML configuration /// [JsonObject("configuration")] public class ListXmlConfiguration { [JsonProperty("name")] public string Name { get; set; } [JsonProperty("tag")] public string Tag { get; set; } [JsonProperty("mask")] public string Mask { get; set; } [JsonProperty("locations")] public List Locations { get; set; } [JsonProperty("settings")] public List Settings { get; set; } } /// /// Represents one ListXML conflocation /// [JsonObject("conflocation")] public class ListXmlConfLocation { [JsonProperty("name")] public string Name { get; set; } [JsonProperty("number")] public string Number { get; set; } [JsonProperty("inverted")] public bool? Inverted { get; set; } } /// /// Represents one ListXML confsetting /// [JsonObject("confsetting")] public class ListXmlConfSetting { [JsonProperty("name")] public string Name { get; set; } [JsonProperty("value")] public string Value { get; set; } [JsonProperty("default")] public bool? Default { get; set; } } /// /// Represents one ListXML control /// [JsonObject("control")] public class ListXmlControl { [JsonProperty("type")] public string Type { get; set; } [JsonProperty("player")] public string Player { get; set; } // TODO: Int32? [JsonProperty("buttons")] public string Buttons { get; set; } // TODO: Int32? [JsonProperty("regbuttons")] public string RegButtons { get; set; } // TODO: Int32? [JsonProperty("minimum")] public string Minimum { get; set; } // TODO: Int32? Float? [JsonProperty("maximum")] public string Maximum { get; set; } // TODO: Int32? Float? [JsonProperty("sensitivity")] public string Sensitivity { get; set; } // TODO: Int32? Float? [JsonProperty("keydelta")] public string KeyDelta { get; set; } // TODO: Int32? Float? [JsonProperty("reverse")] public bool? Reverse { get; set; } [JsonProperty("ways")] public string Ways { get; set; } // TODO: Int32? Float? [JsonProperty("ways2")] public string Ways2 { get; set; } // TODO: Int32? Float? [JsonProperty("ways3")] public string Ways3 { get; set; } // TODO: Int32? Float? } /// /// Represents one ListXML device /// [JsonObject("device")] public class ListXmlDevice { [JsonProperty("type")] public string Type { get; set; } [JsonProperty("tag")] public string Tag { get; set; } [JsonProperty("fixed_image")] public string FixedImage { get; set; } [JsonProperty("mandatory")] public string Mandatory { get; set; } // TODO: bool? [JsonProperty("interface")] public string Interface { get; set; } [JsonProperty("instances")] public List Instances { get; set; } [JsonProperty("extensions")] public List Extensions { get; set; } } /// /// Represents one ListXML deviceref /// [JsonObject("deviceref")] public class ListXmlDeviceReference { [JsonProperty("name")] public string Name { get; set; } } /// /// Represents one ListXML display /// [JsonObject("display")] public class ListXmlDisplay { [JsonProperty("tag")] public string Tag { get; set; } [JsonProperty("type")] public string Type { get; set; } // TODO: (raster|vector|lcd|svg|unknown) [JsonProperty("rotate")] public string Rotate { get; set; } // TODO: (0|90|180|270) Int32? [JsonProperty("flipx")] public bool? FlipX { get; set; } [JsonProperty("width")] public string Width { get; set; } // TODO: Int32? [JsonProperty("height")] public string Height { get; set; } // TODO: Int32? [JsonProperty("refresh")] public string Refresh { get; set; } // TODO: Int32? Float? [JsonProperty("pixclock")] public string PixClock { get; set; } // TODO: Int32? Float? [JsonProperty("htotal")] public string HTotal { get; set; } // TODO: Int32? Float? [JsonProperty("hbend")] public string HBEnd { get; set; } // TODO: Int32? Float? [JsonProperty("hbstart")] public string HBStart { get; set; } // TODO: Int32? Float? [JsonProperty("vtotal")] public string VTotal { get; set; } // TODO: Int32? Float? [JsonProperty("vbend")] public string VBEnd { get; set; } // TODO: Int32? Float? [JsonProperty("vbstart")] public string VBStart { get; set; } // TODO: Int32? Float? } /// /// Represents one ListXML dipswitch /// /// Also used by SoftwareList [JsonObject("dipswitch")] public class ListXmlDipSwitch { [JsonProperty("name")] public string Name { get; set; } [JsonProperty("tag")] public string Tag { get; set; } [JsonProperty("mask")] public string Mask { get; set; } [JsonProperty("locations")] public List Locations { get; set; } [JsonProperty("values")] public List Values { get; set; } } /// /// Represents one ListXML diplocation /// [JsonObject("diplocation")] public class ListXmlDipLocation { [JsonProperty("name")] public string Name { get; set; } [JsonProperty("number")] public string Number { get; set; } [JsonProperty("inverted")] public bool? Inverted { get; set; } } /// /// Represents one ListXML dipvalue /// /// Also used by SoftwareList [JsonObject("dipvalue")] public class ListXmlDipValue { [JsonProperty("name")] public string Name { get; set; } [JsonProperty("value")] public string Value { get; set; } [JsonProperty("default")] public bool? Default { get; set; } } /// /// Represents one ListXML driver /// [JsonObject("driver")] public class ListXmlDriver { [JsonProperty("status")] public string Status { get; set; } // TODO: (good|imperfect|preliminary) [JsonProperty("emulation")] public string Emulation { get; set; } // TODO: (good|imperfect|preliminary) [JsonProperty("cocktail")] public string Cocktail { get; set; } // TODO: bool? (good|imperfect|preliminary)? [JsonProperty("savestate")] public string SaveState { get; set; } // TODO: (supported|unsupported) } /// /// Represents one ListXML extension /// [JsonObject("extension")] public class ListXmlExtension { [JsonProperty("name")] public string Name { get; set; } } /// /// Represents one ListXML feature /// [JsonObject("feature")] public class ListXmlFeature { [JsonProperty("type")] public string Type { get; set; } // TODO: (protection|palette|graphics|sound|controls|keyboard|mouse|microphone|camera|disk|printer|lan|wan|timing) [JsonProperty("status")] public string Status { get; set; } // TODO: (unemulated|imperfect) [JsonProperty("overall")] public string Overall { get; set; } // TODO: (unemulated|imperfect) } /// /// Represents one ListXML input /// [JsonObject("input")] public class ListXmlInput { [JsonProperty("service")] public bool? Service { get; set; } [JsonProperty("tilt")] public bool? Tilt { get; set; } [JsonProperty("players")] public string Players { get; set; } // TODO: Int32? [JsonProperty("coins")] public string Coins { get; set; } // TODO: Int32? [JsonProperty("controls")] public List Controls { get; set; } } /// /// Represents one ListXML instance /// [JsonObject("instance")] public class ListXmlInstance { [JsonProperty("name")] public string Name { get; set; } [JsonProperty("briefname")] public string BriefName { get; set; } } /// /// Represents one ListXML port /// [JsonObject("port")] public class ListXmlPort { [JsonProperty("tag")] public string Tag { get; set; } [JsonProperty("analogs")] public List Analogs { get; set; } } /// /// Represents one ListXML ramoption /// [JsonObject("ramoption")] public class ListXmlRamOption { [JsonProperty("default")] public bool? Default { get; set; } } /// /// Represents one ListXML slot /// [JsonObject("slot")] public class ListXmlSlot { [JsonProperty("name")] public string Name { get; set; } [JsonProperty("slotoptions")] public List SlotOptions { get; set; } } /// /// Represents one ListXML slotoption /// [JsonObject("slotoption")] public class ListXmlSlotOption { [JsonProperty("name")] public string Name { get; set; } [JsonProperty("devname")] public string DeviceName { get; set; } [JsonProperty("default")] public bool? Default { get; set; } } /// /// Represents one ListXML softwarelist /// [JsonObject("softwarelist")] public class ListXmlSoftwareList { [JsonProperty("name")] public string Name { get; set; } [JsonProperty("status")] public string Status { get; set; } // TODO: (original|compatible) [JsonProperty("filter")] public string Filter { get; set; } } /// /// Represents one ListXML sound /// [JsonObject("sound")] public class ListXmlSound { [JsonProperty("channels")] public string Channels { get; set; } // TODO: Int32? } #endregion #region OpenMSX /// /// Represents the OpenMSX original value /// [JsonObject("original")] public class OpenMSXOriginal { [JsonProperty("value")] public bool? Value { get; set; } [JsonProperty("content")] public string Content { get; set; } } #endregion #region SoftwareList /// /// Represents one SoftwareList info /// [JsonObject("info")] public class SoftwareListInfo { [JsonProperty("name")] public string Name { get; set; } [JsonProperty("value")] public string Value { get; set; } } /// /// Represents one SoftwareList shared feature object /// [JsonObject("sharedfeat")] public class SoftwareListSharedFeature { [JsonProperty("name")] public string Name { get; set; } [JsonProperty("value")] public string Value { get; set; } } #endregion #endregion // Machine #region DatItem #region SoftwareList /// /// Represents one SoftwareList feature object /// [JsonObject("feature")] public class SoftwareListFeature { [JsonProperty("name")] public string Name { get; set; } [JsonProperty("value")] public string Value { get; set; } } /// /// Represents one SoftwareList part object /// [JsonObject("part")] public class SoftwareListPart { [JsonProperty("name")] public string Name { get; set; } [JsonProperty("interface")] public string Interface { get; set; } } #endregion #endregion //DatItem }