mirror of
https://github.com/claunia/SabreTools.git
synced 2025-12-16 19:14:27 +00:00
Make dat items serializable
This commit is contained in:
@@ -1,4 +1,5 @@
|
|||||||
using SabreTools.Library.Data;
|
using SabreTools.Library.Data;
|
||||||
|
using Newtonsoft.Json;
|
||||||
|
|
||||||
namespace SabreTools.Library.DatItems
|
namespace SabreTools.Library.DatItems
|
||||||
{
|
{
|
||||||
@@ -12,11 +13,13 @@ namespace SabreTools.Library.DatItems
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Description of the BIOS
|
/// Description of the BIOS
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
[JsonProperty("description")]
|
||||||
public string Description { get; set; }
|
public string Description { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Determine whether the BIOS is default
|
/// Determine whether the BIOS is default
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
[JsonProperty("default")]
|
||||||
public bool? Default { get; set; }
|
public bool? Default { get; set; }
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ using SabreTools.Library.Data;
|
|||||||
using SabreTools.Library.DatFiles;
|
using SabreTools.Library.DatFiles;
|
||||||
using SabreTools.Library.Tools;
|
using SabreTools.Library.Tools;
|
||||||
using NaturalSort;
|
using NaturalSort;
|
||||||
|
using Newtonsoft.Json;
|
||||||
|
|
||||||
namespace SabreTools.Library.DatItems
|
namespace SabreTools.Library.DatItems
|
||||||
{
|
{
|
||||||
@@ -17,7 +18,7 @@ namespace SabreTools.Library.DatItems
|
|||||||
{
|
{
|
||||||
#region Protected instance variables
|
#region Protected instance variables
|
||||||
|
|
||||||
// Machine information
|
[JsonIgnore]
|
||||||
protected Machine _machine = new Machine();
|
protected Machine _machine = new Machine();
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
@@ -29,16 +30,19 @@ namespace SabreTools.Library.DatItems
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Name of the item
|
/// Name of the item
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
[JsonProperty("name")]
|
||||||
public string Name { get; set; }
|
public string Name { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Item type for outputting
|
/// Item type for outputting
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
[JsonIgnore]
|
||||||
public ItemType ItemType { get; set; }
|
public ItemType ItemType { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Duplicate type when compared to another item
|
/// Duplicate type when compared to another item
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
[JsonIgnore]
|
||||||
public DupeType DupeType { get; set; }
|
public DupeType DupeType { get; set; }
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
@@ -48,6 +52,7 @@ namespace SabreTools.Library.DatItems
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Name of the machine associated with the item
|
/// Name of the machine associated with the item
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
[JsonIgnore]
|
||||||
public string MachineName
|
public string MachineName
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
@@ -73,6 +78,7 @@ namespace SabreTools.Library.DatItems
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Additional notes on the machine
|
/// Additional notes on the machine
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
[JsonIgnore]
|
||||||
public string Comment
|
public string Comment
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
@@ -98,6 +104,7 @@ namespace SabreTools.Library.DatItems
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Extended description of the machine
|
/// Extended description of the machine
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
[JsonIgnore]
|
||||||
public string MachineDescription
|
public string MachineDescription
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
@@ -123,6 +130,7 @@ namespace SabreTools.Library.DatItems
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Machine year(s) of release/manufacture
|
/// Machine year(s) of release/manufacture
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
[JsonIgnore]
|
||||||
public string Year
|
public string Year
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
@@ -148,6 +156,7 @@ namespace SabreTools.Library.DatItems
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Machine manufacturer, if available
|
/// Machine manufacturer, if available
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
[JsonIgnore]
|
||||||
public string Manufacturer
|
public string Manufacturer
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
@@ -173,6 +182,7 @@ namespace SabreTools.Library.DatItems
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Machine publisher, if available
|
/// Machine publisher, if available
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
[JsonIgnore]
|
||||||
public string Publisher
|
public string Publisher
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
@@ -198,6 +208,7 @@ namespace SabreTools.Library.DatItems
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Machine romof parent
|
/// Machine romof parent
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
[JsonIgnore]
|
||||||
public string RomOf
|
public string RomOf
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
@@ -223,6 +234,7 @@ namespace SabreTools.Library.DatItems
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Machine cloneof parent
|
/// Machine cloneof parent
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
[JsonIgnore]
|
||||||
public string CloneOf
|
public string CloneOf
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
@@ -248,6 +260,7 @@ namespace SabreTools.Library.DatItems
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Machine sampleof parent
|
/// Machine sampleof parent
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
[JsonIgnore]
|
||||||
public string SampleOf
|
public string SampleOf
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
@@ -274,6 +287,7 @@ namespace SabreTools.Library.DatItems
|
|||||||
/// Machine support status
|
/// Machine support status
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <remarks>yes = true, partial = null, no = false</remarks>
|
/// <remarks>yes = true, partial = null, no = false</remarks>
|
||||||
|
[JsonIgnore]
|
||||||
public bool? Supported
|
public bool? Supported
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
@@ -299,6 +313,7 @@ namespace SabreTools.Library.DatItems
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Emulator source file related to the machine
|
/// Emulator source file related to the machine
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
[JsonIgnore]
|
||||||
public string SourceFile
|
public string SourceFile
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
@@ -325,6 +340,7 @@ namespace SabreTools.Library.DatItems
|
|||||||
/// Machine runnable status
|
/// Machine runnable status
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <remarks>yes = true, partial = null, no = false</remarks>
|
/// <remarks>yes = true, partial = null, no = false</remarks>
|
||||||
|
[JsonIgnore]
|
||||||
public bool? Runnable
|
public bool? Runnable
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
@@ -350,6 +366,7 @@ namespace SabreTools.Library.DatItems
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Machine board name
|
/// Machine board name
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
[JsonIgnore]
|
||||||
public string Board
|
public string Board
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
@@ -375,6 +392,7 @@ namespace SabreTools.Library.DatItems
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Rebuild location if different than machine name
|
/// Rebuild location if different than machine name
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
[JsonIgnore]
|
||||||
public string RebuildTo
|
public string RebuildTo
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
@@ -400,6 +418,7 @@ namespace SabreTools.Library.DatItems
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// List of associated device names
|
/// List of associated device names
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
[JsonIgnore]
|
||||||
public List<string> Devices
|
public List<string> Devices
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
@@ -425,6 +444,7 @@ namespace SabreTools.Library.DatItems
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// List of slot options
|
/// List of slot options
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
[JsonIgnore]
|
||||||
public List<string> SlotOptions
|
public List<string> SlotOptions
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
@@ -450,6 +470,7 @@ namespace SabreTools.Library.DatItems
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// List of info items
|
/// List of info items
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
[JsonIgnore]
|
||||||
public List<KeyValuePair<string, string>> Infos
|
public List<KeyValuePair<string, string>> Infos
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
@@ -475,6 +496,7 @@ namespace SabreTools.Library.DatItems
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Type of the associated machine
|
/// Type of the associated machine
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
[JsonIgnore]
|
||||||
public MachineType MachineType
|
public MachineType MachineType
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
@@ -504,26 +526,31 @@ namespace SabreTools.Library.DatItems
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Original hardware part associated with the item
|
/// Original hardware part associated with the item
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
[JsonProperty("partname")]
|
||||||
public string PartName { get; set; }
|
public string PartName { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Original hardware interface associated with the item
|
/// Original hardware interface associated with the item
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
[JsonProperty("partinterface")]
|
||||||
public string PartInterface { get; set; }
|
public string PartInterface { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Features provided to/by the item
|
/// Features provided to/by the item
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
[JsonProperty("features")]
|
||||||
public List<KeyValuePair<string, string>> Features { get; set; }
|
public List<KeyValuePair<string, string>> Features { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Original hardware part name within an item
|
/// Original hardware part name within an item
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
[JsonProperty("areaname")]
|
||||||
public string AreaName { get; set; }
|
public string AreaName { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Original hardware size within the part
|
/// Original hardware size within the part
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
[JsonProperty("areasize")]
|
||||||
public long? AreaSize { get; set; }
|
public long? AreaSize { get; set; }
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
@@ -533,26 +560,31 @@ namespace SabreTools.Library.DatItems
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Internal system ID for organization
|
/// Internal system ID for organization
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
[JsonIgnore]
|
||||||
public int SystemID { get; set; }
|
public int SystemID { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Internal system name for organization
|
/// Internal system name for organization
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
[JsonIgnore]
|
||||||
public string System { get; set; }
|
public string System { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Internal source ID for organization
|
/// Internal source ID for organization
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
[JsonIgnore]
|
||||||
public int SourceID { get; set; }
|
public int SourceID { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Internal source name for organization
|
/// Internal source name for organization
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
[JsonIgnore]
|
||||||
public string Source { get; set; }
|
public string Source { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Flag if item should be removed
|
/// Flag if item should be removed
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
[JsonIgnore]
|
||||||
public bool Remove { get; set; }
|
public bool Remove { get; set; }
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|||||||
@@ -3,6 +3,7 @@
|
|||||||
using SabreTools.Library.Data;
|
using SabreTools.Library.Data;
|
||||||
using SabreTools.Library.FileTypes;
|
using SabreTools.Library.FileTypes;
|
||||||
using SabreTools.Library.Tools;
|
using SabreTools.Library.Tools;
|
||||||
|
using Newtonsoft.Json;
|
||||||
|
|
||||||
namespace SabreTools.Library.DatItems
|
namespace SabreTools.Library.DatItems
|
||||||
{
|
{
|
||||||
@@ -27,6 +28,7 @@ namespace SabreTools.Library.DatItems
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Data MD5 hash
|
/// Data MD5 hash
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
[JsonProperty("md5")]
|
||||||
public string MD5
|
public string MD5
|
||||||
{
|
{
|
||||||
get { return _md5.IsNullOrWhiteSpace() ? null : Utilities.ByteArrayToString(_md5); }
|
get { return _md5.IsNullOrWhiteSpace() ? null : Utilities.ByteArrayToString(_md5); }
|
||||||
@@ -36,6 +38,7 @@ namespace SabreTools.Library.DatItems
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Data RIPEMD160 hash
|
/// Data RIPEMD160 hash
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
[JsonProperty("ripemd160")]
|
||||||
public string RIPEMD160
|
public string RIPEMD160
|
||||||
{
|
{
|
||||||
get { return _ripemd160.IsNullOrWhiteSpace() ? null : Utilities.ByteArrayToString(_ripemd160); }
|
get { return _ripemd160.IsNullOrWhiteSpace() ? null : Utilities.ByteArrayToString(_ripemd160); }
|
||||||
@@ -45,6 +48,7 @@ namespace SabreTools.Library.DatItems
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Data SHA-1 hash
|
/// Data SHA-1 hash
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
[JsonProperty("sha1")]
|
||||||
public string SHA1
|
public string SHA1
|
||||||
{
|
{
|
||||||
get { return _sha1.IsNullOrWhiteSpace() ? null : Utilities.ByteArrayToString(_sha1); }
|
get { return _sha1.IsNullOrWhiteSpace() ? null : Utilities.ByteArrayToString(_sha1); }
|
||||||
@@ -54,6 +58,7 @@ namespace SabreTools.Library.DatItems
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Data SHA-256 hash
|
/// Data SHA-256 hash
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
[JsonProperty("sha256")]
|
||||||
public string SHA256
|
public string SHA256
|
||||||
{
|
{
|
||||||
get { return _sha256.IsNullOrWhiteSpace() ? null : Utilities.ByteArrayToString(_sha256); }
|
get { return _sha256.IsNullOrWhiteSpace() ? null : Utilities.ByteArrayToString(_sha256); }
|
||||||
@@ -63,6 +68,7 @@ namespace SabreTools.Library.DatItems
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Data SHA-384 hash
|
/// Data SHA-384 hash
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
[JsonProperty("sha384")]
|
||||||
public string SHA384
|
public string SHA384
|
||||||
{
|
{
|
||||||
get { return _sha384.IsNullOrWhiteSpace() ? null : Utilities.ByteArrayToString(_sha384); }
|
get { return _sha384.IsNullOrWhiteSpace() ? null : Utilities.ByteArrayToString(_sha384); }
|
||||||
@@ -72,6 +78,7 @@ namespace SabreTools.Library.DatItems
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Data SHA-512 hash
|
/// Data SHA-512 hash
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
[JsonProperty("sha512")]
|
||||||
public string SHA512
|
public string SHA512
|
||||||
{
|
{
|
||||||
get { return _sha512.IsNullOrWhiteSpace() ? null : Utilities.ByteArrayToString(_sha512); }
|
get { return _sha512.IsNullOrWhiteSpace() ? null : Utilities.ByteArrayToString(_sha512); }
|
||||||
@@ -81,31 +88,37 @@ namespace SabreTools.Library.DatItems
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Disk name to merge from parent
|
/// Disk name to merge from parent
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
[JsonProperty("merge")]
|
||||||
public string MergeTag { get; set; }
|
public string MergeTag { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Disk region
|
/// Disk region
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
[JsonProperty("region")]
|
||||||
public string Region { get; set; }
|
public string Region { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Disk index
|
/// Disk index
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
[JsonProperty("index")]
|
||||||
public string Index { get; set; }
|
public string Index { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Disk writable flag
|
/// Disk writable flag
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
[JsonProperty("writable")]
|
||||||
public bool? Writable { get; set; }
|
public bool? Writable { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Disk dump status
|
/// Disk dump status
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
[JsonProperty("status")]
|
||||||
public ItemStatus ItemStatus { get; set; }
|
public ItemStatus ItemStatus { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Determine if the disk is optional in the set
|
/// Determine if the disk is optional in the set
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
[JsonProperty("optional")]
|
||||||
public bool? Optional { get; set; }
|
public bool? Optional { get; set; }
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
|
||||||
using SabreTools.Library.Data;
|
using SabreTools.Library.Data;
|
||||||
|
using Newtonsoft.Json;
|
||||||
|
|
||||||
namespace SabreTools.Library.DatItems
|
namespace SabreTools.Library.DatItems
|
||||||
{
|
{
|
||||||
@@ -15,93 +16,111 @@ namespace SabreTools.Library.DatItems
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Name of the machine
|
/// Name of the machine
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
[JsonProperty("name")]
|
||||||
public string Name { get; set; }
|
public string Name { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Additional notes
|
/// Additional notes
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
[JsonProperty("comment")]
|
||||||
public string Comment { get; set; }
|
public string Comment { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Extended description
|
/// Extended description
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
[JsonProperty("description")]
|
||||||
public string Description { get; set; }
|
public string Description { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Year(s) of release/manufacture
|
/// Year(s) of release/manufacture
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
[JsonProperty("year")]
|
||||||
public string Year { get; set; }
|
public string Year { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Manufacturer, if available
|
/// Manufacturer, if available
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
[JsonProperty("manufacturer")]
|
||||||
public string Manufacturer { get; set; }
|
public string Manufacturer { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Publisher, if available
|
/// Publisher, if available
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
[JsonProperty("publisher")]
|
||||||
public string Publisher { get; set; }
|
public string Publisher { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// fomof parent
|
/// fomof parent
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
[JsonProperty("romof")]
|
||||||
public string RomOf { get; set; }
|
public string RomOf { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// cloneof parent
|
/// cloneof parent
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
[JsonProperty("cloneof")]
|
||||||
public string CloneOf { get; set; }
|
public string CloneOf { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// sampleof parent
|
/// sampleof parent
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
[JsonProperty("sampleof")]
|
||||||
public string SampleOf { get; set; }
|
public string SampleOf { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Support status
|
/// Support status
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <remarks>yes = true, partial = null, no = false</remarks>
|
/// <remarks>yes = true, partial = null, no = false</remarks>
|
||||||
|
[JsonProperty("supported")]
|
||||||
public bool? Supported { get; set; }
|
public bool? Supported { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Emulator source file related to the machine
|
/// Emulator source file related to the machine
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
[JsonProperty("sourcefile")]
|
||||||
public string SourceFile { get; set; }
|
public string SourceFile { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Machine runnable status
|
/// Machine runnable status
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <remarks>yes = true, partial = null, no = false</remarks>
|
/// <remarks>yes = true, partial = null, no = false</remarks>
|
||||||
|
[JsonProperty("runnable")]
|
||||||
public bool? Runnable { get; set; }
|
public bool? Runnable { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Machine board name
|
/// Machine board name
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
[JsonProperty("board")]
|
||||||
public string Board { get; set; }
|
public string Board { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Rebuild location if different than machine name
|
/// Rebuild location if different than machine name
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
[JsonProperty("rebuildto")]
|
||||||
public string RebuildTo { get; set; }
|
public string RebuildTo { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// List of associated device names
|
/// List of associated device names
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
[JsonProperty("devices")]
|
||||||
public List<string> Devices { get; set; }
|
public List<string> Devices { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// List of slot options
|
/// List of slot options
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
[JsonProperty("slotoptions")]
|
||||||
public List<string> SlotOptions { get; set; }
|
public List<string> SlotOptions { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// List of info items
|
/// List of info items
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
[JsonProperty("infos")]
|
||||||
public List<KeyValuePair<string, string>> Infos { get; set; }
|
public List<KeyValuePair<string, string>> Infos { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Type of the machine
|
/// Type of the machine
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
[JsonProperty("type")]
|
||||||
public MachineType MachineType { get; set; }
|
public MachineType MachineType { get; set; }
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
using SabreTools.Library.Data;
|
using SabreTools.Library.Data;
|
||||||
|
using Newtonsoft.Json;
|
||||||
|
|
||||||
namespace SabreTools.Library.DatItems
|
namespace SabreTools.Library.DatItems
|
||||||
{
|
{
|
||||||
@@ -12,21 +13,25 @@ namespace SabreTools.Library.DatItems
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Release region(s)
|
/// Release region(s)
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
[JsonProperty("region")]
|
||||||
public string Region { get; set; }
|
public string Region { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Release language(s)
|
/// Release language(s)
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
[JsonProperty("language")]
|
||||||
public string Language { get; set; }
|
public string Language { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Date of release
|
/// Date of release
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
[JsonProperty("date")]
|
||||||
public string Date { get; set; }
|
public string Date { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Default release, if applicable
|
/// Default release, if applicable
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
[JsonProperty("default")]
|
||||||
public bool? Default { get; set; }
|
public bool? Default { get; set; }
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|||||||
@@ -3,6 +3,7 @@
|
|||||||
using SabreTools.Library.Data;
|
using SabreTools.Library.Data;
|
||||||
using SabreTools.Library.FileTypes;
|
using SabreTools.Library.FileTypes;
|
||||||
using SabreTools.Library.Tools;
|
using SabreTools.Library.Tools;
|
||||||
|
using Newtonsoft.Json;
|
||||||
|
|
||||||
namespace SabreTools.Library.DatItems
|
namespace SabreTools.Library.DatItems
|
||||||
{
|
{
|
||||||
@@ -28,16 +29,19 @@ namespace SabreTools.Library.DatItems
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// What BIOS is required for this rom
|
/// What BIOS is required for this rom
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
[JsonProperty("bios")]
|
||||||
public string Bios { get; set; }
|
public string Bios { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Byte size of the rom
|
/// Byte size of the rom
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
[JsonProperty("size")]
|
||||||
public long Size { get; set; }
|
public long Size { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// File CRC32 hash
|
/// File CRC32 hash
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
[JsonProperty("crc")]
|
||||||
public string CRC
|
public string CRC
|
||||||
{
|
{
|
||||||
get { return _crc.IsNullOrWhiteSpace() ? null : Utilities.ByteArrayToString(_crc); }
|
get { return _crc.IsNullOrWhiteSpace() ? null : Utilities.ByteArrayToString(_crc); }
|
||||||
@@ -47,6 +51,7 @@ namespace SabreTools.Library.DatItems
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// File MD5 hash
|
/// File MD5 hash
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
[JsonProperty("md5")]
|
||||||
public string MD5
|
public string MD5
|
||||||
{
|
{
|
||||||
get { return _md5.IsNullOrWhiteSpace() ? null : Utilities.ByteArrayToString(_md5); }
|
get { return _md5.IsNullOrWhiteSpace() ? null : Utilities.ByteArrayToString(_md5); }
|
||||||
@@ -56,6 +61,7 @@ namespace SabreTools.Library.DatItems
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// File RIPEMD160 hash
|
/// File RIPEMD160 hash
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
[JsonProperty("ripemd160")]
|
||||||
public string RIPEMD160
|
public string RIPEMD160
|
||||||
{
|
{
|
||||||
get { return _ripemd160.IsNullOrWhiteSpace() ? null : Utilities.ByteArrayToString(_ripemd160); }
|
get { return _ripemd160.IsNullOrWhiteSpace() ? null : Utilities.ByteArrayToString(_ripemd160); }
|
||||||
@@ -65,6 +71,7 @@ namespace SabreTools.Library.DatItems
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// File SHA-1 hash
|
/// File SHA-1 hash
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
[JsonProperty("sha1")]
|
||||||
public string SHA1
|
public string SHA1
|
||||||
{
|
{
|
||||||
get { return _sha1.IsNullOrWhiteSpace() ? null : Utilities.ByteArrayToString(_sha1); }
|
get { return _sha1.IsNullOrWhiteSpace() ? null : Utilities.ByteArrayToString(_sha1); }
|
||||||
@@ -74,6 +81,7 @@ namespace SabreTools.Library.DatItems
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// File SHA-256 hash
|
/// File SHA-256 hash
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
[JsonProperty("sha256")]
|
||||||
public string SHA256
|
public string SHA256
|
||||||
{
|
{
|
||||||
get { return _sha256.IsNullOrWhiteSpace() ? null : Utilities.ByteArrayToString(_sha256); }
|
get { return _sha256.IsNullOrWhiteSpace() ? null : Utilities.ByteArrayToString(_sha256); }
|
||||||
@@ -83,6 +91,7 @@ namespace SabreTools.Library.DatItems
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// File SHA-384 hash
|
/// File SHA-384 hash
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
[JsonProperty("sha384")]
|
||||||
public string SHA384
|
public string SHA384
|
||||||
{
|
{
|
||||||
get { return _sha384.IsNullOrWhiteSpace() ? null : Utilities.ByteArrayToString(_sha384); }
|
get { return _sha384.IsNullOrWhiteSpace() ? null : Utilities.ByteArrayToString(_sha384); }
|
||||||
@@ -92,6 +101,7 @@ namespace SabreTools.Library.DatItems
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// File SHA-512 hash
|
/// File SHA-512 hash
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
[JsonProperty("sha512")]
|
||||||
public string SHA512
|
public string SHA512
|
||||||
{
|
{
|
||||||
get { return _sha512.IsNullOrWhiteSpace() ? null : Utilities.ByteArrayToString(_sha512); }
|
get { return _sha512.IsNullOrWhiteSpace() ? null : Utilities.ByteArrayToString(_sha512); }
|
||||||
@@ -101,31 +111,37 @@ namespace SabreTools.Library.DatItems
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Rom name to merge from parent
|
/// Rom name to merge from parent
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
[JsonProperty("merge")]
|
||||||
public string MergeTag { get; set; }
|
public string MergeTag { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Rom region
|
/// Rom region
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
[JsonProperty("region")]
|
||||||
public string Region { get; set; }
|
public string Region { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Data offset within rom
|
/// Data offset within rom
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
[JsonProperty("offset")]
|
||||||
public string Offset { get; set; }
|
public string Offset { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// File created date
|
/// File created date
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
[JsonProperty("date")]
|
||||||
public string Date { get; set; }
|
public string Date { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Rom dump status
|
/// Rom dump status
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
[JsonProperty("status")]
|
||||||
public ItemStatus ItemStatus { get; set; }
|
public ItemStatus ItemStatus { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Determine if the rom is optional in the set
|
/// Determine if the rom is optional in the set
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
[JsonProperty("optional")]
|
||||||
public bool? Optional { get; set; }
|
public bool? Optional { get; set; }
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|||||||
@@ -59,6 +59,7 @@
|
|||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="Mono.Data.Sqlite.Portable" Version="1.0.3.5" />
|
<PackageReference Include="Mono.Data.Sqlite.Portable" Version="1.0.3.5" />
|
||||||
|
<PackageReference Include="Newtonsoft.Json" Version="12.0.3" />
|
||||||
<PackageReference Include="SevenZipSharp.Net45" Version="1.0.19" />
|
<PackageReference Include="SevenZipSharp.Net45" Version="1.0.19" />
|
||||||
<PackageReference Include="SharpCompress" Version="0.25.1" />
|
<PackageReference Include="SharpCompress" Version="0.25.1" />
|
||||||
<PackageReference Include="System.ValueTuple" Version="4.5.0" />
|
<PackageReference Include="System.ValueTuple" Version="4.5.0" />
|
||||||
|
|||||||
Reference in New Issue
Block a user