mirror of
https://github.com/claunia/SabreTools.git
synced 2025-12-16 19:14:27 +00:00
Update formatting of DatItems
This commit is contained in:
@@ -2,12 +2,11 @@
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Xml.Serialization;
|
||||
|
||||
using Newtonsoft.Json;
|
||||
using Newtonsoft.Json.Converters;
|
||||
using SabreTools.Core;
|
||||
using SabreTools.Core.Tools;
|
||||
using SabreTools.FileTypes;
|
||||
using Newtonsoft.Json;
|
||||
using Newtonsoft.Json.Converters;
|
||||
|
||||
namespace SabreTools.DatItems.Formats
|
||||
{
|
||||
@@ -36,22 +35,19 @@ namespace SabreTools.DatItems.Formats
|
||||
/// <summary>
|
||||
/// Name of the item
|
||||
/// </summary>
|
||||
[JsonProperty("name")]
|
||||
[XmlElement("name")]
|
||||
[JsonProperty("name"), XmlElement("name")]
|
||||
public string Name { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// What BIOS is required for this rom
|
||||
/// </summary>
|
||||
[JsonProperty("bios", DefaultValueHandling = DefaultValueHandling.Ignore)]
|
||||
[XmlElement("bios")]
|
||||
[JsonProperty("bios", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("bios")]
|
||||
public string Bios { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Byte size of the rom
|
||||
/// </summary>
|
||||
[JsonProperty("size", DefaultValueHandling = DefaultValueHandling.Ignore)]
|
||||
[XmlElement("size")]
|
||||
[JsonProperty("size", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("size")]
|
||||
public long? Size { get; set; } = null;
|
||||
|
||||
[JsonIgnore]
|
||||
@@ -60,8 +56,7 @@ namespace SabreTools.DatItems.Formats
|
||||
/// <summary>
|
||||
/// File CRC32 hash
|
||||
/// </summary>
|
||||
[JsonProperty("crc", DefaultValueHandling = DefaultValueHandling.Ignore)]
|
||||
[XmlElement("crc")]
|
||||
[JsonProperty("crc", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("crc")]
|
||||
public string CRC
|
||||
{
|
||||
get { return _crc.IsNullOrEmpty() ? null : Utilities.ByteArrayToString(_crc); }
|
||||
@@ -71,8 +66,7 @@ namespace SabreTools.DatItems.Formats
|
||||
/// <summary>
|
||||
/// File MD5 hash
|
||||
/// </summary>
|
||||
[JsonProperty("md5", DefaultValueHandling = DefaultValueHandling.Ignore)]
|
||||
[XmlElement("md5")]
|
||||
[JsonProperty("md5", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("md5")]
|
||||
public string MD5
|
||||
{
|
||||
get { return _md5.IsNullOrEmpty() ? null : Utilities.ByteArrayToString(_md5); }
|
||||
@@ -82,8 +76,7 @@ namespace SabreTools.DatItems.Formats
|
||||
/// <summary>
|
||||
/// File SHA-1 hash
|
||||
/// </summary>
|
||||
[JsonProperty("sha1", DefaultValueHandling = DefaultValueHandling.Ignore)]
|
||||
[XmlElement("sha1")]
|
||||
[JsonProperty("sha1", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("sha1")]
|
||||
public string SHA1
|
||||
{
|
||||
get { return _sha1.IsNullOrEmpty() ? null : Utilities.ByteArrayToString(_sha1); }
|
||||
@@ -93,8 +86,7 @@ namespace SabreTools.DatItems.Formats
|
||||
/// <summary>
|
||||
/// File SHA-256 hash
|
||||
/// </summary>
|
||||
[JsonProperty("sha256", DefaultValueHandling = DefaultValueHandling.Ignore)]
|
||||
[XmlElement("sha256")]
|
||||
[JsonProperty("sha256", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("sha256")]
|
||||
public string SHA256
|
||||
{
|
||||
get { return _sha256.IsNullOrEmpty() ? null : Utilities.ByteArrayToString(_sha256); }
|
||||
@@ -104,8 +96,7 @@ namespace SabreTools.DatItems.Formats
|
||||
/// <summary>
|
||||
/// File SHA-384 hash
|
||||
/// </summary>
|
||||
[JsonProperty("sha384", DefaultValueHandling = DefaultValueHandling.Ignore)]
|
||||
[XmlElement("sha384")]
|
||||
[JsonProperty("sha384", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("sha384")]
|
||||
public string SHA384
|
||||
{
|
||||
get { return _sha384.IsNullOrEmpty() ? null : Utilities.ByteArrayToString(_sha384); }
|
||||
@@ -115,8 +106,7 @@ namespace SabreTools.DatItems.Formats
|
||||
/// <summary>
|
||||
/// File SHA-512 hash
|
||||
/// </summary>
|
||||
[JsonProperty("sha512", DefaultValueHandling = DefaultValueHandling.Ignore)]
|
||||
[XmlElement("sha512")]
|
||||
[JsonProperty("sha512", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("sha512")]
|
||||
public string SHA512
|
||||
{
|
||||
get { return _sha512.IsNullOrEmpty() ? null : Utilities.ByteArrayToString(_sha512); }
|
||||
@@ -126,8 +116,7 @@ namespace SabreTools.DatItems.Formats
|
||||
/// <summary>
|
||||
/// File SpamSum fuzzy hash
|
||||
/// </summary>
|
||||
[JsonProperty("spamsum", DefaultValueHandling = DefaultValueHandling.Ignore)]
|
||||
[XmlElement("spamsum")]
|
||||
[JsonProperty("spamsum", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("spamsum")]
|
||||
public string SpamSum
|
||||
{
|
||||
get { return _spamsum.IsNullOrEmpty() ? null : Encoding.UTF8.GetString(_spamsum); }
|
||||
@@ -137,37 +126,32 @@ namespace SabreTools.DatItems.Formats
|
||||
/// <summary>
|
||||
/// Rom name to merge from parent
|
||||
/// </summary>
|
||||
[JsonProperty("merge", DefaultValueHandling = DefaultValueHandling.Ignore)]
|
||||
[XmlElement("merge")]
|
||||
[JsonProperty("merge", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("merge")]
|
||||
public string MergeTag { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Rom region
|
||||
/// </summary>
|
||||
[JsonProperty("region", DefaultValueHandling = DefaultValueHandling.Ignore)]
|
||||
[XmlElement("biregionos")]
|
||||
[JsonProperty("region", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("biregionos")]
|
||||
public string Region { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Data offset within rom
|
||||
/// </summary>
|
||||
[JsonProperty("offset", DefaultValueHandling = DefaultValueHandling.Ignore)]
|
||||
[XmlElement("offset")]
|
||||
[JsonProperty("offset", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("offset")]
|
||||
public string Offset { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// File created date
|
||||
/// </summary>
|
||||
[JsonProperty("date", DefaultValueHandling = DefaultValueHandling.Ignore)]
|
||||
[XmlElement("date")]
|
||||
[JsonProperty("date", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("date")]
|
||||
public string Date { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Rom dump status
|
||||
/// </summary>
|
||||
[JsonProperty("status", DefaultValueHandling = DefaultValueHandling.Ignore)]
|
||||
[JsonProperty("status", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("status")]
|
||||
[JsonConverter(typeof(StringEnumConverter))]
|
||||
[XmlElement("status")]
|
||||
public ItemStatus ItemStatus { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
@@ -176,8 +160,7 @@ namespace SabreTools.DatItems.Formats
|
||||
/// <summary>
|
||||
/// Determine if the rom is optional in the set
|
||||
/// </summary>
|
||||
[JsonProperty("optional", DefaultValueHandling = DefaultValueHandling.Ignore)]
|
||||
[XmlElement("optional")]
|
||||
[JsonProperty("optional", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("optional")]
|
||||
public bool? Optional { get; set; } = null;
|
||||
|
||||
[JsonIgnore]
|
||||
@@ -186,8 +169,7 @@ namespace SabreTools.DatItems.Formats
|
||||
/// <summary>
|
||||
/// Determine if the CRC32 hash is inverted
|
||||
/// </summary>
|
||||
[JsonProperty("inverted", DefaultValueHandling = DefaultValueHandling.Ignore)]
|
||||
[XmlElement("inverted")]
|
||||
[JsonProperty("inverted", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("inverted")]
|
||||
public bool? Inverted { get; set; } = null;
|
||||
|
||||
[JsonIgnore]
|
||||
@@ -200,22 +182,19 @@ namespace SabreTools.DatItems.Formats
|
||||
/// <summary>
|
||||
/// Source of file
|
||||
/// </summary>
|
||||
[JsonProperty("ado_source", DefaultValueHandling = DefaultValueHandling.Ignore)]
|
||||
[XmlElement("ado_source")]
|
||||
[JsonProperty("ado_source", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("ado_source")]
|
||||
public string ArchiveDotOrgSource { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Archive.org recognized file format
|
||||
/// </summary>
|
||||
[JsonProperty("ado_format", DefaultValueHandling = DefaultValueHandling.Ignore)]
|
||||
[XmlElement("ado_format")]
|
||||
[JsonProperty("ado_format", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("ado_format")]
|
||||
public string ArchiveDotOrgFormat { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Original filename
|
||||
/// </summary>
|
||||
[JsonProperty("original_filename", DefaultValueHandling = DefaultValueHandling.Ignore)]
|
||||
[XmlElement("original_filename")]
|
||||
[JsonProperty("original_filename", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("original_filename")]
|
||||
public string OriginalFilename { get; set; }
|
||||
|
||||
/// <summary>
|
||||
@@ -224,15 +203,13 @@ namespace SabreTools.DatItems.Formats
|
||||
/// <remarks>
|
||||
/// TODO: This might be Int32?
|
||||
/// </remarks>
|
||||
[JsonProperty("rotation", DefaultValueHandling = DefaultValueHandling.Ignore)]
|
||||
[XmlElement("rotation")]
|
||||
[JsonProperty("rotation", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("rotation")]
|
||||
public string Rotation { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Summation value?
|
||||
/// </summary>
|
||||
[JsonProperty("summation", DefaultValueHandling = DefaultValueHandling.Ignore)]
|
||||
[XmlElement("summation")]
|
||||
[JsonProperty("summation", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("summation")]
|
||||
public string Summation { get; set; }
|
||||
|
||||
#endregion
|
||||
@@ -242,15 +219,13 @@ namespace SabreTools.DatItems.Formats
|
||||
/// <summary>
|
||||
/// Alternate name for the item
|
||||
/// </summary>
|
||||
[JsonProperty("alt_romname", DefaultValueHandling = DefaultValueHandling.Ignore)]
|
||||
[XmlElement("alt_romname")]
|
||||
[JsonProperty("alt_romname", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("alt_romname")]
|
||||
public string AltName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Alternate title for the item
|
||||
/// </summary>
|
||||
[JsonProperty("alt_title", DefaultValueHandling = DefaultValueHandling.Ignore)]
|
||||
[XmlElement("alt_title")]
|
||||
[JsonProperty("alt_title", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("alt_title")]
|
||||
public string AltTitle { get; set; }
|
||||
|
||||
#endregion
|
||||
@@ -260,8 +235,7 @@ namespace SabreTools.DatItems.Formats
|
||||
/// <summary>
|
||||
/// OpenMSX sub item type
|
||||
/// </summary>
|
||||
[JsonProperty("original", DefaultValueHandling = DefaultValueHandling.Ignore)]
|
||||
[XmlElement("original")]
|
||||
[JsonProperty("original", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("original")]
|
||||
public Original Original { get; set; } = null;
|
||||
|
||||
[JsonIgnore]
|
||||
@@ -270,8 +244,7 @@ namespace SabreTools.DatItems.Formats
|
||||
/// <summary>
|
||||
/// OpenMSX sub item type
|
||||
/// </summary>
|
||||
[JsonProperty("openmsx_subtype", DefaultValueHandling = DefaultValueHandling.Ignore)]
|
||||
[XmlElement("openmsx_subtype")]
|
||||
[JsonProperty("openmsx_subtype", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("openmsx_subtype")]
|
||||
[JsonConverter(typeof(StringEnumConverter))]
|
||||
public OpenMSXSubType OpenMSXSubType { get; set; }
|
||||
|
||||
@@ -282,22 +255,19 @@ namespace SabreTools.DatItems.Formats
|
||||
/// OpenMSX sub item type
|
||||
/// </summary>
|
||||
/// <remarks>Not related to the subtype above</remarks>
|
||||
[JsonProperty("openmsx_type", DefaultValueHandling = DefaultValueHandling.Ignore)]
|
||||
[XmlElement("openmsx_type")]
|
||||
[JsonProperty("openmsx_type", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("openmsx_type")]
|
||||
public string OpenMSXType { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Item remark (like a comment)
|
||||
/// </summary>
|
||||
[JsonProperty("remark", DefaultValueHandling = DefaultValueHandling.Ignore)]
|
||||
[XmlElement("remark")]
|
||||
[JsonProperty("remark", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("remark")]
|
||||
public string Remark { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Boot state
|
||||
/// </summary>
|
||||
[JsonProperty("boot", DefaultValueHandling = DefaultValueHandling.Ignore)]
|
||||
[XmlElement("boot")]
|
||||
[JsonProperty("boot", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("boot")]
|
||||
public string Boot { get; set; }
|
||||
|
||||
#endregion
|
||||
@@ -307,8 +277,7 @@ namespace SabreTools.DatItems.Formats
|
||||
/// <summary>
|
||||
/// Data area information
|
||||
/// </summary>
|
||||
[JsonProperty("dataarea", DefaultValueHandling = DefaultValueHandling.Ignore)]
|
||||
[XmlElement("dataarea")]
|
||||
[JsonProperty("dataarea", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("dataarea")]
|
||||
public DataArea DataArea { get; set; } = null;
|
||||
|
||||
[JsonIgnore]
|
||||
@@ -327,8 +296,7 @@ namespace SabreTools.DatItems.Formats
|
||||
/// <summary>
|
||||
/// Loading flag
|
||||
/// </summary>
|
||||
[JsonProperty("loadflag", DefaultValueHandling = DefaultValueHandling.Ignore)]
|
||||
[XmlElement("loadflag")]
|
||||
[JsonProperty("loadflag", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("loadflag")]
|
||||
[JsonConverter(typeof(StringEnumConverter))]
|
||||
public LoadFlag LoadFlag { get; set; }
|
||||
|
||||
@@ -338,8 +306,7 @@ namespace SabreTools.DatItems.Formats
|
||||
/// <summary>
|
||||
/// Original hardware part associated with the item
|
||||
/// </summary>
|
||||
[JsonProperty("part", DefaultValueHandling = DefaultValueHandling.Ignore)]
|
||||
[XmlElement("part")]
|
||||
[JsonProperty("part", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("part")]
|
||||
public Part Part { get; set; } = null;
|
||||
|
||||
[JsonIgnore]
|
||||
@@ -356,8 +323,7 @@ namespace SabreTools.DatItems.Formats
|
||||
/// <summary>
|
||||
/// SoftwareList value associated with the item
|
||||
/// </summary>
|
||||
[JsonProperty("value", DefaultValueHandling = DefaultValueHandling.Ignore)]
|
||||
[XmlElement("value")]
|
||||
[JsonProperty("value", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("value")]
|
||||
public string Value { get; set; }
|
||||
|
||||
#endregion
|
||||
@@ -433,6 +399,7 @@ namespace SabreTools.DatItems.Formats
|
||||
|
||||
#region Cloning Methods
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override object Clone()
|
||||
{
|
||||
return new Rom()
|
||||
@@ -503,6 +470,7 @@ namespace SabreTools.DatItems.Formats
|
||||
|
||||
#region Comparision Methods
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override bool Equals(DatItem other)
|
||||
{
|
||||
bool dupefound = false;
|
||||
|
||||
Reference in New Issue
Block a user