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 DatItem #region OpenMSX /// /// Represents the OpenMSX original value /// [JsonObject("original")] public class Original { [JsonProperty("value")] public bool? Value { get; set; } [JsonProperty("content")] public string Content { get; set; } } #endregion #region SoftwareList /// /// Represents one SoftwareList dataarea object /// /// /// One DataArea can contain multiple Rom items /// [JsonObject("dataarea")] public class DataArea { /// /// Name of the item /// [JsonProperty("name", DefaultValueHandling = DefaultValueHandling.Ignore)] public string Name { get; set; } /// /// Total size of the area /// [JsonProperty("size", DefaultValueHandling = DefaultValueHandling.Ignore)] public long? Size { get; set; } /// /// Byte width of the area /// [JsonProperty("width", DefaultValueHandling = DefaultValueHandling.Ignore)] public string Width { get; set; } // TODO: (8|16|32|64) "8" /// /// Byte endianness of the area /// [JsonProperty("endianness", DefaultValueHandling = DefaultValueHandling.Ignore)] public string Endianness { get; set; } // TODO: (big|little) "little" } /// /// Represents one SoftwareList diskarea object /// /// /// One DiskArea can contain multiple Disk items /// [JsonObject("diskarea")] public class DiskArea { /// /// Name of the item /// [JsonProperty("name", DefaultValueHandling = DefaultValueHandling.Ignore)] public string Name { get; set; } } /// /// Represents one SoftwareList part object /// /// /// One Part can contain multiple PartFeature, DataArea, DiskArea, and DipSwitch items /// [JsonObject("part")] public class Part { [JsonProperty("name")] public string Name { get; set; } [JsonProperty("interface")] public string Interface { get; set; } [JsonProperty("features", DefaultValueHandling = DefaultValueHandling.Ignore)] public List Features { get; set; } } /// /// Represents one SoftwareList feature object /// /// TODO: Promote this to DatItem [JsonObject("part_feature")] public class PartFeature { [JsonProperty("name")] public string Name { get; set; } [JsonProperty("value")] public string Value { get; set; } } #endregion #endregion //DatItem }