using System.Collections.Generic; using System.IO; using System.Linq; using SabreTools.Library.DatItems; using SabreTools.Library.Filtering; using Newtonsoft.Json; using Newtonsoft.Json.Converters; using SabreTools.Library.Tools; /// /// This holds all of the auxiliary types needed for proper parsing /// namespace SabreTools.Library.DatItems { #region Machine #region ListXML /// /// Represents one ListXML control /// [JsonObject("control")] public class Control { #region Fields /// /// Control type /// [JsonProperty("type", DefaultValueHandling = DefaultValueHandling.Ignore)] public string Type { get; set; } /// /// Player ID /// [JsonProperty("player", DefaultValueHandling = DefaultValueHandling.Ignore)] public string Player { get; set; } // TODO: Int32? /// /// Button count /// [JsonProperty("buttons", DefaultValueHandling = DefaultValueHandling.Ignore)] public string Buttons { get; set; } // TODO: Int32? /// /// Regular button count /// [JsonProperty("regbuttons", DefaultValueHandling = DefaultValueHandling.Ignore)] public string RegButtons { get; set; } // TODO: Int32? /// /// Minimum value /// [JsonProperty("minimum", DefaultValueHandling = DefaultValueHandling.Ignore)] public string Minimum { get; set; } // TODO: Int32? Float? /// /// Maximum value /// [JsonProperty("maximum", DefaultValueHandling = DefaultValueHandling.Ignore)] public string Maximum { get; set; } // TODO: Int32? Float? /// /// Sensitivity value /// [JsonProperty("sensitivity", DefaultValueHandling = DefaultValueHandling.Ignore)] public string Sensitivity { get; set; } // TODO: Int32? Float? /// /// Keypress delta /// [JsonProperty("keydelta", DefaultValueHandling = DefaultValueHandling.Ignore)] public string KeyDelta { get; set; } // TODO: Int32? Float? /// /// Determines if the control is reversed /// [JsonProperty("reverse", DefaultValueHandling = DefaultValueHandling.Ignore)] public bool? Reverse { get; set; } /// /// First set of ways /// [JsonProperty("ways", DefaultValueHandling = DefaultValueHandling.Ignore)] public string Ways { get; set; } // TODO: Int32? Float? /// /// Second set of ways /// [JsonProperty("ways2", DefaultValueHandling = DefaultValueHandling.Ignore)] public string Ways2 { get; set; } // TODO: Int32? Float? /// /// Third set of ways /// [JsonProperty("ways3", DefaultValueHandling = DefaultValueHandling.Ignore)] public string Ways3 { get; set; } // TODO: Int32? Float? #endregion } /// /// Represents one ListXML slotoption /// [JsonObject("slotoption")] public class SlotOption { #region Fields /// /// Slot option name /// [JsonProperty("name")] public string Name { get; set; } /// /// Referenced device name /// [JsonProperty("devname")] public string DeviceName { get; set; } /// /// Determines if this slot option is default or not /// [JsonProperty("default", DefaultValueHandling = DefaultValueHandling.Ignore)] public bool? Default { get; set; } #endregion } #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 }