mirror of
https://github.com/SabreTools/SabreTools.Serialization.git
synced 2026-04-21 05:39:42 +00:00
Change ItemType into concerete property
This commit is contained in:
@@ -24,7 +24,7 @@ namespace SabreTools.Data.Extensions.Test
|
||||
|
||||
Assert.NotNull(actual);
|
||||
Assert.Equal(8, actual.Count);
|
||||
Assert.Equal(ItemType.Rom, actual["_type"]);
|
||||
Assert.Equal(ItemType.Rom, actual.ItemType);
|
||||
Assert.Null(actual[Rom.NameKey]);
|
||||
Assert.Null(actual[Rom.MergeKey]);
|
||||
Assert.Null(actual[Rom.RegionKey]);
|
||||
@@ -52,7 +52,7 @@ namespace SabreTools.Data.Extensions.Test
|
||||
|
||||
Assert.NotNull(actual);
|
||||
Assert.Equal(8, actual.Count);
|
||||
Assert.Equal(ItemType.Rom, actual["_type"]);
|
||||
Assert.Equal(ItemType.Rom, actual.ItemType);
|
||||
Assert.Equal("XXXXXX.chd", actual[Rom.NameKey]);
|
||||
Assert.Equal("XXXXXX", actual[Rom.MergeKey]);
|
||||
Assert.Equal("XXXXXX", actual[Rom.RegionKey]);
|
||||
@@ -70,7 +70,7 @@ namespace SabreTools.Data.Extensions.Test
|
||||
|
||||
Assert.NotNull(actual);
|
||||
Assert.Equal(6, actual.Count);
|
||||
Assert.Equal(ItemType.Rom, actual["_type"]);
|
||||
Assert.Equal(ItemType.Rom, actual.ItemType);
|
||||
Assert.Null(actual[Rom.NameKey]);
|
||||
Assert.Null(actual[Rom.MD5Key]);
|
||||
Assert.Null(actual[Rom.SHA1Key]);
|
||||
@@ -94,7 +94,7 @@ namespace SabreTools.Data.Extensions.Test
|
||||
|
||||
Assert.NotNull(actual);
|
||||
Assert.Equal(6, actual.Count);
|
||||
Assert.Equal(ItemType.Rom, actual["_type"]);
|
||||
Assert.Equal(ItemType.Rom, actual.ItemType);
|
||||
Assert.Equal("XXXXXX.aaruf", actual[Rom.NameKey]);
|
||||
Assert.Equal("XXXXXX", actual[Rom.MD5Key]);
|
||||
Assert.Equal("XXXXXX", actual[Rom.SHA1Key]);
|
||||
|
||||
@@ -20,6 +20,6 @@ namespace SabreTools.Data.Models.Metadata
|
||||
|
||||
#endregion
|
||||
|
||||
public Adjuster() => Type = ItemType.Adjuster;
|
||||
public Adjuster() => ItemType = ItemType.Adjuster;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13,6 +13,6 @@ namespace SabreTools.Data.Models.Metadata
|
||||
|
||||
#endregion
|
||||
|
||||
public Analog() => Type = ItemType.Analog;
|
||||
public Analog() => ItemType = ItemType.Analog;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -109,6 +109,6 @@ namespace SabreTools.Data.Models.Metadata
|
||||
|
||||
#endregion
|
||||
|
||||
public Archive() => Type = ItemType.Archive;
|
||||
public Archive() => ItemType = ItemType.Archive;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,6 +19,6 @@ namespace SabreTools.Data.Models.Metadata
|
||||
|
||||
#endregion
|
||||
|
||||
public BiosSet() => Type = ItemType.BiosSet;
|
||||
public BiosSet() => ItemType = ItemType.BiosSet;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,6 +6,6 @@ namespace SabreTools.Data.Models.Metadata
|
||||
[JsonObject("blank"), XmlRoot("blank")]
|
||||
public class Blank : DatItem
|
||||
{
|
||||
public Blank() => Type = ItemType.Blank;
|
||||
public Blank() => ItemType = ItemType.Blank;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -28,6 +28,6 @@ namespace SabreTools.Data.Models.Metadata
|
||||
|
||||
#endregion
|
||||
|
||||
public Chip() => Type = ItemType.Chip;
|
||||
public Chip() => ItemType = ItemType.Chip;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -22,6 +22,6 @@ namespace SabreTools.Data.Models.Metadata
|
||||
|
||||
#endregion
|
||||
|
||||
public Condition() => Type = ItemType.Condition;
|
||||
public Condition() => ItemType = ItemType.Condition;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,6 +19,6 @@ namespace SabreTools.Data.Models.Metadata
|
||||
|
||||
#endregion
|
||||
|
||||
public ConfLocation() => Type = ItemType.ConfLocation;
|
||||
public ConfLocation() => ItemType = ItemType.ConfLocation;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -23,6 +23,6 @@ namespace SabreTools.Data.Models.Metadata
|
||||
|
||||
#endregion
|
||||
|
||||
public ConfSetting() => Type = ItemType.ConfSetting;
|
||||
public ConfSetting() => ItemType = ItemType.ConfSetting;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -31,6 +31,6 @@ namespace SabreTools.Data.Models.Metadata
|
||||
|
||||
#endregion
|
||||
|
||||
public Configuration() => Type = ItemType.Configuration;
|
||||
public Configuration() => ItemType = ItemType.Configuration;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -46,6 +46,6 @@ namespace SabreTools.Data.Models.Metadata
|
||||
|
||||
#endregion
|
||||
|
||||
public Control() => Type = ItemType.Control;
|
||||
public Control() => ItemType = ItemType.Control;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,20 +8,10 @@ namespace SabreTools.Data.Models.Metadata
|
||||
/// </summary>
|
||||
public class DatItem : DictionaryBase
|
||||
{
|
||||
#region Common Keys
|
||||
|
||||
public const string TypeKey = "_type";
|
||||
|
||||
#endregion
|
||||
|
||||
/// <summary>
|
||||
/// Quick accessor to item type, if it exists
|
||||
/// </summary>
|
||||
[JsonProperty("itemtype", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("itemtype")]
|
||||
public ItemType? Type
|
||||
{
|
||||
get => ContainsKey(TypeKey) ? this[TypeKey] as ItemType? : null;
|
||||
set => this[TypeKey] = value;
|
||||
}
|
||||
public ItemType ItemType { get; protected set; }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -26,6 +26,6 @@ namespace SabreTools.Data.Models.Metadata
|
||||
|
||||
#endregion
|
||||
|
||||
public DataArea() => Type = ItemType.DataArea;
|
||||
public DataArea() => ItemType = ItemType.DataArea;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -33,6 +33,6 @@ namespace SabreTools.Data.Models.Metadata
|
||||
|
||||
#endregion
|
||||
|
||||
public Device() => Type = ItemType.Device;
|
||||
public Device() => ItemType = ItemType.Device;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13,6 +13,6 @@ namespace SabreTools.Data.Models.Metadata
|
||||
|
||||
#endregion
|
||||
|
||||
public DeviceRef() => Type = ItemType.DeviceRef;
|
||||
public DeviceRef() => ItemType = ItemType.DeviceRef;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,6 +19,6 @@ namespace SabreTools.Data.Models.Metadata
|
||||
|
||||
#endregion
|
||||
|
||||
public DipLocation() => Type = ItemType.DipLocation;
|
||||
public DipLocation() => ItemType = ItemType.DipLocation;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -37,6 +37,6 @@ namespace SabreTools.Data.Models.Metadata
|
||||
|
||||
#endregion
|
||||
|
||||
public DipSwitch() => Type = ItemType.DipSwitch;
|
||||
public DipSwitch() => ItemType = ItemType.DipSwitch;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -23,6 +23,6 @@ namespace SabreTools.Data.Models.Metadata
|
||||
|
||||
#endregion
|
||||
|
||||
public DipValue() => Type = ItemType.DipValue;
|
||||
public DipValue() => ItemType = ItemType.DipValue;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -40,6 +40,6 @@ namespace SabreTools.Data.Models.Metadata
|
||||
|
||||
#endregion
|
||||
|
||||
public Disk() => Type = ItemType.Disk;
|
||||
public Disk() => ItemType = ItemType.Disk;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,6 +17,6 @@ namespace SabreTools.Data.Models.Metadata
|
||||
|
||||
#endregion
|
||||
|
||||
public DiskArea() => Type = ItemType.DiskArea;
|
||||
public DiskArea() => ItemType = ItemType.DiskArea;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -52,6 +52,6 @@ namespace SabreTools.Data.Models.Metadata
|
||||
|
||||
#endregion
|
||||
|
||||
public Display() => Type = ItemType.Display;
|
||||
public Display() => ItemType = ItemType.Display;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -46,6 +46,6 @@ namespace SabreTools.Data.Models.Metadata
|
||||
|
||||
#endregion
|
||||
|
||||
public Driver() => Type = ItemType.Driver;
|
||||
public Driver() => ItemType = ItemType.Driver;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -26,6 +26,6 @@ namespace SabreTools.Data.Models.Metadata
|
||||
|
||||
#endregion
|
||||
|
||||
public Dump() => Type = ItemType.Dump;
|
||||
public Dump() => ItemType = ItemType.Dump;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -279,12 +279,14 @@ namespace SabreTools.Data.Models.Metadata
|
||||
Dump,
|
||||
Extension,
|
||||
Feature,
|
||||
File, // TODO: This should be merged with Rom?
|
||||
Info,
|
||||
Input,
|
||||
Instance,
|
||||
Media,
|
||||
Original,
|
||||
Part,
|
||||
PartFeature,
|
||||
Port,
|
||||
RamOption,
|
||||
Release,
|
||||
|
||||
@@ -13,6 +13,6 @@ namespace SabreTools.Data.Models.Metadata
|
||||
|
||||
#endregion
|
||||
|
||||
public Extension() => Type = ItemType.Extension;
|
||||
public Extension() => ItemType = ItemType.Extension;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -25,6 +25,6 @@ namespace SabreTools.Data.Models.Metadata
|
||||
|
||||
#endregion
|
||||
|
||||
public Feature() => Type = ItemType.Feature;
|
||||
public Feature() => ItemType = ItemType.Feature;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,6 +16,6 @@ namespace SabreTools.Data.Models.Metadata
|
||||
|
||||
#endregion
|
||||
|
||||
public Info() => Type = ItemType.Info;
|
||||
public Info() => ItemType = ItemType.Info;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -28,6 +28,6 @@ namespace SabreTools.Data.Models.Metadata
|
||||
|
||||
#endregion
|
||||
|
||||
public Input() => Type = ItemType.Input;
|
||||
public Input() => ItemType = ItemType.Input;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,6 +16,6 @@ namespace SabreTools.Data.Models.Metadata
|
||||
|
||||
#endregion
|
||||
|
||||
public Instance() => Type = ItemType.Instance;
|
||||
public Instance() => ItemType = ItemType.Instance;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -25,6 +25,6 @@ namespace SabreTools.Data.Models.Metadata
|
||||
|
||||
#endregion
|
||||
|
||||
public Media() => Type = ItemType.Media;
|
||||
public Media() => ItemType = ItemType.Media;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,6 +16,6 @@ namespace SabreTools.Data.Models.Metadata
|
||||
|
||||
#endregion
|
||||
|
||||
public Original() => Type = ItemType.Original;
|
||||
public Original() => ItemType = ItemType.Original;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -32,6 +32,6 @@ namespace SabreTools.Data.Models.Metadata
|
||||
|
||||
#endregion
|
||||
|
||||
public Part() => Type = ItemType.Part;
|
||||
public Part() => ItemType = ItemType.Part;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,6 +17,6 @@ namespace SabreTools.Data.Models.Metadata
|
||||
|
||||
#endregion
|
||||
|
||||
public Port() => Type = ItemType.Port;
|
||||
public Port() => ItemType = ItemType.Port;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,6 +19,6 @@ namespace SabreTools.Data.Models.Metadata
|
||||
|
||||
#endregion
|
||||
|
||||
public RamOption() => Type = ItemType.RamOption;
|
||||
public RamOption() => ItemType = ItemType.RamOption;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -25,6 +25,6 @@ namespace SabreTools.Data.Models.Metadata
|
||||
|
||||
#endregion
|
||||
|
||||
public Release() => Type = ItemType.Release;
|
||||
public Release() => ItemType = ItemType.Release;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -58,6 +58,6 @@ namespace SabreTools.Data.Models.Metadata
|
||||
|
||||
#endregion
|
||||
|
||||
public ReleaseDetails() => Type = ItemType.ReleaseDetails;
|
||||
public ReleaseDetails() => ItemType = ItemType.ReleaseDetails;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -298,6 +298,6 @@ namespace SabreTools.Data.Models.Metadata
|
||||
|
||||
#endregion
|
||||
|
||||
public Rom() => Type = ItemType.Rom;
|
||||
public Rom() => ItemType = ItemType.Rom;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13,6 +13,6 @@ namespace SabreTools.Data.Models.Metadata
|
||||
|
||||
#endregion
|
||||
|
||||
public Sample() => Type = ItemType.Sample;
|
||||
public Sample() => ItemType = ItemType.Sample;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -52,6 +52,6 @@ namespace SabreTools.Data.Models.Metadata
|
||||
|
||||
#endregion
|
||||
|
||||
public Serials() => Type = ItemType.Serials;
|
||||
public Serials() => ItemType = ItemType.Serials;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,6 +16,6 @@ namespace SabreTools.Data.Models.Metadata
|
||||
|
||||
#endregion
|
||||
|
||||
public SharedFeat() => Type = ItemType.SharedFeat;
|
||||
public SharedFeat() => ItemType = ItemType.SharedFeat;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,6 +17,6 @@ namespace SabreTools.Data.Models.Metadata
|
||||
|
||||
#endregion
|
||||
|
||||
public Slot() => Type = ItemType.Slot;
|
||||
public Slot() => ItemType = ItemType.Slot;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,6 +19,6 @@ namespace SabreTools.Data.Models.Metadata
|
||||
|
||||
#endregion
|
||||
|
||||
public SlotOption() => Type = ItemType.SlotOption;
|
||||
public SlotOption() => ItemType = ItemType.SlotOption;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -43,6 +43,6 @@ namespace SabreTools.Data.Models.Metadata
|
||||
|
||||
#endregion
|
||||
|
||||
public Software() => Type = ItemType.Software;
|
||||
public Software() => ItemType = ItemType.Software;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -32,6 +32,6 @@ namespace SabreTools.Data.Models.Metadata
|
||||
|
||||
#endregion
|
||||
|
||||
public SoftwareList() => Type = ItemType.SoftwareList;
|
||||
public SoftwareList() => ItemType = ItemType.SoftwareList;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13,6 +13,6 @@ namespace SabreTools.Data.Models.Metadata
|
||||
|
||||
#endregion
|
||||
|
||||
public Sound() => Type = ItemType.Sound;
|
||||
public Sound() => ItemType = ItemType.Sound;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -82,6 +82,6 @@ namespace SabreTools.Data.Models.Metadata
|
||||
|
||||
#endregion
|
||||
|
||||
public SourceDetails() => Type = ItemType.SourceDetails;
|
||||
public SourceDetails() => ItemType = ItemType.SourceDetails;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -31,6 +31,6 @@ namespace SabreTools.Data.Models.Metadata
|
||||
|
||||
#endregion
|
||||
|
||||
public Video() => Type = ItemType.Video;
|
||||
public Video() => ItemType = ItemType.Video;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -62,11 +62,11 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
Assert.Equal(0, stats.GetHashCount(HashType.SHA384));
|
||||
Assert.Equal(0, stats.GetHashCount(HashType.SHA512));
|
||||
Assert.Equal(0, stats.GetHashCount(HashType.SpamSum));
|
||||
Assert.Equal(0, stats.GetItemCount(ItemType.Disk));
|
||||
Assert.Equal(0, stats.GetItemCount(ItemType.File));
|
||||
Assert.Equal(0, stats.GetItemCount(ItemType.Media));
|
||||
Assert.Equal(0, stats.GetItemCount(ItemType.Rom));
|
||||
Assert.Equal(0, stats.GetItemCount(ItemType.Sample));
|
||||
Assert.Equal(0, stats.GetItemCount(Data.Models.Metadata.ItemType.Disk));
|
||||
Assert.Equal(0, stats.GetItemCount(Data.Models.Metadata.ItemType.File));
|
||||
Assert.Equal(0, stats.GetItemCount(Data.Models.Metadata.ItemType.Media));
|
||||
Assert.Equal(0, stats.GetItemCount(Data.Models.Metadata.ItemType.Rom));
|
||||
Assert.Equal(0, stats.GetItemCount(Data.Models.Metadata.ItemType.Sample));
|
||||
Assert.Equal(0, stats.GetStatusCount(ItemStatus.Good));
|
||||
|
||||
// AddItemStatistics
|
||||
@@ -90,11 +90,11 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
Assert.Equal(1, stats.GetHashCount(HashType.SHA384));
|
||||
Assert.Equal(1, stats.GetHashCount(HashType.SHA512));
|
||||
Assert.Equal(2, stats.GetHashCount(HashType.SpamSum));
|
||||
Assert.Equal(1, stats.GetItemCount(ItemType.Disk));
|
||||
Assert.Equal(1, stats.GetItemCount(ItemType.File));
|
||||
Assert.Equal(1, stats.GetItemCount(ItemType.Media));
|
||||
Assert.Equal(1, stats.GetItemCount(ItemType.Rom));
|
||||
Assert.Equal(1, stats.GetItemCount(ItemType.Sample));
|
||||
Assert.Equal(1, stats.GetItemCount(Data.Models.Metadata.ItemType.Disk));
|
||||
Assert.Equal(1, stats.GetItemCount(Data.Models.Metadata.ItemType.File));
|
||||
Assert.Equal(1, stats.GetItemCount(Data.Models.Metadata.ItemType.Media));
|
||||
Assert.Equal(1, stats.GetItemCount(Data.Models.Metadata.ItemType.Rom));
|
||||
Assert.Equal(1, stats.GetItemCount(Data.Models.Metadata.ItemType.Sample));
|
||||
Assert.Equal(2, stats.GetStatusCount(ItemStatus.Good));
|
||||
|
||||
// RemoveItemStatistics
|
||||
@@ -118,11 +118,11 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
Assert.Equal(0, stats.GetHashCount(HashType.SHA384));
|
||||
Assert.Equal(0, stats.GetHashCount(HashType.SHA512));
|
||||
Assert.Equal(0, stats.GetHashCount(HashType.SpamSum));
|
||||
Assert.Equal(0, stats.GetItemCount(ItemType.Disk));
|
||||
Assert.Equal(0, stats.GetItemCount(ItemType.File));
|
||||
Assert.Equal(0, stats.GetItemCount(ItemType.Media));
|
||||
Assert.Equal(0, stats.GetItemCount(ItemType.Rom));
|
||||
Assert.Equal(0, stats.GetItemCount(ItemType.Sample));
|
||||
Assert.Equal(0, stats.GetItemCount(Data.Models.Metadata.ItemType.Disk));
|
||||
Assert.Equal(0, stats.GetItemCount(Data.Models.Metadata.ItemType.File));
|
||||
Assert.Equal(0, stats.GetItemCount(Data.Models.Metadata.ItemType.Media));
|
||||
Assert.Equal(0, stats.GetItemCount(Data.Models.Metadata.ItemType.Rom));
|
||||
Assert.Equal(0, stats.GetItemCount(Data.Models.Metadata.ItemType.Sample));
|
||||
Assert.Equal(0, stats.GetStatusCount(ItemStatus.Good));
|
||||
}
|
||||
|
||||
@@ -153,11 +153,11 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
Assert.Equal(0, stats.GetHashCount(HashType.SHA384));
|
||||
Assert.Equal(0, stats.GetHashCount(HashType.SHA512));
|
||||
Assert.Equal(0, stats.GetHashCount(HashType.SpamSum));
|
||||
Assert.Equal(0, stats.GetItemCount(ItemType.Disk));
|
||||
Assert.Equal(0, stats.GetItemCount(ItemType.File));
|
||||
Assert.Equal(0, stats.GetItemCount(ItemType.Media));
|
||||
Assert.Equal(0, stats.GetItemCount(ItemType.Rom));
|
||||
Assert.Equal(0, stats.GetItemCount(ItemType.Sample));
|
||||
Assert.Equal(0, stats.GetItemCount(Data.Models.Metadata.ItemType.Disk));
|
||||
Assert.Equal(0, stats.GetItemCount(Data.Models.Metadata.ItemType.File));
|
||||
Assert.Equal(0, stats.GetItemCount(Data.Models.Metadata.ItemType.Media));
|
||||
Assert.Equal(0, stats.GetItemCount(Data.Models.Metadata.ItemType.Rom));
|
||||
Assert.Equal(0, stats.GetItemCount(Data.Models.Metadata.ItemType.Sample));
|
||||
Assert.Equal(0, stats.GetStatusCount(ItemStatus.Good));
|
||||
|
||||
// AddItemStatistics
|
||||
@@ -181,11 +181,11 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
Assert.Equal(1, stats.GetHashCount(HashType.SHA384));
|
||||
Assert.Equal(1, stats.GetHashCount(HashType.SHA512));
|
||||
Assert.Equal(2, stats.GetHashCount(HashType.SpamSum));
|
||||
Assert.Equal(1, stats.GetItemCount(ItemType.Disk));
|
||||
Assert.Equal(1, stats.GetItemCount(ItemType.File));
|
||||
Assert.Equal(1, stats.GetItemCount(ItemType.Media));
|
||||
Assert.Equal(1, stats.GetItemCount(ItemType.Rom));
|
||||
Assert.Equal(1, stats.GetItemCount(ItemType.Sample));
|
||||
Assert.Equal(1, stats.GetItemCount(Data.Models.Metadata.ItemType.Disk));
|
||||
Assert.Equal(1, stats.GetItemCount(Data.Models.Metadata.ItemType.File));
|
||||
Assert.Equal(1, stats.GetItemCount(Data.Models.Metadata.ItemType.Media));
|
||||
Assert.Equal(1, stats.GetItemCount(Data.Models.Metadata.ItemType.Rom));
|
||||
Assert.Equal(1, stats.GetItemCount(Data.Models.Metadata.ItemType.Sample));
|
||||
Assert.Equal(2, stats.GetStatusCount(ItemStatus.Good));
|
||||
|
||||
// ResetStatistics
|
||||
@@ -205,11 +205,11 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
Assert.Equal(0, stats.GetHashCount(HashType.SHA384));
|
||||
Assert.Equal(0, stats.GetHashCount(HashType.SHA512));
|
||||
Assert.Equal(0, stats.GetHashCount(HashType.SpamSum));
|
||||
Assert.Equal(0, stats.GetItemCount(ItemType.Disk));
|
||||
Assert.Equal(0, stats.GetItemCount(ItemType.File));
|
||||
Assert.Equal(0, stats.GetItemCount(ItemType.Media));
|
||||
Assert.Equal(0, stats.GetItemCount(ItemType.Rom));
|
||||
Assert.Equal(0, stats.GetItemCount(ItemType.Sample));
|
||||
Assert.Equal(0, stats.GetItemCount(Data.Models.Metadata.ItemType.Disk));
|
||||
Assert.Equal(0, stats.GetItemCount(Data.Models.Metadata.ItemType.File));
|
||||
Assert.Equal(0, stats.GetItemCount(Data.Models.Metadata.ItemType.Media));
|
||||
Assert.Equal(0, stats.GetItemCount(Data.Models.Metadata.ItemType.Rom));
|
||||
Assert.Equal(0, stats.GetItemCount(Data.Models.Metadata.ItemType.Sample));
|
||||
Assert.Equal(0, stats.GetStatusCount(ItemStatus.Good));
|
||||
}
|
||||
|
||||
@@ -240,7 +240,7 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
Assert.Equal(1, newStats.GetHashCount(HashType.SHA384));
|
||||
Assert.Equal(1, newStats.GetHashCount(HashType.SHA512));
|
||||
Assert.Equal(1, newStats.GetHashCount(HashType.SpamSum));
|
||||
Assert.Equal(1, newStats.GetItemCount(ItemType.Rom));
|
||||
Assert.Equal(1, newStats.GetItemCount(Data.Models.Metadata.ItemType.Rom));
|
||||
Assert.Equal(1, newStats.GetStatusCount(ItemStatus.Good));
|
||||
}
|
||||
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
using System;
|
||||
using System.Linq;
|
||||
using SabreTools.Metadata.DatFiles.Formats;
|
||||
using SabreTools.Metadata.DatItems;
|
||||
using SabreTools.Metadata.DatItems.Formats;
|
||||
using Xunit;
|
||||
|
||||
@@ -17,7 +16,7 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
/// <summary>
|
||||
/// All defined item types
|
||||
/// </summary>
|
||||
private static readonly ItemType[] AllTypes = Enum.GetValues<ItemType>();
|
||||
private static readonly Data.Models.Metadata.ItemType[] AllTypes = Enum.GetValues<Data.Models.Metadata.ItemType>();
|
||||
|
||||
#endregion
|
||||
|
||||
@@ -29,7 +28,7 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
var datFile = new ArchiveDotOrg(null);
|
||||
var actual = datFile.SupportedTypes;
|
||||
Assert.True(actual.SequenceEqual([
|
||||
ItemType.Rom,
|
||||
Data.Models.Metadata.ItemType.Rom,
|
||||
]));
|
||||
}
|
||||
|
||||
@@ -43,7 +42,7 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
var datFile = new AttractMode(null);
|
||||
var actual = datFile.SupportedTypes;
|
||||
Assert.True(actual.SequenceEqual([
|
||||
ItemType.Rom,
|
||||
Data.Models.Metadata.ItemType.Rom,
|
||||
]));
|
||||
}
|
||||
|
||||
@@ -71,19 +70,19 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
var datFile = new ClrMamePro(null);
|
||||
var actual = datFile.SupportedTypes;
|
||||
Assert.True(actual.SequenceEqual([
|
||||
ItemType.Archive,
|
||||
ItemType.BiosSet,
|
||||
ItemType.Chip,
|
||||
ItemType.DipSwitch,
|
||||
ItemType.Disk,
|
||||
ItemType.Display,
|
||||
ItemType.Driver,
|
||||
ItemType.Input,
|
||||
ItemType.Media,
|
||||
ItemType.Release,
|
||||
ItemType.Rom,
|
||||
ItemType.Sample,
|
||||
ItemType.Sound,
|
||||
Data.Models.Metadata.ItemType.Archive,
|
||||
Data.Models.Metadata.ItemType.BiosSet,
|
||||
Data.Models.Metadata.ItemType.Chip,
|
||||
Data.Models.Metadata.ItemType.DipSwitch,
|
||||
Data.Models.Metadata.ItemType.Disk,
|
||||
Data.Models.Metadata.ItemType.Display,
|
||||
Data.Models.Metadata.ItemType.Driver,
|
||||
Data.Models.Metadata.ItemType.Input,
|
||||
Data.Models.Metadata.ItemType.Media,
|
||||
Data.Models.Metadata.ItemType.Release,
|
||||
Data.Models.Metadata.ItemType.Rom,
|
||||
Data.Models.Metadata.ItemType.Sample,
|
||||
Data.Models.Metadata.ItemType.Sound,
|
||||
]));
|
||||
}
|
||||
|
||||
@@ -274,7 +273,7 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
var datFile = new DosCenter(null);
|
||||
var actual = datFile.SupportedTypes;
|
||||
Assert.True(actual.SequenceEqual([
|
||||
ItemType.Rom,
|
||||
Data.Models.Metadata.ItemType.Rom,
|
||||
]));
|
||||
}
|
||||
|
||||
@@ -304,7 +303,7 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
var datFile = new EverdriveSMDB(null);
|
||||
var actual = datFile.SupportedTypes;
|
||||
Assert.True(actual.SequenceEqual([
|
||||
ItemType.Rom,
|
||||
Data.Models.Metadata.ItemType.Rom,
|
||||
]));
|
||||
}
|
||||
|
||||
@@ -336,7 +335,7 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
var datFile = new SfvFile(null);
|
||||
var actual = datFile.SupportedTypes;
|
||||
Assert.True(actual.SequenceEqual([
|
||||
ItemType.Rom,
|
||||
Data.Models.Metadata.ItemType.Rom,
|
||||
]));
|
||||
}
|
||||
|
||||
@@ -361,7 +360,7 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
var datFile = new Md2File(null);
|
||||
var actual = datFile.SupportedTypes;
|
||||
Assert.True(actual.SequenceEqual([
|
||||
ItemType.Rom,
|
||||
Data.Models.Metadata.ItemType.Rom,
|
||||
]));
|
||||
}
|
||||
|
||||
@@ -386,7 +385,7 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
var datFile = new Md4File(null);
|
||||
var actual = datFile.SupportedTypes;
|
||||
Assert.True(actual.SequenceEqual([
|
||||
ItemType.Rom,
|
||||
Data.Models.Metadata.ItemType.Rom,
|
||||
]));
|
||||
}
|
||||
|
||||
@@ -411,9 +410,9 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
var datFile = new Md5File(null);
|
||||
var actual = datFile.SupportedTypes;
|
||||
Assert.True(actual.SequenceEqual([
|
||||
ItemType.Disk,
|
||||
ItemType.Media,
|
||||
ItemType.Rom,
|
||||
Data.Models.Metadata.ItemType.Disk,
|
||||
Data.Models.Metadata.ItemType.Media,
|
||||
Data.Models.Metadata.ItemType.Rom,
|
||||
]));
|
||||
}
|
||||
|
||||
@@ -468,7 +467,7 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
var datFile = new RipeMD128File(null);
|
||||
var actual = datFile.SupportedTypes;
|
||||
Assert.True(actual.SequenceEqual([
|
||||
ItemType.Rom,
|
||||
Data.Models.Metadata.ItemType.Rom,
|
||||
]));
|
||||
}
|
||||
|
||||
@@ -493,7 +492,7 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
var datFile = new RipeMD160File(null);
|
||||
var actual = datFile.SupportedTypes;
|
||||
Assert.True(actual.SequenceEqual([
|
||||
ItemType.Rom,
|
||||
Data.Models.Metadata.ItemType.Rom,
|
||||
]));
|
||||
}
|
||||
|
||||
@@ -518,9 +517,9 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
var datFile = new Sha1File(null);
|
||||
var actual = datFile.SupportedTypes;
|
||||
Assert.True(actual.SequenceEqual([
|
||||
ItemType.Disk,
|
||||
ItemType.Media,
|
||||
ItemType.Rom,
|
||||
Data.Models.Metadata.ItemType.Disk,
|
||||
Data.Models.Metadata.ItemType.Media,
|
||||
Data.Models.Metadata.ItemType.Rom,
|
||||
]));
|
||||
}
|
||||
|
||||
@@ -575,8 +574,8 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
var datFile = new Sha256File(null);
|
||||
var actual = datFile.SupportedTypes;
|
||||
Assert.True(actual.SequenceEqual([
|
||||
ItemType.Media,
|
||||
ItemType.Rom,
|
||||
Data.Models.Metadata.ItemType.Media,
|
||||
Data.Models.Metadata.ItemType.Rom,
|
||||
]));
|
||||
}
|
||||
|
||||
@@ -616,7 +615,7 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
var datFile = new Sha384File(null);
|
||||
var actual = datFile.SupportedTypes;
|
||||
Assert.True(actual.SequenceEqual([
|
||||
ItemType.Rom,
|
||||
Data.Models.Metadata.ItemType.Rom,
|
||||
]));
|
||||
}
|
||||
|
||||
@@ -641,7 +640,7 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
var datFile = new Sha512File(null);
|
||||
var actual = datFile.SupportedTypes;
|
||||
Assert.True(actual.SequenceEqual([
|
||||
ItemType.Rom,
|
||||
Data.Models.Metadata.ItemType.Rom,
|
||||
]));
|
||||
}
|
||||
|
||||
@@ -666,8 +665,8 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
var datFile = new SpamSumFile(null);
|
||||
var actual = datFile.SupportedTypes;
|
||||
Assert.True(actual.SequenceEqual([
|
||||
ItemType.Media,
|
||||
ItemType.Rom,
|
||||
Data.Models.Metadata.ItemType.Media,
|
||||
Data.Models.Metadata.ItemType.Rom,
|
||||
]));
|
||||
}
|
||||
|
||||
@@ -711,8 +710,8 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
var datFile = new Listrom(null);
|
||||
var actual = datFile.SupportedTypes;
|
||||
Assert.True(actual.SequenceEqual([
|
||||
ItemType.Disk,
|
||||
ItemType.Rom,
|
||||
Data.Models.Metadata.ItemType.Disk,
|
||||
Data.Models.Metadata.ItemType.Rom,
|
||||
]));
|
||||
}
|
||||
|
||||
@@ -758,26 +757,26 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
var datFile = new Listxml(null);
|
||||
var actual = datFile.SupportedTypes;
|
||||
Assert.True(actual.SequenceEqual([
|
||||
ItemType.Adjuster,
|
||||
ItemType.BiosSet,
|
||||
ItemType.Chip,
|
||||
ItemType.Condition,
|
||||
ItemType.Configuration,
|
||||
ItemType.Device,
|
||||
ItemType.DeviceRef,
|
||||
ItemType.DipSwitch,
|
||||
ItemType.Disk,
|
||||
ItemType.Display,
|
||||
ItemType.Driver,
|
||||
ItemType.Feature,
|
||||
ItemType.Input,
|
||||
ItemType.Port,
|
||||
ItemType.RamOption,
|
||||
ItemType.Rom,
|
||||
ItemType.Sample,
|
||||
ItemType.Slot,
|
||||
ItemType.SoftwareList,
|
||||
ItemType.Sound,
|
||||
Data.Models.Metadata.ItemType.Adjuster,
|
||||
Data.Models.Metadata.ItemType.BiosSet,
|
||||
Data.Models.Metadata.ItemType.Chip,
|
||||
Data.Models.Metadata.ItemType.Condition,
|
||||
Data.Models.Metadata.ItemType.Configuration,
|
||||
Data.Models.Metadata.ItemType.Device,
|
||||
Data.Models.Metadata.ItemType.DeviceRef,
|
||||
Data.Models.Metadata.ItemType.DipSwitch,
|
||||
Data.Models.Metadata.ItemType.Disk,
|
||||
Data.Models.Metadata.ItemType.Display,
|
||||
Data.Models.Metadata.ItemType.Driver,
|
||||
Data.Models.Metadata.ItemType.Feature,
|
||||
Data.Models.Metadata.ItemType.Input,
|
||||
Data.Models.Metadata.ItemType.Port,
|
||||
Data.Models.Metadata.ItemType.RamOption,
|
||||
Data.Models.Metadata.ItemType.Rom,
|
||||
Data.Models.Metadata.ItemType.Sample,
|
||||
Data.Models.Metadata.ItemType.Slot,
|
||||
Data.Models.Metadata.ItemType.SoftwareList,
|
||||
Data.Models.Metadata.ItemType.Sound,
|
||||
]));
|
||||
}
|
||||
|
||||
@@ -1070,16 +1069,16 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
var datFile = new Logiqx(null, false);
|
||||
var actual = datFile.SupportedTypes;
|
||||
Assert.True(actual.SequenceEqual([
|
||||
ItemType.Archive,
|
||||
ItemType.BiosSet,
|
||||
ItemType.DeviceRef,
|
||||
ItemType.Disk,
|
||||
ItemType.Driver,
|
||||
ItemType.Media,
|
||||
ItemType.Release,
|
||||
ItemType.Rom,
|
||||
ItemType.Sample,
|
||||
ItemType.SoftwareList,
|
||||
Data.Models.Metadata.ItemType.Archive,
|
||||
Data.Models.Metadata.ItemType.BiosSet,
|
||||
Data.Models.Metadata.ItemType.DeviceRef,
|
||||
Data.Models.Metadata.ItemType.Disk,
|
||||
Data.Models.Metadata.ItemType.Driver,
|
||||
Data.Models.Metadata.ItemType.Media,
|
||||
Data.Models.Metadata.ItemType.Release,
|
||||
Data.Models.Metadata.ItemType.Rom,
|
||||
Data.Models.Metadata.ItemType.Sample,
|
||||
Data.Models.Metadata.ItemType.SoftwareList,
|
||||
]));
|
||||
}
|
||||
|
||||
@@ -1263,7 +1262,7 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
var datFile = new OfflineList(null);
|
||||
var actual = datFile.SupportedTypes;
|
||||
Assert.True(actual.SequenceEqual([
|
||||
ItemType.Rom,
|
||||
Data.Models.Metadata.ItemType.Rom,
|
||||
]));
|
||||
}
|
||||
|
||||
@@ -1292,7 +1291,7 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
var datFile = new OpenMSX(null);
|
||||
var actual = datFile.SupportedTypes;
|
||||
Assert.True(actual.SequenceEqual([
|
||||
ItemType.Rom,
|
||||
Data.Models.Metadata.ItemType.Rom,
|
||||
]));
|
||||
}
|
||||
|
||||
@@ -1321,7 +1320,7 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
var datFile = new RomCenter(null);
|
||||
var actual = datFile.SupportedTypes;
|
||||
Assert.True(actual.SequenceEqual([
|
||||
ItemType.Rom,
|
||||
Data.Models.Metadata.ItemType.Rom,
|
||||
]));
|
||||
}
|
||||
|
||||
@@ -1375,9 +1374,9 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
var datFile = new CommaSeparatedValue(null);
|
||||
var actual = datFile.SupportedTypes;
|
||||
Assert.True(actual.SequenceEqual([
|
||||
ItemType.Disk,
|
||||
ItemType.Media,
|
||||
ItemType.Rom,
|
||||
Data.Models.Metadata.ItemType.Disk,
|
||||
Data.Models.Metadata.ItemType.Media,
|
||||
Data.Models.Metadata.ItemType.Rom,
|
||||
]));
|
||||
}
|
||||
|
||||
@@ -1433,9 +1432,9 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
var datFile = new SemicolonSeparatedValue(null);
|
||||
var actual = datFile.SupportedTypes;
|
||||
Assert.True(actual.SequenceEqual([
|
||||
ItemType.Disk,
|
||||
ItemType.Media,
|
||||
ItemType.Rom,
|
||||
Data.Models.Metadata.ItemType.Disk,
|
||||
Data.Models.Metadata.ItemType.Media,
|
||||
Data.Models.Metadata.ItemType.Rom,
|
||||
]));
|
||||
}
|
||||
|
||||
@@ -1491,9 +1490,9 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
var datFile = new TabSeparatedValue(null);
|
||||
var actual = datFile.SupportedTypes;
|
||||
Assert.True(actual.SequenceEqual([
|
||||
ItemType.Disk,
|
||||
ItemType.Media,
|
||||
ItemType.Rom,
|
||||
Data.Models.Metadata.ItemType.Disk,
|
||||
Data.Models.Metadata.ItemType.Media,
|
||||
Data.Models.Metadata.ItemType.Rom,
|
||||
]));
|
||||
}
|
||||
|
||||
@@ -1553,12 +1552,12 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
var datFile = new Formats.SoftwareList(null);
|
||||
var actual = datFile.SupportedTypes;
|
||||
Assert.True(actual.SequenceEqual([
|
||||
ItemType.DipSwitch,
|
||||
ItemType.Disk,
|
||||
ItemType.Info,
|
||||
ItemType.PartFeature,
|
||||
ItemType.Rom,
|
||||
ItemType.SharedFeat,
|
||||
Data.Models.Metadata.ItemType.DipSwitch,
|
||||
Data.Models.Metadata.ItemType.Disk,
|
||||
Data.Models.Metadata.ItemType.Info,
|
||||
Data.Models.Metadata.ItemType.PartFeature,
|
||||
Data.Models.Metadata.ItemType.Rom,
|
||||
Data.Models.Metadata.ItemType.SharedFeat,
|
||||
]));
|
||||
}
|
||||
|
||||
|
||||
@@ -1004,7 +1004,7 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
_ = dict.AddItem(item, machineIndex, sourceIndex, statsOnly: false);
|
||||
|
||||
Assert.Equal(1, dict.DatStatistics.TotalCount);
|
||||
Assert.Equal(1, dict.DatStatistics.GetItemCount(ItemType.Rom));
|
||||
Assert.Equal(1, dict.DatStatistics.GetItemCount(Data.Models.Metadata.ItemType.Rom));
|
||||
Assert.Equal(12345, dict.DatStatistics.TotalSize);
|
||||
Assert.Equal(1, dict.DatStatistics.GetHashCount(HashType.CRC32));
|
||||
Assert.Equal(0, dict.DatStatistics.GetHashCount(HashType.MD5));
|
||||
@@ -1014,7 +1014,7 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
dict.RecalculateStats();
|
||||
|
||||
Assert.Equal(1, dict.DatStatistics.TotalCount);
|
||||
Assert.Equal(1, dict.DatStatistics.GetItemCount(ItemType.Rom));
|
||||
Assert.Equal(1, dict.DatStatistics.GetItemCount(Data.Models.Metadata.ItemType.Rom));
|
||||
Assert.Equal(12345, dict.DatStatistics.TotalSize);
|
||||
Assert.Equal(1, dict.DatStatistics.GetHashCount(HashType.CRC32));
|
||||
Assert.Equal(1, dict.DatStatistics.GetHashCount(HashType.MD5));
|
||||
|
||||
@@ -797,7 +797,7 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
_ = dict.AddItem(item, statsOnly: false);
|
||||
|
||||
Assert.Equal(1, dict.DatStatistics.TotalCount);
|
||||
Assert.Equal(1, dict.DatStatistics.GetItemCount(ItemType.Rom));
|
||||
Assert.Equal(1, dict.DatStatistics.GetItemCount(Data.Models.Metadata.ItemType.Rom));
|
||||
Assert.Equal(12345, dict.DatStatistics.TotalSize);
|
||||
Assert.Equal(1, dict.DatStatistics.GetHashCount(HashType.CRC32));
|
||||
Assert.Equal(0, dict.DatStatistics.GetHashCount(HashType.MD5));
|
||||
@@ -807,7 +807,7 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
dict.RecalculateStats();
|
||||
|
||||
Assert.Equal(1, dict.DatStatistics.TotalCount);
|
||||
Assert.Equal(1, dict.DatStatistics.GetItemCount(ItemType.Rom));
|
||||
Assert.Equal(1, dict.DatStatistics.GetItemCount(Data.Models.Metadata.ItemType.Rom));
|
||||
Assert.Equal(12345, dict.DatStatistics.TotalSize);
|
||||
Assert.Equal(1, dict.DatStatistics.GetHashCount(HashType.CRC32));
|
||||
Assert.Equal(1, dict.DatStatistics.GetHashCount(HashType.MD5));
|
||||
|
||||
@@ -702,7 +702,7 @@ namespace SabreTools.Metadata.DatFiles
|
||||
foreach (DatItem item in devItems)
|
||||
{
|
||||
// If the parent machine doesn't already contain this item, add it
|
||||
if (!datItems.Exists(i => i.ReadString(Data.Models.Metadata.DatItem.TypeKey) == item.ReadString(Data.Models.Metadata.DatItem.TypeKey) && i.GetName() == item.GetName()))
|
||||
if (!datItems.Exists(i => i.ItemType == item.ItemType && i.GetName() == item.GetName()))
|
||||
{
|
||||
// Set that we found new items
|
||||
foundnew = true;
|
||||
@@ -752,7 +752,7 @@ namespace SabreTools.Metadata.DatFiles
|
||||
foreach (DatItem item in slotItems)
|
||||
{
|
||||
// If the parent machine doesn't already contain this item, add it
|
||||
if (!datItems.Exists(i => i.ReadString(Data.Models.Metadata.DatItem.TypeKey) == item.ReadString(Data.Models.Metadata.DatItem.TypeKey) && i.GetName() == item.GetName()))
|
||||
if (!datItems.Exists(i => i.ItemType == item.ItemType && i.GetName() == item.GetName()))
|
||||
{
|
||||
// Set that we found new items
|
||||
foundnew = true;
|
||||
@@ -870,7 +870,7 @@ namespace SabreTools.Metadata.DatFiles
|
||||
foreach (var item in devItems.Values)
|
||||
{
|
||||
// If the parent machine doesn't already contain this item, add it
|
||||
if (!items.Values.Any(i => i.ReadString(Data.Models.Metadata.DatItem.TypeKey) == item.ReadString(Data.Models.Metadata.DatItem.TypeKey)
|
||||
if (!items.Values.Any(i => i.ItemType == item.ItemType
|
||||
&& i.GetName() == item.GetName()))
|
||||
{
|
||||
// Set that we found new items
|
||||
@@ -926,7 +926,7 @@ namespace SabreTools.Metadata.DatFiles
|
||||
foreach (var item in slotItems.Values)
|
||||
{
|
||||
// If the parent machine doesn't already contain this item, add it
|
||||
if (!items.Values.Any(i => i.ReadString(Data.Models.Metadata.DatItem.TypeKey) == item.ReadString(Data.Models.Metadata.DatItem.TypeKey)
|
||||
if (!items.Values.Any(i => i.ItemType == item.ItemType
|
||||
&& i.GetName() == item.GetName()))
|
||||
{
|
||||
// Set that we found new items
|
||||
|
||||
@@ -55,7 +55,7 @@ namespace SabreTools.Metadata.DatFiles
|
||||
/// <summary>
|
||||
/// List of supported types for writing
|
||||
/// </summary>
|
||||
public abstract ItemType[] SupportedTypes { get; }
|
||||
public abstract Data.Models.Metadata.ItemType[] SupportedTypes { get; }
|
||||
|
||||
#endregion
|
||||
|
||||
@@ -581,13 +581,13 @@ namespace SabreTools.Metadata.DatFiles
|
||||
protected internal static string FormatPrefixPostfix(DatItem item, Machine? machine, string fix)
|
||||
{
|
||||
// Initialize strings
|
||||
string? type = item.ReadString(Data.Models.Metadata.DatItem.TypeKey);
|
||||
Data.Models.Metadata.ItemType type = item.ItemType;
|
||||
string
|
||||
game = machine?.GetName() ?? string.Empty,
|
||||
manufacturer = machine?.ReadString(Data.Models.Metadata.Machine.ManufacturerKey) ?? string.Empty,
|
||||
publisher = machine?.ReadString(Data.Models.Metadata.Machine.PublisherKey) ?? string.Empty,
|
||||
category = machine?.ReadString(Data.Models.Metadata.Machine.CategoryKey) ?? string.Empty,
|
||||
name = item.GetName() ?? type.AsItemType().AsStringValue() ?? string.Empty,
|
||||
name = item.GetName() ?? type.AsStringValue() ?? string.Empty,
|
||||
crc16 = string.Empty,
|
||||
crc = string.Empty,
|
||||
crc64 = string.Empty,
|
||||
@@ -741,7 +741,7 @@ namespace SabreTools.Metadata.DatFiles
|
||||
|
||||
foreach (DatItem datItem in datItems)
|
||||
{
|
||||
ItemType itemType = datItem.ReadString(Data.Models.Metadata.DatItem.TypeKey).AsItemType();
|
||||
Data.Models.Metadata.ItemType itemType = datItem.ItemType;
|
||||
if (Array.Exists(SupportedTypes, t => t == itemType))
|
||||
return true;
|
||||
}
|
||||
@@ -800,12 +800,12 @@ namespace SabreTools.Metadata.DatFiles
|
||||
|
||||
// Get the last item name, if applicable
|
||||
string lastItemName = lastItem.GetName()
|
||||
?? lastItem.ReadString(Data.Models.Metadata.DatItem.TypeKey).AsItemType().AsStringValue()
|
||||
?? lastItem.ItemType.AsStringValue()
|
||||
?? string.Empty;
|
||||
|
||||
// Get the current item name, if applicable
|
||||
string datItemName = datItem.GetName()
|
||||
?? datItem.ReadString(Data.Models.Metadata.DatItem.TypeKey).AsItemType().AsStringValue()
|
||||
?? datItem.ItemType.AsStringValue()
|
||||
?? string.Empty;
|
||||
|
||||
// If the current item exactly matches the last item, then we don't add it
|
||||
@@ -897,12 +897,12 @@ namespace SabreTools.Metadata.DatFiles
|
||||
|
||||
// Get the last item name, if applicable
|
||||
string lastItemName = lastItem.Value.Value.GetName()
|
||||
?? lastItem.Value.Value.ReadString(Data.Models.Metadata.DatItem.TypeKey).AsItemType().AsStringValue()
|
||||
?? lastItem.Value.Value.ItemType.AsStringValue()
|
||||
?? string.Empty;
|
||||
|
||||
// Get the current item name, if applicable
|
||||
string datItemName = datItem.Value.GetName()
|
||||
?? datItem.Value.ReadString(Data.Models.Metadata.DatItem.TypeKey).AsItemType().AsStringValue()
|
||||
?? datItem.Value.ItemType.AsStringValue()
|
||||
?? string.Empty;
|
||||
|
||||
// Get sources for both items
|
||||
@@ -1009,7 +1009,7 @@ namespace SabreTools.Metadata.DatFiles
|
||||
}
|
||||
|
||||
// If we have an item type not in the list of supported values
|
||||
ItemType itemType = datItem.ReadString(Data.Models.Metadata.DatItem.TypeKey).AsItemType();
|
||||
Data.Models.Metadata.ItemType itemType = datItem.ItemType;
|
||||
if (!Array.Exists(SupportedTypes, t => t == itemType))
|
||||
{
|
||||
string itemString = JsonConvert.SerializeObject(datItem, Formatting.None);
|
||||
@@ -1182,8 +1182,8 @@ namespace SabreTools.Metadata.DatFiles
|
||||
return nc.Compare(xMachineName, yMachineName);
|
||||
|
||||
// If types don't match
|
||||
string? xType = x.ReadString(Data.Models.Metadata.DatItem.TypeKey);
|
||||
string? yType = y.ReadString(Data.Models.Metadata.DatItem.TypeKey);
|
||||
string? xType = x.ItemType.AsStringValue();
|
||||
string? yType = y.ItemType.AsStringValue();
|
||||
if (xType != yType)
|
||||
return xType.AsItemType() - yType.AsItemType();
|
||||
|
||||
@@ -1239,8 +1239,8 @@ namespace SabreTools.Metadata.DatFiles
|
||||
return nc.Compare(xMachineName, yMachineName);
|
||||
|
||||
// If types don't match
|
||||
string? xType = x.Value.ReadString(Data.Models.Metadata.DatItem.TypeKey);
|
||||
string? yType = y.Value.ReadString(Data.Models.Metadata.DatItem.TypeKey);
|
||||
string? xType = x.Value.ItemType.AsStringValue();
|
||||
string? yType = y.Value.ItemType.AsStringValue();
|
||||
if (xType != yType)
|
||||
return xType.AsItemType() - yType.AsItemType();
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@ namespace SabreTools.Metadata.DatFiles
|
||||
/// <summary>
|
||||
/// Number of items for each item type
|
||||
/// </summary>
|
||||
private readonly Dictionary<ItemType, long> _itemCounts = [];
|
||||
private readonly Dictionary<Data.Models.Metadata.ItemType, long> _itemCounts = [];
|
||||
|
||||
/// <summary>
|
||||
/// Number of items for each item status
|
||||
@@ -122,7 +122,7 @@ namespace SabreTools.Metadata.DatFiles
|
||||
RemovedCount++;
|
||||
|
||||
// Increment the item count for the type
|
||||
AddItemCount(item.ReadString(Data.Models.Metadata.DatItem.TypeKey).AsItemType());
|
||||
AddItemCount(item.ItemType);
|
||||
|
||||
// Some item types require special processing
|
||||
switch (item)
|
||||
@@ -161,7 +161,7 @@ namespace SabreTools.Metadata.DatFiles
|
||||
RemovedCount++;
|
||||
|
||||
// Increment the item count for the type
|
||||
AddItemCount(item.ReadString(Data.Models.Metadata.DatItem.TypeKey).AsItemType());
|
||||
AddItemCount(item.ItemType);
|
||||
|
||||
// Some item types require special processing
|
||||
switch (item)
|
||||
@@ -237,7 +237,7 @@ namespace SabreTools.Metadata.DatFiles
|
||||
/// </summary>
|
||||
/// <param name="itemType">Item type to retrieve</param>
|
||||
/// <returns>The number of items of that type, if it exists</returns>
|
||||
public long GetItemCount(ItemType itemType)
|
||||
public long GetItemCount(Data.Models.Metadata.ItemType itemType)
|
||||
{
|
||||
lock (_itemCounts)
|
||||
{
|
||||
@@ -284,7 +284,7 @@ namespace SabreTools.Metadata.DatFiles
|
||||
RemovedCount--;
|
||||
|
||||
// Decrement the item count for the type
|
||||
RemoveItemCount(item.ReadString(Data.Models.Metadata.DatItem.TypeKey).AsItemType());
|
||||
RemoveItemCount(item.ItemType);
|
||||
|
||||
// Some item types require special processing
|
||||
switch (item)
|
||||
@@ -329,7 +329,7 @@ namespace SabreTools.Metadata.DatFiles
|
||||
RemovedCount--;
|
||||
|
||||
// Decrement the item count for the type
|
||||
RemoveItemCount(item.ReadString(Data.Models.Metadata.DatItem.TypeKey).AsItemType());
|
||||
RemoveItemCount(item.ItemType);
|
||||
|
||||
// Some item types require special processing
|
||||
switch (item)
|
||||
@@ -389,7 +389,7 @@ namespace SabreTools.Metadata.DatFiles
|
||||
/// </summary>
|
||||
/// <param name="itemType">Item type to increment</param>
|
||||
/// <param name="interval">Amount to increment by, defaults to 1</param>
|
||||
private void AddItemCount(ItemType itemType, long interval = 1)
|
||||
private void AddItemCount(Data.Models.Metadata.ItemType itemType, long interval = 1)
|
||||
{
|
||||
lock (_itemCounts)
|
||||
{
|
||||
@@ -580,7 +580,7 @@ namespace SabreTools.Metadata.DatFiles
|
||||
/// </summary>
|
||||
/// <param name="itemType">Item type to decrement</param>
|
||||
/// <param name="interval">Amount to increment by, defaults to 1</param>
|
||||
private void RemoveItemCount(ItemType itemType, long interval = 1)
|
||||
private void RemoveItemCount(Data.Models.Metadata.ItemType itemType, long interval = 1)
|
||||
{
|
||||
lock (_itemCounts)
|
||||
{
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
using SabreTools.Metadata.DatItems;
|
||||
|
||||
namespace SabreTools.Metadata.DatFiles.Formats
|
||||
namespace SabreTools.Metadata.DatFiles.Formats
|
||||
{
|
||||
/// <summary>
|
||||
/// Represents a Archive.org file list
|
||||
@@ -8,9 +6,9 @@ namespace SabreTools.Metadata.DatFiles.Formats
|
||||
public sealed class ArchiveDotOrg : SerializableDatFile<Data.Models.ArchiveDotOrg.Files, Serialization.Readers.ArchiveDotOrg, Serialization.Writers.ArchiveDotOrg, Serialization.CrossModel.ArchiveDotOrg>
|
||||
{
|
||||
/// <inheritdoc/>
|
||||
public override ItemType[] SupportedTypes
|
||||
public override Data.Models.Metadata.ItemType[] SupportedTypes
|
||||
=> [
|
||||
ItemType.Rom,
|
||||
Data.Models.Metadata.ItemType.Rom,
|
||||
];
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -9,9 +9,9 @@ namespace SabreTools.Metadata.DatFiles.Formats
|
||||
public sealed class AttractMode : SerializableDatFile<Data.Models.AttractMode.MetadataFile, Serialization.Readers.AttractMode, Serialization.Writers.AttractMode, Serialization.CrossModel.AttractMode>
|
||||
{
|
||||
/// <inheritdoc/>
|
||||
public override ItemType[] SupportedTypes
|
||||
public override Data.Models.Metadata.ItemType[] SupportedTypes
|
||||
=> [
|
||||
ItemType.Rom,
|
||||
Data.Models.Metadata.ItemType.Rom,
|
||||
];
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -15,21 +15,21 @@ namespace SabreTools.Metadata.DatFiles.Formats
|
||||
#region Fields
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override ItemType[] SupportedTypes
|
||||
public override Data.Models.Metadata.ItemType[] SupportedTypes
|
||||
=> [
|
||||
ItemType.Archive,
|
||||
ItemType.BiosSet,
|
||||
ItemType.Chip,
|
||||
ItemType.DipSwitch,
|
||||
ItemType.Disk,
|
||||
ItemType.Display,
|
||||
ItemType.Driver,
|
||||
ItemType.Input,
|
||||
ItemType.Media,
|
||||
ItemType.Release,
|
||||
ItemType.Rom,
|
||||
ItemType.Sample,
|
||||
ItemType.Sound,
|
||||
Data.Models.Metadata.ItemType.Archive,
|
||||
Data.Models.Metadata.ItemType.BiosSet,
|
||||
Data.Models.Metadata.ItemType.Chip,
|
||||
Data.Models.Metadata.ItemType.DipSwitch,
|
||||
Data.Models.Metadata.ItemType.Disk,
|
||||
Data.Models.Metadata.ItemType.Display,
|
||||
Data.Models.Metadata.ItemType.Driver,
|
||||
Data.Models.Metadata.ItemType.Input,
|
||||
Data.Models.Metadata.ItemType.Media,
|
||||
Data.Models.Metadata.ItemType.Release,
|
||||
Data.Models.Metadata.ItemType.Rom,
|
||||
Data.Models.Metadata.ItemType.Sample,
|
||||
Data.Models.Metadata.ItemType.Sound,
|
||||
];
|
||||
|
||||
#endregion
|
||||
|
||||
@@ -10,9 +10,9 @@ namespace SabreTools.Metadata.DatFiles.Formats
|
||||
public sealed class DosCenter : SerializableDatFile<Data.Models.DosCenter.MetadataFile, Serialization.Readers.DosCenter, Serialization.Writers.DosCenter, Serialization.CrossModel.DosCenter>
|
||||
{
|
||||
/// <inheritdoc/>
|
||||
public override ItemType[] SupportedTypes
|
||||
public override Data.Models.Metadata.ItemType[] SupportedTypes
|
||||
=> [
|
||||
ItemType.Rom,
|
||||
Data.Models.Metadata.ItemType.Rom,
|
||||
];
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -10,9 +10,9 @@ namespace SabreTools.Metadata.DatFiles.Formats
|
||||
public sealed class EverdriveSMDB : SerializableDatFile<Data.Models.EverdriveSMDB.MetadataFile, Serialization.Readers.EverdriveSMDB, Serialization.Writers.EverdriveSMDB, Serialization.CrossModel.EverdriveSMDB>
|
||||
{
|
||||
/// <inheritdoc/>
|
||||
public override ItemType[] SupportedTypes
|
||||
public override Data.Models.Metadata.ItemType[] SupportedTypes
|
||||
=> [
|
||||
ItemType.Rom,
|
||||
Data.Models.Metadata.ItemType.Rom,
|
||||
];
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -10,10 +10,10 @@ namespace SabreTools.Metadata.DatFiles.Formats
|
||||
public sealed class Listrom : SerializableDatFile<Data.Models.Listrom.MetadataFile, Serialization.Readers.Listrom, Serialization.Writers.Listrom, Serialization.CrossModel.Listrom>
|
||||
{
|
||||
/// <inheritdoc/>
|
||||
public override ItemType[] SupportedTypes
|
||||
public override Data.Models.Metadata.ItemType[] SupportedTypes
|
||||
=> [
|
||||
ItemType.Disk,
|
||||
ItemType.Rom,
|
||||
Data.Models.Metadata.ItemType.Disk,
|
||||
Data.Models.Metadata.ItemType.Rom,
|
||||
];
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -185,28 +185,28 @@ namespace SabreTools.Metadata.DatFiles.Formats
|
||||
#region Fields
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override ItemType[] SupportedTypes
|
||||
public override Data.Models.Metadata.ItemType[] SupportedTypes
|
||||
=> [
|
||||
ItemType.Adjuster,
|
||||
ItemType.BiosSet,
|
||||
ItemType.Chip,
|
||||
ItemType.Condition,
|
||||
ItemType.Configuration,
|
||||
ItemType.Device,
|
||||
ItemType.DeviceRef,
|
||||
ItemType.DipSwitch,
|
||||
ItemType.Disk,
|
||||
ItemType.Display,
|
||||
ItemType.Driver,
|
||||
ItemType.Feature,
|
||||
ItemType.Input,
|
||||
ItemType.Port,
|
||||
ItemType.RamOption,
|
||||
ItemType.Rom,
|
||||
ItemType.Sample,
|
||||
ItemType.Slot,
|
||||
ItemType.SoftwareList,
|
||||
ItemType.Sound,
|
||||
Data.Models.Metadata.ItemType.Adjuster,
|
||||
Data.Models.Metadata.ItemType.BiosSet,
|
||||
Data.Models.Metadata.ItemType.Chip,
|
||||
Data.Models.Metadata.ItemType.Condition,
|
||||
Data.Models.Metadata.ItemType.Configuration,
|
||||
Data.Models.Metadata.ItemType.Device,
|
||||
Data.Models.Metadata.ItemType.DeviceRef,
|
||||
Data.Models.Metadata.ItemType.DipSwitch,
|
||||
Data.Models.Metadata.ItemType.Disk,
|
||||
Data.Models.Metadata.ItemType.Display,
|
||||
Data.Models.Metadata.ItemType.Driver,
|
||||
Data.Models.Metadata.ItemType.Feature,
|
||||
Data.Models.Metadata.ItemType.Input,
|
||||
Data.Models.Metadata.ItemType.Port,
|
||||
Data.Models.Metadata.ItemType.RamOption,
|
||||
Data.Models.Metadata.ItemType.Rom,
|
||||
Data.Models.Metadata.ItemType.Sample,
|
||||
Data.Models.Metadata.ItemType.Slot,
|
||||
Data.Models.Metadata.ItemType.SoftwareList,
|
||||
Data.Models.Metadata.ItemType.Sound,
|
||||
];
|
||||
|
||||
#endregion
|
||||
|
||||
@@ -224,18 +224,18 @@ namespace SabreTools.Metadata.DatFiles.Formats
|
||||
#region Fields
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override ItemType[] SupportedTypes
|
||||
public override Data.Models.Metadata.ItemType[] SupportedTypes
|
||||
=> [
|
||||
ItemType.Archive,
|
||||
ItemType.BiosSet,
|
||||
ItemType.DeviceRef,
|
||||
ItemType.Disk,
|
||||
ItemType.Driver,
|
||||
ItemType.Media,
|
||||
ItemType.Release,
|
||||
ItemType.Rom,
|
||||
ItemType.Sample,
|
||||
ItemType.SoftwareList,
|
||||
Data.Models.Metadata.ItemType.Archive,
|
||||
Data.Models.Metadata.ItemType.BiosSet,
|
||||
Data.Models.Metadata.ItemType.DeviceRef,
|
||||
Data.Models.Metadata.ItemType.Disk,
|
||||
Data.Models.Metadata.ItemType.Driver,
|
||||
Data.Models.Metadata.ItemType.Media,
|
||||
Data.Models.Metadata.ItemType.Release,
|
||||
Data.Models.Metadata.ItemType.Rom,
|
||||
Data.Models.Metadata.ItemType.Sample,
|
||||
Data.Models.Metadata.ItemType.SoftwareList,
|
||||
];
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -11,9 +11,9 @@ namespace SabreTools.Metadata.DatFiles.Formats
|
||||
public sealed class Md2File : Hashfile
|
||||
{
|
||||
/// <inheritdoc/>
|
||||
public override ItemType[] SupportedTypes
|
||||
public override Data.Models.Metadata.ItemType[] SupportedTypes
|
||||
=> [
|
||||
ItemType.Rom,
|
||||
Data.Models.Metadata.ItemType.Rom,
|
||||
];
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -11,9 +11,9 @@ namespace SabreTools.Metadata.DatFiles.Formats
|
||||
public sealed class Md4File : Hashfile
|
||||
{
|
||||
/// <inheritdoc/>
|
||||
public override ItemType[] SupportedTypes
|
||||
public override Data.Models.Metadata.ItemType[] SupportedTypes
|
||||
=> [
|
||||
ItemType.Rom,
|
||||
Data.Models.Metadata.ItemType.Rom,
|
||||
];
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -11,11 +11,11 @@ namespace SabreTools.Metadata.DatFiles.Formats
|
||||
public sealed class Md5File : Hashfile
|
||||
{
|
||||
/// <inheritdoc/>
|
||||
public override ItemType[] SupportedTypes
|
||||
public override Data.Models.Metadata.ItemType[] SupportedTypes
|
||||
=> [
|
||||
ItemType.Disk,
|
||||
ItemType.Media,
|
||||
ItemType.Rom,
|
||||
Data.Models.Metadata.ItemType.Disk,
|
||||
Data.Models.Metadata.ItemType.Media,
|
||||
Data.Models.Metadata.ItemType.Rom,
|
||||
];
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -13,8 +13,8 @@ namespace SabreTools.Metadata.DatFiles.Formats
|
||||
public sealed class Missfile : DatFile
|
||||
{
|
||||
/// <inheritdoc/>
|
||||
public override ItemType[] SupportedTypes
|
||||
=> Enum.GetValues(typeof(ItemType)) as ItemType[] ?? [];
|
||||
public override Data.Models.Metadata.ItemType[] SupportedTypes
|
||||
=> Enum.GetValues(typeof(Data.Models.Metadata.ItemType)) as Data.Models.Metadata.ItemType[] ?? [];
|
||||
|
||||
/// <summary>
|
||||
/// Constructor designed for casting a base DatFile
|
||||
|
||||
@@ -10,9 +10,9 @@ namespace SabreTools.Metadata.DatFiles.Formats
|
||||
public sealed class OfflineList : SerializableDatFile<Data.Models.OfflineList.Dat, Serialization.Readers.OfflineList, Serialization.Writers.OfflineList, Serialization.CrossModel.OfflineList>
|
||||
{
|
||||
/// <inheritdoc/>
|
||||
public override ItemType[] SupportedTypes
|
||||
public override Data.Models.Metadata.ItemType[] SupportedTypes
|
||||
=> [
|
||||
ItemType.Rom,
|
||||
Data.Models.Metadata.ItemType.Rom,
|
||||
];
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -47,9 +47,9 @@ The softwaredb.xml file contains information about rom mapper types
|
||||
#region Fields
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override ItemType[] SupportedTypes
|
||||
public override Data.Models.Metadata.ItemType[] SupportedTypes
|
||||
=> [
|
||||
ItemType.Rom,
|
||||
Data.Models.Metadata.ItemType.Rom,
|
||||
];
|
||||
|
||||
#endregion
|
||||
|
||||
@@ -11,9 +11,9 @@ namespace SabreTools.Metadata.DatFiles.Formats
|
||||
public sealed class RipeMD128File : Hashfile
|
||||
{
|
||||
/// <inheritdoc/>
|
||||
public override ItemType[] SupportedTypes
|
||||
public override Data.Models.Metadata.ItemType[] SupportedTypes
|
||||
=> [
|
||||
ItemType.Rom,
|
||||
Data.Models.Metadata.ItemType.Rom,
|
||||
];
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -11,9 +11,9 @@ namespace SabreTools.Metadata.DatFiles.Formats
|
||||
public sealed class RipeMD160File : Hashfile
|
||||
{
|
||||
/// <inheritdoc/>
|
||||
public override ItemType[] SupportedTypes
|
||||
public override Data.Models.Metadata.ItemType[] SupportedTypes
|
||||
=> [
|
||||
ItemType.Rom,
|
||||
Data.Models.Metadata.ItemType.Rom,
|
||||
];
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -10,9 +10,9 @@ namespace SabreTools.Metadata.DatFiles.Formats
|
||||
public sealed class RomCenter : SerializableDatFile<Data.Models.RomCenter.MetadataFile, Serialization.Readers.RomCenter, Serialization.Writers.RomCenter, Serialization.CrossModel.RomCenter>
|
||||
{
|
||||
/// <inheritdoc/>
|
||||
public override ItemType[] SupportedTypes
|
||||
public override Data.Models.Metadata.ItemType[] SupportedTypes
|
||||
=> [
|
||||
ItemType.Rom,
|
||||
Data.Models.Metadata.ItemType.Rom,
|
||||
];
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -19,8 +19,12 @@ namespace SabreTools.Metadata.DatFiles.Formats
|
||||
public sealed class SabreJSON : DatFile
|
||||
{
|
||||
/// <inheritdoc/>
|
||||
public override ItemType[] SupportedTypes
|
||||
=> Enum.GetValues(typeof(ItemType)) as ItemType[] ?? [];
|
||||
public override Data.Models.Metadata.ItemType[] SupportedTypes
|
||||
#if NET5_0_OR_GREATER
|
||||
=> Enum.GetValues<Data.Models.Metadata.ItemType>();
|
||||
#else
|
||||
=> Enum.GetValues(typeof(Data.Models.Metadata.ItemType)) as Data.Models.Metadata.ItemType[] ?? [];
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Constructor designed for casting a base DatFile
|
||||
@@ -250,140 +254,144 @@ namespace SabreTools.Metadata.DatFiles.Formats
|
||||
|
||||
switch (datItemObj.Value<string>("type").AsItemType())
|
||||
{
|
||||
case ItemType.Adjuster:
|
||||
case Data.Models.Metadata.ItemType.Adjuster:
|
||||
datItem = datItemObj.ToObject<Adjuster>();
|
||||
break;
|
||||
case ItemType.Analog:
|
||||
case Data.Models.Metadata.ItemType.Analog:
|
||||
datItem = datItemObj.ToObject<Analog>();
|
||||
break;
|
||||
case ItemType.Archive:
|
||||
case Data.Models.Metadata.ItemType.Archive:
|
||||
datItem = datItemObj.ToObject<Archive>();
|
||||
break;
|
||||
case ItemType.BiosSet:
|
||||
case Data.Models.Metadata.ItemType.BiosSet:
|
||||
datItem = datItemObj.ToObject<BiosSet>();
|
||||
break;
|
||||
case ItemType.Blank:
|
||||
case Data.Models.Metadata.ItemType.Blank:
|
||||
datItem = datItemObj.ToObject<Blank>();
|
||||
break;
|
||||
case ItemType.Chip:
|
||||
case Data.Models.Metadata.ItemType.Chip:
|
||||
datItem = datItemObj.ToObject<Chip>();
|
||||
break;
|
||||
case ItemType.Condition:
|
||||
case Data.Models.Metadata.ItemType.Condition:
|
||||
datItem = datItemObj.ToObject<Condition>();
|
||||
break;
|
||||
case ItemType.Configuration:
|
||||
case Data.Models.Metadata.ItemType.Configuration:
|
||||
datItem = datItemObj.ToObject<Configuration>();
|
||||
break;
|
||||
case ItemType.ConfLocation:
|
||||
case Data.Models.Metadata.ItemType.ConfLocation:
|
||||
datItem = datItemObj.ToObject<ConfLocation>();
|
||||
break;
|
||||
case ItemType.ConfSetting:
|
||||
case Data.Models.Metadata.ItemType.ConfSetting:
|
||||
datItem = datItemObj.ToObject<ConfSetting>();
|
||||
break;
|
||||
case ItemType.Control:
|
||||
case Data.Models.Metadata.ItemType.Control:
|
||||
datItem = datItemObj.ToObject<Control>();
|
||||
break;
|
||||
case ItemType.DataArea:
|
||||
case Data.Models.Metadata.ItemType.DataArea:
|
||||
datItem = datItemObj.ToObject<DataArea>();
|
||||
break;
|
||||
case ItemType.Device:
|
||||
case Data.Models.Metadata.ItemType.Device:
|
||||
datItem = datItemObj.ToObject<Device>();
|
||||
break;
|
||||
case ItemType.DeviceRef:
|
||||
case Data.Models.Metadata.ItemType.DeviceRef:
|
||||
datItem = datItemObj.ToObject<DeviceRef>();
|
||||
break;
|
||||
case ItemType.DipLocation:
|
||||
case Data.Models.Metadata.ItemType.DipLocation:
|
||||
datItem = datItemObj.ToObject<DipLocation>();
|
||||
break;
|
||||
case ItemType.DipValue:
|
||||
case Data.Models.Metadata.ItemType.DipValue:
|
||||
datItem = datItemObj.ToObject<DipValue>();
|
||||
break;
|
||||
case ItemType.DipSwitch:
|
||||
case Data.Models.Metadata.ItemType.DipSwitch:
|
||||
datItem = datItemObj.ToObject<DipSwitch>();
|
||||
break;
|
||||
case ItemType.Disk:
|
||||
case Data.Models.Metadata.ItemType.Disk:
|
||||
datItem = datItemObj.ToObject<Disk>();
|
||||
break;
|
||||
case ItemType.DiskArea:
|
||||
case Data.Models.Metadata.ItemType.DiskArea:
|
||||
datItem = datItemObj.ToObject<DiskArea>();
|
||||
break;
|
||||
case ItemType.Display:
|
||||
case Data.Models.Metadata.ItemType.Display:
|
||||
datItem = datItemObj.ToObject<Display>();
|
||||
break;
|
||||
case ItemType.Driver:
|
||||
case Data.Models.Metadata.ItemType.Driver:
|
||||
datItem = datItemObj.ToObject<Driver>();
|
||||
break;
|
||||
case ItemType.Extension:
|
||||
case Data.Models.Metadata.ItemType.Extension:
|
||||
datItem = datItemObj.ToObject<Extension>();
|
||||
break;
|
||||
case ItemType.Feature:
|
||||
case Data.Models.Metadata.ItemType.Feature:
|
||||
datItem = datItemObj.ToObject<Feature>();
|
||||
break;
|
||||
case ItemType.File:
|
||||
case Data.Models.Metadata.ItemType.File:
|
||||
datItem = datItemObj.ToObject<DatItems.Formats.File>();
|
||||
break;
|
||||
case ItemType.Info:
|
||||
case Data.Models.Metadata.ItemType.Info:
|
||||
datItem = datItemObj.ToObject<Info>();
|
||||
break;
|
||||
case ItemType.Input:
|
||||
case Data.Models.Metadata.ItemType.Input:
|
||||
datItem = datItemObj.ToObject<Input>();
|
||||
break;
|
||||
case ItemType.Instance:
|
||||
case Data.Models.Metadata.ItemType.Instance:
|
||||
datItem = datItemObj.ToObject<Instance>();
|
||||
break;
|
||||
case ItemType.Media:
|
||||
case Data.Models.Metadata.ItemType.Media:
|
||||
datItem = datItemObj.ToObject<Media>();
|
||||
break;
|
||||
case ItemType.Original:
|
||||
case Data.Models.Metadata.ItemType.Original:
|
||||
// Cannot be converted to a DatItem
|
||||
break;
|
||||
case ItemType.Part:
|
||||
case Data.Models.Metadata.ItemType.Part:
|
||||
datItem = datItemObj.ToObject<Part>();
|
||||
break;
|
||||
case ItemType.PartFeature:
|
||||
case Data.Models.Metadata.ItemType.PartFeature:
|
||||
datItem = datItemObj.ToObject<PartFeature>();
|
||||
break;
|
||||
case ItemType.Port:
|
||||
case Data.Models.Metadata.ItemType.Port:
|
||||
datItem = datItemObj.ToObject<Port>();
|
||||
break;
|
||||
case ItemType.RamOption:
|
||||
case Data.Models.Metadata.ItemType.RamOption:
|
||||
datItem = datItemObj.ToObject<RamOption>();
|
||||
break;
|
||||
case ItemType.Release:
|
||||
case Data.Models.Metadata.ItemType.Release:
|
||||
datItem = datItemObj.ToObject<Release>();
|
||||
break;
|
||||
case ItemType.ReleaseDetails:
|
||||
case Data.Models.Metadata.ItemType.ReleaseDetails:
|
||||
datItem = datItemObj.ToObject<ReleaseDetails>();
|
||||
break;
|
||||
case ItemType.Rom:
|
||||
case Data.Models.Metadata.ItemType.Rom:
|
||||
datItem = datItemObj.ToObject<Rom>();
|
||||
break;
|
||||
case ItemType.Sample:
|
||||
case Data.Models.Metadata.ItemType.Sample:
|
||||
datItem = datItemObj.ToObject<Sample>();
|
||||
break;
|
||||
case ItemType.Serials:
|
||||
case Data.Models.Metadata.ItemType.Serials:
|
||||
datItem = datItemObj.ToObject<Serials>();
|
||||
break;
|
||||
case ItemType.SharedFeat:
|
||||
case Data.Models.Metadata.ItemType.SharedFeat:
|
||||
datItem = datItemObj.ToObject<SharedFeat>();
|
||||
break;
|
||||
case ItemType.Slot:
|
||||
case Data.Models.Metadata.ItemType.Slot:
|
||||
datItem = datItemObj.ToObject<Slot>();
|
||||
break;
|
||||
case ItemType.SlotOption:
|
||||
case Data.Models.Metadata.ItemType.SlotOption:
|
||||
datItem = datItemObj.ToObject<SlotOption>();
|
||||
break;
|
||||
case ItemType.SoftwareList:
|
||||
case Data.Models.Metadata.ItemType.SoftwareList:
|
||||
datItem = datItemObj.ToObject<DatItems.Formats.SoftwareList>();
|
||||
break;
|
||||
case ItemType.Sound:
|
||||
case Data.Models.Metadata.ItemType.Sound:
|
||||
datItem = datItemObj.ToObject<Sound>();
|
||||
break;
|
||||
case ItemType.SourceDetails:
|
||||
case Data.Models.Metadata.ItemType.SourceDetails:
|
||||
datItem = datItemObj.ToObject<SourceDetails>();
|
||||
break;
|
||||
|
||||
case ItemType.NULL:
|
||||
// TODO: Implement these?
|
||||
case Data.Models.Metadata.ItemType.Dump:
|
||||
case Data.Models.Metadata.ItemType.Software:
|
||||
case Data.Models.Metadata.ItemType.Video:
|
||||
case Data.Models.Metadata.ItemType.NULL:
|
||||
default:
|
||||
// This should never happen
|
||||
break;
|
||||
|
||||
@@ -18,11 +18,11 @@ namespace SabreTools.Metadata.DatFiles.Formats
|
||||
public sealed class SabreXML : DatFile
|
||||
{
|
||||
/// <inheritdoc/>
|
||||
public override ItemType[] SupportedTypes
|
||||
public override Data.Models.Metadata.ItemType[] SupportedTypes
|
||||
#if NET5_0_OR_GREATER
|
||||
=> Enum.GetValues<ItemType>();
|
||||
=> Enum.GetValues<Data.Models.Metadata.ItemType>();
|
||||
#else
|
||||
=> Enum.GetValues(typeof(ItemType)) as ItemType[] ?? [];
|
||||
=> Enum.GetValues(typeof(Data.Models.Metadata.ItemType)) as Data.Models.Metadata.ItemType[] ?? [];
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -15,11 +15,11 @@ namespace SabreTools.Metadata.DatFiles.Formats
|
||||
#region Fields
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override ItemType[] SupportedTypes
|
||||
public override Data.Models.Metadata.ItemType[] SupportedTypes
|
||||
=> [
|
||||
ItemType.Disk,
|
||||
ItemType.Media,
|
||||
ItemType.Rom,
|
||||
Data.Models.Metadata.ItemType.Disk,
|
||||
Data.Models.Metadata.ItemType.Media,
|
||||
Data.Models.Metadata.ItemType.Rom,
|
||||
];
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -11,9 +11,9 @@ namespace SabreTools.Metadata.DatFiles.Formats
|
||||
public sealed class SfvFile : Hashfile
|
||||
{
|
||||
/// <inheritdoc/>
|
||||
public override ItemType[] SupportedTypes
|
||||
public override Data.Models.Metadata.ItemType[] SupportedTypes
|
||||
=> [
|
||||
ItemType.Rom,
|
||||
Data.Models.Metadata.ItemType.Rom,
|
||||
];
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -11,11 +11,11 @@ namespace SabreTools.Metadata.DatFiles.Formats
|
||||
public sealed class Sha1File : Hashfile
|
||||
{
|
||||
/// <inheritdoc/>
|
||||
public override ItemType[] SupportedTypes
|
||||
public override Data.Models.Metadata.ItemType[] SupportedTypes
|
||||
=> [
|
||||
ItemType.Disk,
|
||||
ItemType.Media,
|
||||
ItemType.Rom,
|
||||
Data.Models.Metadata.ItemType.Disk,
|
||||
Data.Models.Metadata.ItemType.Media,
|
||||
Data.Models.Metadata.ItemType.Rom,
|
||||
];
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -11,10 +11,10 @@ namespace SabreTools.Metadata.DatFiles.Formats
|
||||
public sealed class Sha256File : Hashfile
|
||||
{
|
||||
/// <inheritdoc/>
|
||||
public override ItemType[] SupportedTypes
|
||||
public override Data.Models.Metadata.ItemType[] SupportedTypes
|
||||
=> [
|
||||
ItemType.Media,
|
||||
ItemType.Rom,
|
||||
Data.Models.Metadata.ItemType.Media,
|
||||
Data.Models.Metadata.ItemType.Rom,
|
||||
];
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -11,9 +11,9 @@ namespace SabreTools.Metadata.DatFiles.Formats
|
||||
public sealed class Sha384File : Hashfile
|
||||
{
|
||||
/// <inheritdoc/>
|
||||
public override ItemType[] SupportedTypes
|
||||
public override Data.Models.Metadata.ItemType[] SupportedTypes
|
||||
=> [
|
||||
ItemType.Rom,
|
||||
Data.Models.Metadata.ItemType.Rom,
|
||||
];
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -11,9 +11,9 @@ namespace SabreTools.Metadata.DatFiles.Formats
|
||||
public sealed class Sha512File : Hashfile
|
||||
{
|
||||
/// <inheritdoc/>
|
||||
public override ItemType[] SupportedTypes
|
||||
public override Data.Models.Metadata.ItemType[] SupportedTypes
|
||||
=> [
|
||||
ItemType.Rom,
|
||||
Data.Models.Metadata.ItemType.Rom,
|
||||
];
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -78,14 +78,14 @@ namespace SabreTools.Metadata.DatFiles.Formats
|
||||
#region Fields
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override ItemType[] SupportedTypes
|
||||
public override Data.Models.Metadata.ItemType[] SupportedTypes
|
||||
=> [
|
||||
ItemType.DipSwitch,
|
||||
ItemType.Disk,
|
||||
ItemType.Info,
|
||||
ItemType.PartFeature,
|
||||
ItemType.Rom,
|
||||
ItemType.SharedFeat,
|
||||
Data.Models.Metadata.ItemType.DipSwitch,
|
||||
Data.Models.Metadata.ItemType.Disk,
|
||||
Data.Models.Metadata.ItemType.Info,
|
||||
Data.Models.Metadata.ItemType.PartFeature,
|
||||
Data.Models.Metadata.ItemType.Rom,
|
||||
Data.Models.Metadata.ItemType.SharedFeat,
|
||||
];
|
||||
|
||||
#endregion
|
||||
|
||||
@@ -11,10 +11,10 @@ namespace SabreTools.Metadata.DatFiles.Formats
|
||||
public sealed class SpamSumFile : Hashfile
|
||||
{
|
||||
/// <inheritdoc/>
|
||||
public override ItemType[] SupportedTypes
|
||||
public override Data.Models.Metadata.ItemType[] SupportedTypes
|
||||
=> [
|
||||
ItemType.Media,
|
||||
ItemType.Rom,
|
||||
Data.Models.Metadata.ItemType.Media,
|
||||
Data.Models.Metadata.ItemType.Rom,
|
||||
];
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -661,9 +661,9 @@ namespace SabreTools.Metadata.DatFiles
|
||||
private ItemKey GetBestAvailable()
|
||||
{
|
||||
// Get the required counts
|
||||
long diskCount = DatStatistics.GetItemCount(ItemType.Disk);
|
||||
long mediaCount = DatStatistics.GetItemCount(ItemType.Media);
|
||||
long romCount = DatStatistics.GetItemCount(ItemType.Rom);
|
||||
long diskCount = DatStatistics.GetItemCount(Data.Models.Metadata.ItemType.Disk);
|
||||
long mediaCount = DatStatistics.GetItemCount(Data.Models.Metadata.ItemType.Media);
|
||||
long romCount = DatStatistics.GetItemCount(Data.Models.Metadata.ItemType.Rom);
|
||||
long nodumpCount = DatStatistics.GetStatusCount(ItemStatus.Nodump);
|
||||
|
||||
// If all items are supposed to have a SHA-512, we bucket by that
|
||||
@@ -863,10 +863,10 @@ namespace SabreTools.Metadata.DatFiles
|
||||
return nc.Compare(xMachineName, yMachineName);
|
||||
|
||||
// If types don't match
|
||||
string? xType = x.ReadString(Data.Models.Metadata.DatItem.TypeKey);
|
||||
string? yType = y.ReadString(Data.Models.Metadata.DatItem.TypeKey);
|
||||
Data.Models.Metadata.ItemType xType = x.ItemType;
|
||||
Data.Models.Metadata.ItemType yType = y.ItemType;
|
||||
if (xType != yType)
|
||||
return xType.AsItemType() - yType.AsItemType();
|
||||
return xType - yType;
|
||||
|
||||
// If directory names don't match
|
||||
string? xDirectoryName = Path.GetDirectoryName(TextHelper.RemovePathUnsafeCharacters(x.GetName() ?? string.Empty));
|
||||
|
||||
@@ -976,9 +976,9 @@ namespace SabreTools.Metadata.DatFiles
|
||||
private ItemKey GetBestAvailable()
|
||||
{
|
||||
// Get the required counts
|
||||
long diskCount = DatStatistics.GetItemCount(ItemType.Disk);
|
||||
long mediaCount = DatStatistics.GetItemCount(ItemType.Media);
|
||||
long romCount = DatStatistics.GetItemCount(ItemType.Rom);
|
||||
long diskCount = DatStatistics.GetItemCount(Data.Models.Metadata.ItemType.Disk);
|
||||
long mediaCount = DatStatistics.GetItemCount(Data.Models.Metadata.ItemType.Media);
|
||||
long romCount = DatStatistics.GetItemCount(Data.Models.Metadata.ItemType.Rom);
|
||||
long nodumpCount = DatStatistics.GetStatusCount(ItemStatus.Nodump);
|
||||
|
||||
// If all items are supposed to have a SHA-512, we bucket by that
|
||||
@@ -1197,10 +1197,10 @@ namespace SabreTools.Metadata.DatFiles
|
||||
return nc.Compare(xMachineName, yMachineName);
|
||||
|
||||
// If types don't match
|
||||
string? xType = x.Value.ReadString(Data.Models.Metadata.DatItem.TypeKey);
|
||||
string? yType = y.Value.ReadString(Data.Models.Metadata.DatItem.TypeKey);
|
||||
Data.Models.Metadata.ItemType xType = x.Value.ItemType;
|
||||
Data.Models.Metadata.ItemType yType = y.Value.ItemType;
|
||||
if (xType != yType)
|
||||
return xType.AsItemType() - yType.AsItemType();
|
||||
return xType - yType;
|
||||
|
||||
// If directory names don't match
|
||||
string? xDirectoryName = Path.GetDirectoryName(TextHelper.RemovePathUnsafeCharacters(x.Value.GetName()));
|
||||
|
||||
@@ -23,7 +23,7 @@ namespace SabreTools.Metadata.DatItems.Test
|
||||
{
|
||||
private readonly string? _nameKey;
|
||||
|
||||
protected override ItemType ItemType => ItemType.Blank;
|
||||
internal override Data.Models.Metadata.ItemType ItemType => Data.Models.Metadata.ItemType.Blank;
|
||||
|
||||
public TestDatItem() => _nameKey = TestDatItemModel.NameKey;
|
||||
|
||||
|
||||
@@ -7,63 +7,63 @@ namespace SabreTools.Metadata.DatItems.Test
|
||||
#region String to Enum
|
||||
|
||||
[Theory]
|
||||
[InlineData(null, ItemType.NULL)]
|
||||
[InlineData("adjuster", ItemType.Adjuster)]
|
||||
[InlineData("analog", ItemType.Analog)]
|
||||
[InlineData("archive", ItemType.Archive)]
|
||||
[InlineData("biosset", ItemType.BiosSet)]
|
||||
[InlineData("blank", ItemType.Blank)]
|
||||
[InlineData("chip", ItemType.Chip)]
|
||||
[InlineData("condition", ItemType.Condition)]
|
||||
[InlineData("configuration", ItemType.Configuration)]
|
||||
[InlineData("conflocation", ItemType.ConfLocation)]
|
||||
[InlineData("confsetting", ItemType.ConfSetting)]
|
||||
[InlineData("control", ItemType.Control)]
|
||||
[InlineData("dataarea", ItemType.DataArea)]
|
||||
[InlineData("device", ItemType.Device)]
|
||||
[InlineData("deviceref", ItemType.DeviceRef)]
|
||||
[InlineData("device_ref", ItemType.DeviceRef)]
|
||||
[InlineData("diplocation", ItemType.DipLocation)]
|
||||
[InlineData("dipswitch", ItemType.DipSwitch)]
|
||||
[InlineData("dipvalue", ItemType.DipValue)]
|
||||
[InlineData("disk", ItemType.Disk)]
|
||||
[InlineData("diskarea", ItemType.DiskArea)]
|
||||
[InlineData("display", ItemType.Display)]
|
||||
[InlineData("driver", ItemType.Driver)]
|
||||
[InlineData("extension", ItemType.Extension)]
|
||||
[InlineData("feature", ItemType.Feature)]
|
||||
[InlineData("file", ItemType.File)]
|
||||
[InlineData("info", ItemType.Info)]
|
||||
[InlineData("input", ItemType.Input)]
|
||||
[InlineData("instance", ItemType.Instance)]
|
||||
[InlineData("media", ItemType.Media)]
|
||||
[InlineData("part", ItemType.Part)]
|
||||
[InlineData("partfeature", ItemType.PartFeature)]
|
||||
[InlineData("part_feature", ItemType.PartFeature)]
|
||||
[InlineData("port", ItemType.Port)]
|
||||
[InlineData("ramoption", ItemType.RamOption)]
|
||||
[InlineData("ram_option", ItemType.RamOption)]
|
||||
[InlineData("release", ItemType.Release)]
|
||||
[InlineData("releasedetails", ItemType.ReleaseDetails)]
|
||||
[InlineData("release_details", ItemType.ReleaseDetails)]
|
||||
[InlineData("rom", ItemType.Rom)]
|
||||
[InlineData("sample", ItemType.Sample)]
|
||||
[InlineData("serials", ItemType.Serials)]
|
||||
[InlineData("sharedfeat", ItemType.SharedFeat)]
|
||||
[InlineData("shared_feat", ItemType.SharedFeat)]
|
||||
[InlineData("sharedfeature", ItemType.SharedFeat)]
|
||||
[InlineData("shared_feature", ItemType.SharedFeat)]
|
||||
[InlineData("slot", ItemType.Slot)]
|
||||
[InlineData("slotoption", ItemType.SlotOption)]
|
||||
[InlineData("slot_option", ItemType.SlotOption)]
|
||||
[InlineData("softwarelist", ItemType.SoftwareList)]
|
||||
[InlineData("software_list", ItemType.SoftwareList)]
|
||||
[InlineData("sound", ItemType.Sound)]
|
||||
[InlineData("sourcedetails", ItemType.SourceDetails)]
|
||||
[InlineData("source_details", ItemType.SourceDetails)]
|
||||
public void AsItemTypeTest(string? field, ItemType expected)
|
||||
[InlineData(null, Data.Models.Metadata.ItemType.NULL)]
|
||||
[InlineData("adjuster", Data.Models.Metadata.ItemType.Adjuster)]
|
||||
[InlineData("analog", Data.Models.Metadata.ItemType.Analog)]
|
||||
[InlineData("archive", Data.Models.Metadata.ItemType.Archive)]
|
||||
[InlineData("biosset", Data.Models.Metadata.ItemType.BiosSet)]
|
||||
[InlineData("blank", Data.Models.Metadata.ItemType.Blank)]
|
||||
[InlineData("chip", Data.Models.Metadata.ItemType.Chip)]
|
||||
[InlineData("condition", Data.Models.Metadata.ItemType.Condition)]
|
||||
[InlineData("configuration", Data.Models.Metadata.ItemType.Configuration)]
|
||||
[InlineData("conflocation", Data.Models.Metadata.ItemType.ConfLocation)]
|
||||
[InlineData("confsetting", Data.Models.Metadata.ItemType.ConfSetting)]
|
||||
[InlineData("control", Data.Models.Metadata.ItemType.Control)]
|
||||
[InlineData("dataarea", Data.Models.Metadata.ItemType.DataArea)]
|
||||
[InlineData("device", Data.Models.Metadata.ItemType.Device)]
|
||||
[InlineData("deviceref", Data.Models.Metadata.ItemType.DeviceRef)]
|
||||
[InlineData("device_ref", Data.Models.Metadata.ItemType.DeviceRef)]
|
||||
[InlineData("diplocation", Data.Models.Metadata.ItemType.DipLocation)]
|
||||
[InlineData("dipswitch", Data.Models.Metadata.ItemType.DipSwitch)]
|
||||
[InlineData("dipvalue", Data.Models.Metadata.ItemType.DipValue)]
|
||||
[InlineData("disk", Data.Models.Metadata.ItemType.Disk)]
|
||||
[InlineData("diskarea", Data.Models.Metadata.ItemType.DiskArea)]
|
||||
[InlineData("display", Data.Models.Metadata.ItemType.Display)]
|
||||
[InlineData("driver", Data.Models.Metadata.ItemType.Driver)]
|
||||
[InlineData("extension", Data.Models.Metadata.ItemType.Extension)]
|
||||
[InlineData("feature", Data.Models.Metadata.ItemType.Feature)]
|
||||
[InlineData("file", Data.Models.Metadata.ItemType.File)]
|
||||
[InlineData("info", Data.Models.Metadata.ItemType.Info)]
|
||||
[InlineData("input", Data.Models.Metadata.ItemType.Input)]
|
||||
[InlineData("instance", Data.Models.Metadata.ItemType.Instance)]
|
||||
[InlineData("media", Data.Models.Metadata.ItemType.Media)]
|
||||
[InlineData("part", Data.Models.Metadata.ItemType.Part)]
|
||||
[InlineData("partfeature", Data.Models.Metadata.ItemType.PartFeature)]
|
||||
[InlineData("part_feature", Data.Models.Metadata.ItemType.PartFeature)]
|
||||
[InlineData("port", Data.Models.Metadata.ItemType.Port)]
|
||||
[InlineData("ramoption", Data.Models.Metadata.ItemType.RamOption)]
|
||||
[InlineData("ram_option", Data.Models.Metadata.ItemType.RamOption)]
|
||||
[InlineData("release", Data.Models.Metadata.ItemType.Release)]
|
||||
[InlineData("releasedetails", Data.Models.Metadata.ItemType.ReleaseDetails)]
|
||||
[InlineData("release_details", Data.Models.Metadata.ItemType.ReleaseDetails)]
|
||||
[InlineData("rom", Data.Models.Metadata.ItemType.Rom)]
|
||||
[InlineData("sample", Data.Models.Metadata.ItemType.Sample)]
|
||||
[InlineData("serials", Data.Models.Metadata.ItemType.Serials)]
|
||||
[InlineData("sharedfeat", Data.Models.Metadata.ItemType.SharedFeat)]
|
||||
[InlineData("shared_feat", Data.Models.Metadata.ItemType.SharedFeat)]
|
||||
[InlineData("sharedfeature", Data.Models.Metadata.ItemType.SharedFeat)]
|
||||
[InlineData("shared_feature", Data.Models.Metadata.ItemType.SharedFeat)]
|
||||
[InlineData("slot", Data.Models.Metadata.ItemType.Slot)]
|
||||
[InlineData("slotoption", Data.Models.Metadata.ItemType.SlotOption)]
|
||||
[InlineData("slot_option", Data.Models.Metadata.ItemType.SlotOption)]
|
||||
[InlineData("softwarelist", Data.Models.Metadata.ItemType.SoftwareList)]
|
||||
[InlineData("software_list", Data.Models.Metadata.ItemType.SoftwareList)]
|
||||
[InlineData("sound", Data.Models.Metadata.ItemType.Sound)]
|
||||
[InlineData("sourcedetails", Data.Models.Metadata.ItemType.SourceDetails)]
|
||||
[InlineData("source_details", Data.Models.Metadata.ItemType.SourceDetails)]
|
||||
public void AsItemTypeTest(string? field, Data.Models.Metadata.ItemType expected)
|
||||
{
|
||||
ItemType actual = field.AsItemType();
|
||||
Data.Models.Metadata.ItemType actual = field.AsItemType();
|
||||
Assert.Equal(expected, actual);
|
||||
}
|
||||
|
||||
@@ -86,51 +86,51 @@ namespace SabreTools.Metadata.DatItems.Test
|
||||
#region Enum to String
|
||||
|
||||
[Theory]
|
||||
[InlineData(ItemType.NULL, null)]
|
||||
[InlineData(ItemType.Adjuster, "adjuster")]
|
||||
[InlineData(ItemType.Analog, "analog")]
|
||||
[InlineData(ItemType.Archive, "archive")]
|
||||
[InlineData(ItemType.BiosSet, "biosset")]
|
||||
[InlineData(ItemType.Blank, "blank")]
|
||||
[InlineData(ItemType.Chip, "chip")]
|
||||
[InlineData(ItemType.Condition, "condition")]
|
||||
[InlineData(ItemType.Configuration, "configuration")]
|
||||
[InlineData(ItemType.ConfLocation, "conflocation")]
|
||||
[InlineData(ItemType.ConfSetting, "confsetting")]
|
||||
[InlineData(ItemType.Control, "control")]
|
||||
[InlineData(ItemType.DataArea, "dataarea")]
|
||||
[InlineData(ItemType.Device, "device")]
|
||||
[InlineData(ItemType.DeviceRef, "device_ref")]
|
||||
[InlineData(ItemType.DipLocation, "diplocation")]
|
||||
[InlineData(ItemType.DipSwitch, "dipswitch")]
|
||||
[InlineData(ItemType.DipValue, "dipvalue")]
|
||||
[InlineData(ItemType.Disk, "disk")]
|
||||
[InlineData(ItemType.DiskArea, "diskarea")]
|
||||
[InlineData(ItemType.Display, "display")]
|
||||
[InlineData(ItemType.Driver, "driver")]
|
||||
[InlineData(ItemType.Extension, "extension")]
|
||||
[InlineData(ItemType.Feature, "feature")]
|
||||
[InlineData(ItemType.File, "file")]
|
||||
[InlineData(ItemType.Info, "info")]
|
||||
[InlineData(ItemType.Input, "input")]
|
||||
[InlineData(ItemType.Instance, "instance")]
|
||||
[InlineData(ItemType.Media, "media")]
|
||||
[InlineData(ItemType.Part, "part")]
|
||||
[InlineData(ItemType.PartFeature, "part_feature")]
|
||||
[InlineData(ItemType.Port, "port")]
|
||||
[InlineData(ItemType.RamOption, "ramoption")]
|
||||
[InlineData(ItemType.Release, "release")]
|
||||
[InlineData(ItemType.ReleaseDetails, "release_details")]
|
||||
[InlineData(ItemType.Rom, "rom")]
|
||||
[InlineData(ItemType.Sample, "sample")]
|
||||
[InlineData(ItemType.Serials, "serials")]
|
||||
[InlineData(ItemType.SharedFeat, "sharedfeat")]
|
||||
[InlineData(ItemType.Slot, "slot")]
|
||||
[InlineData(ItemType.SlotOption, "slotoption")]
|
||||
[InlineData(ItemType.SoftwareList, "softwarelist")]
|
||||
[InlineData(ItemType.Sound, "sound")]
|
||||
[InlineData(ItemType.SourceDetails, "source_details")]
|
||||
public void FromItemTypeTest(ItemType field, string? expected)
|
||||
[InlineData(Data.Models.Metadata.ItemType.NULL, null)]
|
||||
[InlineData(Data.Models.Metadata.ItemType.Adjuster, "adjuster")]
|
||||
[InlineData(Data.Models.Metadata.ItemType.Analog, "analog")]
|
||||
[InlineData(Data.Models.Metadata.ItemType.Archive, "archive")]
|
||||
[InlineData(Data.Models.Metadata.ItemType.BiosSet, "biosset")]
|
||||
[InlineData(Data.Models.Metadata.ItemType.Blank, "blank")]
|
||||
[InlineData(Data.Models.Metadata.ItemType.Chip, "chip")]
|
||||
[InlineData(Data.Models.Metadata.ItemType.Condition, "condition")]
|
||||
[InlineData(Data.Models.Metadata.ItemType.Configuration, "configuration")]
|
||||
[InlineData(Data.Models.Metadata.ItemType.ConfLocation, "conflocation")]
|
||||
[InlineData(Data.Models.Metadata.ItemType.ConfSetting, "confsetting")]
|
||||
[InlineData(Data.Models.Metadata.ItemType.Control, "control")]
|
||||
[InlineData(Data.Models.Metadata.ItemType.DataArea, "dataarea")]
|
||||
[InlineData(Data.Models.Metadata.ItemType.Device, "device")]
|
||||
[InlineData(Data.Models.Metadata.ItemType.DeviceRef, "device_ref")]
|
||||
[InlineData(Data.Models.Metadata.ItemType.DipLocation, "diplocation")]
|
||||
[InlineData(Data.Models.Metadata.ItemType.DipSwitch, "dipswitch")]
|
||||
[InlineData(Data.Models.Metadata.ItemType.DipValue, "dipvalue")]
|
||||
[InlineData(Data.Models.Metadata.ItemType.Disk, "disk")]
|
||||
[InlineData(Data.Models.Metadata.ItemType.DiskArea, "diskarea")]
|
||||
[InlineData(Data.Models.Metadata.ItemType.Display, "display")]
|
||||
[InlineData(Data.Models.Metadata.ItemType.Driver, "driver")]
|
||||
[InlineData(Data.Models.Metadata.ItemType.Extension, "extension")]
|
||||
[InlineData(Data.Models.Metadata.ItemType.Feature, "feature")]
|
||||
[InlineData(Data.Models.Metadata.ItemType.File, "file")]
|
||||
[InlineData(Data.Models.Metadata.ItemType.Info, "info")]
|
||||
[InlineData(Data.Models.Metadata.ItemType.Input, "input")]
|
||||
[InlineData(Data.Models.Metadata.ItemType.Instance, "instance")]
|
||||
[InlineData(Data.Models.Metadata.ItemType.Media, "media")]
|
||||
[InlineData(Data.Models.Metadata.ItemType.Part, "part")]
|
||||
[InlineData(Data.Models.Metadata.ItemType.PartFeature, "part_feature")]
|
||||
[InlineData(Data.Models.Metadata.ItemType.Port, "port")]
|
||||
[InlineData(Data.Models.Metadata.ItemType.RamOption, "ramoption")]
|
||||
[InlineData(Data.Models.Metadata.ItemType.Release, "release")]
|
||||
[InlineData(Data.Models.Metadata.ItemType.ReleaseDetails, "release_details")]
|
||||
[InlineData(Data.Models.Metadata.ItemType.Rom, "rom")]
|
||||
[InlineData(Data.Models.Metadata.ItemType.Sample, "sample")]
|
||||
[InlineData(Data.Models.Metadata.ItemType.Serials, "serials")]
|
||||
[InlineData(Data.Models.Metadata.ItemType.SharedFeat, "sharedfeat")]
|
||||
[InlineData(Data.Models.Metadata.ItemType.Slot, "slot")]
|
||||
[InlineData(Data.Models.Metadata.ItemType.SlotOption, "slotoption")]
|
||||
[InlineData(Data.Models.Metadata.ItemType.SoftwareList, "softwarelist")]
|
||||
[InlineData(Data.Models.Metadata.ItemType.Sound, "sound")]
|
||||
[InlineData(Data.Models.Metadata.ItemType.SourceDetails, "source_details")]
|
||||
public void FromItemTypeTest(Data.Models.Metadata.ItemType field, string? expected)
|
||||
{
|
||||
string? actual = field.AsStringValue();
|
||||
Assert.Equal(expected, actual);
|
||||
|
||||
@@ -85,7 +85,7 @@ namespace SabreTools.Metadata.DatItems
|
||||
/// <summary>
|
||||
/// Item type for the object
|
||||
/// </summary>
|
||||
protected abstract ItemType ItemType { get; }
|
||||
internal abstract Data.Models.Metadata.ItemType ItemType { get; }
|
||||
|
||||
#endregion
|
||||
|
||||
@@ -223,8 +223,8 @@ namespace SabreTools.Metadata.DatItems
|
||||
return false;
|
||||
|
||||
// Get the types for comparison
|
||||
ItemType selfType = ReadString(Data.Models.Metadata.DatItem.TypeKey).AsItemType();
|
||||
ItemType otherType = other.ReadString(Data.Models.Metadata.DatItem.TypeKey).AsItemType();
|
||||
Data.Models.Metadata.ItemType selfType = ItemType;
|
||||
Data.Models.Metadata.ItemType otherType = other.ItemType;
|
||||
|
||||
// If we don't have a matched type, return false
|
||||
if (selfType != otherType)
|
||||
|
||||
@@ -18,7 +18,6 @@ namespace SabreTools.Metadata.DatItems
|
||||
_internal = new T();
|
||||
|
||||
SetName(string.Empty);
|
||||
Write(Data.Models.Metadata.DatItem.TypeKey, ItemType);
|
||||
Write(MachineKey, new Machine());
|
||||
}
|
||||
|
||||
@@ -29,7 +28,6 @@ namespace SabreTools.Metadata.DatItems
|
||||
{
|
||||
_internal = item;
|
||||
|
||||
Write(Data.Models.Metadata.DatItem.TypeKey, ItemType);
|
||||
Write(MachineKey, new Machine());
|
||||
}
|
||||
|
||||
@@ -78,8 +76,8 @@ namespace SabreTools.Metadata.DatItems
|
||||
return false;
|
||||
|
||||
// Get the types for comparison
|
||||
ItemType selfType = ReadString(Data.Models.Metadata.DatItem.TypeKey).AsItemType();
|
||||
ItemType otherType = other.ReadString(Data.Models.Metadata.DatItem.TypeKey).AsItemType();
|
||||
Data.Models.Metadata.ItemType selfType = ItemType;
|
||||
Data.Models.Metadata.ItemType otherType = other.ItemType;
|
||||
|
||||
// If we don't have a matched type, return false
|
||||
if (selfType != otherType)
|
||||
|
||||
@@ -41,153 +41,6 @@ namespace SabreTools.Metadata.DatItems
|
||||
SpamSum,
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Determine what type of file an item is
|
||||
/// </summary>
|
||||
public enum ItemType
|
||||
{
|
||||
/// <summary>
|
||||
/// This is a fake flag that is used for filter only
|
||||
/// </summary>
|
||||
NULL = 0,
|
||||
|
||||
// "Actionable" item types
|
||||
|
||||
/// <summary>"rom"</summary>
|
||||
Rom,
|
||||
|
||||
/// <summary>"disk"</summary>
|
||||
Disk,
|
||||
|
||||
/// <summary>"file"</summary>
|
||||
File,
|
||||
|
||||
/// <summary>"media"</summary>
|
||||
Media,
|
||||
|
||||
// "Auxiliary" item types
|
||||
|
||||
/// <summary>"adjuster"</summary>
|
||||
Adjuster,
|
||||
|
||||
/// <summary>"analog"</summary>
|
||||
Analog,
|
||||
|
||||
/// <summary>"archive"</summary>
|
||||
Archive,
|
||||
|
||||
/// <summary>"biosset"</summary>
|
||||
BiosSet,
|
||||
|
||||
/// <summary>"chip"</summary>
|
||||
Chip,
|
||||
|
||||
/// <summary>"condition"</summary>
|
||||
Condition,
|
||||
|
||||
/// <summary>"configuration"</summary>
|
||||
Configuration,
|
||||
|
||||
/// <summary>"conflocation"</summary>
|
||||
ConfLocation,
|
||||
|
||||
/// <summary>"confsetting"</summary>
|
||||
ConfSetting,
|
||||
|
||||
/// <summary>"control"</summary>
|
||||
Control,
|
||||
|
||||
/// <summary>"dataarea"</summary>
|
||||
DataArea,
|
||||
|
||||
/// <summary>"device"</summary>
|
||||
Device,
|
||||
|
||||
/// <summary>"device_ref", "deviceref"</summary>
|
||||
DeviceRef,
|
||||
|
||||
/// <summary>"diplocation"</summary>
|
||||
DipLocation,
|
||||
|
||||
/// <summary>"dipswitch"</summary>
|
||||
DipSwitch,
|
||||
|
||||
/// <summary>"dipvalue"</summary>
|
||||
DipValue,
|
||||
|
||||
/// <summary>"diskarea"</summary>
|
||||
DiskArea,
|
||||
|
||||
/// <summary>"display"</summary>
|
||||
Display,
|
||||
|
||||
/// <summary>"driver"</summary>
|
||||
Driver,
|
||||
|
||||
/// <summary>"extension"</summary>
|
||||
Extension,
|
||||
|
||||
/// <summary>"feature"</summary>
|
||||
Feature,
|
||||
|
||||
/// <summary>"info"</summary>
|
||||
Info,
|
||||
|
||||
/// <summary>"input"</summary>
|
||||
Input,
|
||||
|
||||
/// <summary>"instance"</summary>
|
||||
Instance,
|
||||
|
||||
/// <summary>"original"</summary>
|
||||
Original,
|
||||
|
||||
/// <summary>"part"</summary>
|
||||
Part,
|
||||
|
||||
/// <summary>"part_feature", "partfeature"</summary>
|
||||
PartFeature,
|
||||
|
||||
/// <summary>"port"</summary>
|
||||
Port,
|
||||
|
||||
/// <summary>"ramoption", "ram_option"</summary>
|
||||
RamOption,
|
||||
|
||||
/// <summary>"release"</summary>
|
||||
Release,
|
||||
|
||||
/// <summary>"release_details", "releasedetails"</summary>
|
||||
ReleaseDetails,
|
||||
|
||||
/// <summary>"sample"</summary>
|
||||
Sample,
|
||||
|
||||
/// <summary>"serials"</summary>
|
||||
Serials,
|
||||
|
||||
/// <summary>"sharedfeat", "shared_feat", "sharedfeature", "shared_feature"</summary>
|
||||
SharedFeat,
|
||||
|
||||
/// <summary>"slot"</summary>
|
||||
Slot,
|
||||
|
||||
/// <summary>"slotoption", "slot_option"</summary>
|
||||
SlotOption,
|
||||
|
||||
/// <summary>"softwarelist", "software_list"</summary>
|
||||
SoftwareList,
|
||||
|
||||
/// <summary>"sound"</summary>
|
||||
Sound,
|
||||
|
||||
/// <summary>"source_details", "sourcedetails"</summary>
|
||||
SourceDetails,
|
||||
|
||||
/// <summary>"blank"</summary>
|
||||
Blank = 99, // This is not a real type, only used internally
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Determine what type of machine it is
|
||||
/// </summary>
|
||||
|
||||
@@ -9,58 +9,61 @@ namespace SabreTools.Metadata.DatItems
|
||||
/// </summary>
|
||||
/// <param name="value">String value to parse/param>
|
||||
/// <returns>Enum value representing the input, default on error</returns>
|
||||
public static ItemType AsItemType(this string? value)
|
||||
public static Data.Models.Metadata.ItemType AsItemType(this string? value)
|
||||
{
|
||||
return value?.ToLowerInvariant() switch
|
||||
{
|
||||
// "Actionable" item types
|
||||
"rom" => ItemType.Rom,
|
||||
"disk" => ItemType.Disk,
|
||||
"file" => ItemType.File,
|
||||
"media" => ItemType.Media,
|
||||
"rom" => Data.Models.Metadata.ItemType.Rom,
|
||||
"disk" => Data.Models.Metadata.ItemType.Disk,
|
||||
"file" => Data.Models.Metadata.ItemType.File,
|
||||
"media" => Data.Models.Metadata.ItemType.Media,
|
||||
|
||||
// "Auxiliary" item types
|
||||
"adjuster" => ItemType.Adjuster,
|
||||
"analog" => ItemType.Analog,
|
||||
"archive" => ItemType.Archive,
|
||||
"biosset" => ItemType.BiosSet,
|
||||
"chip" => ItemType.Chip,
|
||||
"condition" => ItemType.Condition,
|
||||
"configuration" => ItemType.Configuration,
|
||||
"conflocation" => ItemType.ConfLocation,
|
||||
"confsetting" => ItemType.ConfSetting,
|
||||
"control" => ItemType.Control,
|
||||
"dataarea" => ItemType.DataArea,
|
||||
"device" => ItemType.Device,
|
||||
"device_ref" or "deviceref" => ItemType.DeviceRef,
|
||||
"diplocation" => ItemType.DipLocation,
|
||||
"dipswitch" => ItemType.DipSwitch,
|
||||
"dipvalue" => ItemType.DipValue,
|
||||
"diskarea" => ItemType.DiskArea,
|
||||
"display" => ItemType.Display,
|
||||
"driver" => ItemType.Driver,
|
||||
"extension" => ItemType.Extension,
|
||||
"feature" => ItemType.Feature,
|
||||
"info" => ItemType.Info,
|
||||
"input" => ItemType.Input,
|
||||
"instance" => ItemType.Instance,
|
||||
"original" => ItemType.Original,
|
||||
"part" => ItemType.Part,
|
||||
"part_feature" or "partfeature" => ItemType.PartFeature,
|
||||
"port" => ItemType.Port,
|
||||
"ramoption" or "ram_option" => ItemType.RamOption,
|
||||
"release" => ItemType.Release,
|
||||
"release_details" or "releasedetails" => ItemType.ReleaseDetails,
|
||||
"sample" => ItemType.Sample,
|
||||
"serials" => ItemType.Serials,
|
||||
"sharedfeat" or "shared_feat" or "sharedfeature" or "shared_feature" => ItemType.SharedFeat,
|
||||
"slot" => ItemType.Slot,
|
||||
"slotoption" or "slot_option" => ItemType.SlotOption,
|
||||
"softwarelist" or "software_list" => ItemType.SoftwareList,
|
||||
"sound" => ItemType.Sound,
|
||||
"source_details" or "sourcedetails" => ItemType.SourceDetails,
|
||||
"blank" => ItemType.Blank,
|
||||
_ => ItemType.NULL,
|
||||
"adjuster" => Data.Models.Metadata.ItemType.Adjuster,
|
||||
"analog" => Data.Models.Metadata.ItemType.Analog,
|
||||
"archive" => Data.Models.Metadata.ItemType.Archive,
|
||||
"biosset" => Data.Models.Metadata.ItemType.BiosSet,
|
||||
"chip" => Data.Models.Metadata.ItemType.Chip,
|
||||
"condition" => Data.Models.Metadata.ItemType.Condition,
|
||||
"configuration" => Data.Models.Metadata.ItemType.Configuration,
|
||||
"conflocation" => Data.Models.Metadata.ItemType.ConfLocation,
|
||||
"confsetting" => Data.Models.Metadata.ItemType.ConfSetting,
|
||||
"control" => Data.Models.Metadata.ItemType.Control,
|
||||
"dataarea" => Data.Models.Metadata.ItemType.DataArea,
|
||||
"device" => Data.Models.Metadata.ItemType.Device,
|
||||
"device_ref" or "deviceref" => Data.Models.Metadata.ItemType.DeviceRef,
|
||||
"diplocation" => Data.Models.Metadata.ItemType.DipLocation,
|
||||
"dipswitch" => Data.Models.Metadata.ItemType.DipSwitch,
|
||||
"dipvalue" => Data.Models.Metadata.ItemType.DipValue,
|
||||
"diskarea" => Data.Models.Metadata.ItemType.DiskArea,
|
||||
"display" => Data.Models.Metadata.ItemType.Display,
|
||||
"driver" => Data.Models.Metadata.ItemType.Driver,
|
||||
"dump" => Data.Models.Metadata.ItemType.Dump,
|
||||
"extension" => Data.Models.Metadata.ItemType.Extension,
|
||||
"feature" => Data.Models.Metadata.ItemType.Feature,
|
||||
"info" => Data.Models.Metadata.ItemType.Info,
|
||||
"input" => Data.Models.Metadata.ItemType.Input,
|
||||
"instance" => Data.Models.Metadata.ItemType.Instance,
|
||||
"original" => Data.Models.Metadata.ItemType.Original,
|
||||
"part" => Data.Models.Metadata.ItemType.Part,
|
||||
"part_feature" or "partfeature" => Data.Models.Metadata.ItemType.PartFeature,
|
||||
"port" => Data.Models.Metadata.ItemType.Port,
|
||||
"ramoption" or "ram_option" => Data.Models.Metadata.ItemType.RamOption,
|
||||
"release" => Data.Models.Metadata.ItemType.Release,
|
||||
"release_details" or "releasedetails" => Data.Models.Metadata.ItemType.ReleaseDetails,
|
||||
"sample" => Data.Models.Metadata.ItemType.Sample,
|
||||
"serials" => Data.Models.Metadata.ItemType.Serials,
|
||||
"sharedfeat" or "shared_feat" or "sharedfeature" or "shared_feature" => Data.Models.Metadata.ItemType.SharedFeat,
|
||||
"slot" => Data.Models.Metadata.ItemType.Slot,
|
||||
"slotoption" or "slot_option" => Data.Models.Metadata.ItemType.SlotOption,
|
||||
"software" => Data.Models.Metadata.ItemType.Software,
|
||||
"softwarelist" or "software_list" => Data.Models.Metadata.ItemType.SoftwareList,
|
||||
"sound" => Data.Models.Metadata.ItemType.Sound,
|
||||
"source_details" or "sourcedetails" => Data.Models.Metadata.ItemType.SourceDetails,
|
||||
"video" => Data.Models.Metadata.ItemType.Video,
|
||||
"blank" => Data.Models.Metadata.ItemType.Blank,
|
||||
_ => Data.Models.Metadata.ItemType.NULL,
|
||||
};
|
||||
}
|
||||
|
||||
@@ -90,60 +93,62 @@ namespace SabreTools.Metadata.DatItems
|
||||
/// </summary>
|
||||
/// <param name="value">Enum value to parse/param>
|
||||
/// <returns>String value representing the input, default on error</returns>
|
||||
public static string? AsStringValue(this ItemType value)
|
||||
public static string? AsStringValue(this Data.Models.Metadata.ItemType value)
|
||||
{
|
||||
return value switch
|
||||
{
|
||||
// "Actionable" item types
|
||||
ItemType.Rom => "rom",
|
||||
ItemType.Disk => "disk",
|
||||
ItemType.File => "file",
|
||||
ItemType.Media => "media",
|
||||
Data.Models.Metadata.ItemType.Rom => "rom",
|
||||
Data.Models.Metadata.ItemType.Disk => "disk",
|
||||
Data.Models.Metadata.ItemType.File => "file",
|
||||
Data.Models.Metadata.ItemType.Media => "media",
|
||||
|
||||
// "Auxiliary" item types
|
||||
Data.Models.Metadata.ItemType.Adjuster => "adjuster",
|
||||
Data.Models.Metadata.ItemType.Analog => "analog",
|
||||
Data.Models.Metadata.ItemType.Archive => "archive",
|
||||
Data.Models.Metadata.ItemType.BiosSet => "biosset",
|
||||
Data.Models.Metadata.ItemType.Chip => "chip",
|
||||
Data.Models.Metadata.ItemType.Condition => "condition",
|
||||
Data.Models.Metadata.ItemType.Configuration => "configuration",
|
||||
Data.Models.Metadata.ItemType.ConfLocation => "conflocation",
|
||||
Data.Models.Metadata.ItemType.ConfSetting => "confsetting",
|
||||
Data.Models.Metadata.ItemType.Control => "control",
|
||||
Data.Models.Metadata.ItemType.DataArea => "dataarea",
|
||||
Data.Models.Metadata.ItemType.Device => "device",
|
||||
Data.Models.Metadata.ItemType.DeviceRef => "device_ref",
|
||||
Data.Models.Metadata.ItemType.DipLocation => "diplocation",
|
||||
Data.Models.Metadata.ItemType.DipSwitch => "dipswitch",
|
||||
Data.Models.Metadata.ItemType.DipValue => "dipvalue",
|
||||
Data.Models.Metadata.ItemType.DiskArea => "diskarea",
|
||||
Data.Models.Metadata.ItemType.Display => "display",
|
||||
Data.Models.Metadata.ItemType.Driver => "driver",
|
||||
Data.Models.Metadata.ItemType.Dump => "dump",
|
||||
Data.Models.Metadata.ItemType.Extension => "extension",
|
||||
Data.Models.Metadata.ItemType.Feature => "feature",
|
||||
Data.Models.Metadata.ItemType.Info => "info",
|
||||
Data.Models.Metadata.ItemType.Input => "input",
|
||||
Data.Models.Metadata.ItemType.Instance => "instance",
|
||||
Data.Models.Metadata.ItemType.Original => "original",
|
||||
Data.Models.Metadata.ItemType.Part => "part",
|
||||
Data.Models.Metadata.ItemType.PartFeature => "part_feature",
|
||||
Data.Models.Metadata.ItemType.Port => "port",
|
||||
Data.Models.Metadata.ItemType.RamOption => "ramoption",
|
||||
Data.Models.Metadata.ItemType.Release => "release",
|
||||
Data.Models.Metadata.ItemType.ReleaseDetails => "release_details",
|
||||
Data.Models.Metadata.ItemType.Sample => "sample",
|
||||
Data.Models.Metadata.ItemType.Serials => "serials",
|
||||
Data.Models.Metadata.ItemType.SharedFeat => "sharedfeat",
|
||||
Data.Models.Metadata.ItemType.Slot => "slot",
|
||||
Data.Models.Metadata.ItemType.SlotOption => "slotoption",
|
||||
Data.Models.Metadata.ItemType.Software => "software",
|
||||
Data.Models.Metadata.ItemType.SoftwareList => "softwarelist",
|
||||
Data.Models.Metadata.ItemType.Sound => "sound",
|
||||
Data.Models.Metadata.ItemType.SourceDetails => "source_details",
|
||||
Data.Models.Metadata.ItemType.Video => "video",
|
||||
Data.Models.Metadata.ItemType.Blank => "blank",
|
||||
|
||||
ItemType.Adjuster => "adjuster",
|
||||
ItemType.Analog => "analog",
|
||||
ItemType.Archive => "archive",
|
||||
ItemType.BiosSet => "biosset",
|
||||
ItemType.Chip => "chip",
|
||||
ItemType.Condition => "condition",
|
||||
ItemType.Configuration => "configuration",
|
||||
ItemType.ConfLocation => "conflocation",
|
||||
ItemType.ConfSetting => "confsetting",
|
||||
ItemType.Control => "control",
|
||||
ItemType.DataArea => "dataarea",
|
||||
ItemType.Device => "device",
|
||||
ItemType.DeviceRef => "device_ref",
|
||||
ItemType.DipLocation => "diplocation",
|
||||
ItemType.DipSwitch => "dipswitch",
|
||||
ItemType.DipValue => "dipvalue",
|
||||
ItemType.DiskArea => "diskarea",
|
||||
ItemType.Display => "display",
|
||||
ItemType.Driver => "driver",
|
||||
ItemType.Extension => "extension",
|
||||
ItemType.Feature => "feature",
|
||||
ItemType.Info => "info",
|
||||
ItemType.Input => "input",
|
||||
ItemType.Instance => "instance",
|
||||
ItemType.Original => "original",
|
||||
ItemType.Part => "part",
|
||||
ItemType.PartFeature => "part_feature",
|
||||
ItemType.Port => "port",
|
||||
ItemType.RamOption => "ramoption",
|
||||
ItemType.Release => "release",
|
||||
ItemType.ReleaseDetails => "release_details",
|
||||
ItemType.Sample => "sample",
|
||||
ItemType.Serials => "serials",
|
||||
ItemType.SharedFeat => "sharedfeat",
|
||||
ItemType.Slot => "slot",
|
||||
ItemType.SlotOption => "slotoption",
|
||||
ItemType.SoftwareList => "softwarelist",
|
||||
ItemType.Sound => "sound",
|
||||
ItemType.SourceDetails => "source_details",
|
||||
ItemType.Blank => "blank",
|
||||
|
||||
ItemType.NULL => null,
|
||||
Data.Models.Metadata.ItemType.NULL => null,
|
||||
_ => null,
|
||||
};
|
||||
}
|
||||
|
||||
@@ -13,7 +13,7 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
#region Fields
|
||||
|
||||
/// <inheritdoc>/>
|
||||
protected override ItemType ItemType => ItemType.Adjuster;
|
||||
internal override Data.Models.Metadata.ItemType ItemType => Data.Models.Metadata.ItemType.Adjuster;
|
||||
|
||||
[JsonIgnore]
|
||||
public bool ConditionsSpecified
|
||||
|
||||
@@ -13,7 +13,7 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
#region Fields
|
||||
|
||||
/// <inheritdoc>/>
|
||||
protected override ItemType ItemType => ItemType.Analog;
|
||||
internal override Data.Models.Metadata.ItemType ItemType => Data.Models.Metadata.ItemType.Analog;
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
#region Fields
|
||||
|
||||
/// <inheritdoc>/>
|
||||
protected override ItemType ItemType => ItemType.Archive;
|
||||
internal override Data.Models.Metadata.ItemType ItemType => Data.Models.Metadata.ItemType.Archive;
|
||||
|
||||
// TODO: None of the following are used or checked
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
#region Fields
|
||||
|
||||
/// <inheritdoc>/>
|
||||
protected override ItemType ItemType => ItemType.BiosSet;
|
||||
internal override Data.Models.Metadata.ItemType ItemType => Data.Models.Metadata.ItemType.BiosSet;
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
@@ -12,7 +12,7 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
#region Fields
|
||||
|
||||
/// <inheritdoc>/>
|
||||
protected override ItemType ItemType => ItemType.Blank;
|
||||
internal override Data.Models.Metadata.ItemType ItemType => Data.Models.Metadata.ItemType.Blank;
|
||||
|
||||
#endregion
|
||||
|
||||
@@ -21,10 +21,7 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
/// <summary>
|
||||
/// Create a default, empty Blank object
|
||||
/// </summary>
|
||||
public Blank()
|
||||
{
|
||||
Write(Data.Models.Metadata.DatItem.TypeKey, ItemType);
|
||||
}
|
||||
public Blank() { }
|
||||
|
||||
#endregion
|
||||
|
||||
@@ -37,7 +34,6 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
blank.Write(MachineKey, GetMachine());
|
||||
blank.Write(RemoveKey, ReadBool(RemoveKey));
|
||||
blank.Write<Source?>(SourceKey, Read<Source?>(SourceKey));
|
||||
blank.Write<string?>(Data.Models.Metadata.DatItem.TypeKey, ReadString(Data.Models.Metadata.DatItem.TypeKey).AsItemType().AsStringValue());
|
||||
|
||||
return blank;
|
||||
}
|
||||
@@ -80,7 +76,7 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
public override bool Equals(DatItem? other)
|
||||
{
|
||||
// If we don't have a blank, return false
|
||||
if (ReadString(Data.Models.Metadata.DatItem.TypeKey) != other?.ReadString(Data.Models.Metadata.DatItem.TypeKey))
|
||||
if (ItemType != other?.ItemType)
|
||||
return false;
|
||||
|
||||
// Otherwise, treat it as a Blank
|
||||
|
||||
@@ -13,7 +13,7 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
#region Fields
|
||||
|
||||
/// <inheritdoc>/>
|
||||
protected override ItemType ItemType => ItemType.Chip;
|
||||
internal override Data.Models.Metadata.ItemType ItemType => Data.Models.Metadata.ItemType.Chip;
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
#region Fields
|
||||
|
||||
/// <inheritdoc>/>
|
||||
protected override ItemType ItemType => ItemType.Condition;
|
||||
internal override Data.Models.Metadata.ItemType ItemType => Data.Models.Metadata.ItemType.Condition;
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
#region Fields
|
||||
|
||||
/// <inheritdoc>/>
|
||||
protected override ItemType ItemType => ItemType.ConfLocation;
|
||||
internal override Data.Models.Metadata.ItemType ItemType => Data.Models.Metadata.ItemType.ConfLocation;
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
#region Fields
|
||||
|
||||
/// <inheritdoc>/>
|
||||
protected override ItemType ItemType => ItemType.ConfSetting;
|
||||
internal override Data.Models.Metadata.ItemType ItemType => Data.Models.Metadata.ItemType.ConfSetting;
|
||||
|
||||
[JsonIgnore]
|
||||
public bool ConditionsSpecified
|
||||
|
||||
@@ -14,7 +14,7 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
#region Fields
|
||||
|
||||
/// <inheritdoc>/>
|
||||
protected override ItemType ItemType => ItemType.Configuration;
|
||||
internal override Data.Models.Metadata.ItemType ItemType => Data.Models.Metadata.ItemType.Configuration;
|
||||
|
||||
[JsonIgnore]
|
||||
public bool ConditionsSpecified
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user