Change ItemType into concerete property

This commit is contained in:
Matt Nadareski
2026-04-01 11:24:33 -04:00
parent 4035d9db86
commit 3e2bba866d
135 changed files with 629 additions and 781 deletions

View File

@@ -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]);

View File

@@ -20,6 +20,6 @@ namespace SabreTools.Data.Models.Metadata
#endregion
public Adjuster() => Type = ItemType.Adjuster;
public Adjuster() => ItemType = ItemType.Adjuster;
}
}

View File

@@ -13,6 +13,6 @@ namespace SabreTools.Data.Models.Metadata
#endregion
public Analog() => Type = ItemType.Analog;
public Analog() => ItemType = ItemType.Analog;
}
}

View File

@@ -109,6 +109,6 @@ namespace SabreTools.Data.Models.Metadata
#endregion
public Archive() => Type = ItemType.Archive;
public Archive() => ItemType = ItemType.Archive;
}
}

View File

@@ -19,6 +19,6 @@ namespace SabreTools.Data.Models.Metadata
#endregion
public BiosSet() => Type = ItemType.BiosSet;
public BiosSet() => ItemType = ItemType.BiosSet;
}
}

View File

@@ -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;
}
}

View File

@@ -28,6 +28,6 @@ namespace SabreTools.Data.Models.Metadata
#endregion
public Chip() => Type = ItemType.Chip;
public Chip() => ItemType = ItemType.Chip;
}
}

View File

@@ -22,6 +22,6 @@ namespace SabreTools.Data.Models.Metadata
#endregion
public Condition() => Type = ItemType.Condition;
public Condition() => ItemType = ItemType.Condition;
}
}

View File

@@ -19,6 +19,6 @@ namespace SabreTools.Data.Models.Metadata
#endregion
public ConfLocation() => Type = ItemType.ConfLocation;
public ConfLocation() => ItemType = ItemType.ConfLocation;
}
}

View File

@@ -23,6 +23,6 @@ namespace SabreTools.Data.Models.Metadata
#endregion
public ConfSetting() => Type = ItemType.ConfSetting;
public ConfSetting() => ItemType = ItemType.ConfSetting;
}
}

View File

@@ -31,6 +31,6 @@ namespace SabreTools.Data.Models.Metadata
#endregion
public Configuration() => Type = ItemType.Configuration;
public Configuration() => ItemType = ItemType.Configuration;
}
}

View File

@@ -46,6 +46,6 @@ namespace SabreTools.Data.Models.Metadata
#endregion
public Control() => Type = ItemType.Control;
public Control() => ItemType = ItemType.Control;
}
}

View File

@@ -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; }
}
}

View File

@@ -26,6 +26,6 @@ namespace SabreTools.Data.Models.Metadata
#endregion
public DataArea() => Type = ItemType.DataArea;
public DataArea() => ItemType = ItemType.DataArea;
}
}

View File

@@ -33,6 +33,6 @@ namespace SabreTools.Data.Models.Metadata
#endregion
public Device() => Type = ItemType.Device;
public Device() => ItemType = ItemType.Device;
}
}

View File

@@ -13,6 +13,6 @@ namespace SabreTools.Data.Models.Metadata
#endregion
public DeviceRef() => Type = ItemType.DeviceRef;
public DeviceRef() => ItemType = ItemType.DeviceRef;
}
}

View File

@@ -19,6 +19,6 @@ namespace SabreTools.Data.Models.Metadata
#endregion
public DipLocation() => Type = ItemType.DipLocation;
public DipLocation() => ItemType = ItemType.DipLocation;
}
}

View File

@@ -37,6 +37,6 @@ namespace SabreTools.Data.Models.Metadata
#endregion
public DipSwitch() => Type = ItemType.DipSwitch;
public DipSwitch() => ItemType = ItemType.DipSwitch;
}
}

View File

@@ -23,6 +23,6 @@ namespace SabreTools.Data.Models.Metadata
#endregion
public DipValue() => Type = ItemType.DipValue;
public DipValue() => ItemType = ItemType.DipValue;
}
}

View File

@@ -40,6 +40,6 @@ namespace SabreTools.Data.Models.Metadata
#endregion
public Disk() => Type = ItemType.Disk;
public Disk() => ItemType = ItemType.Disk;
}
}

View File

@@ -17,6 +17,6 @@ namespace SabreTools.Data.Models.Metadata
#endregion
public DiskArea() => Type = ItemType.DiskArea;
public DiskArea() => ItemType = ItemType.DiskArea;
}
}

View File

@@ -52,6 +52,6 @@ namespace SabreTools.Data.Models.Metadata
#endregion
public Display() => Type = ItemType.Display;
public Display() => ItemType = ItemType.Display;
}
}

View File

@@ -46,6 +46,6 @@ namespace SabreTools.Data.Models.Metadata
#endregion
public Driver() => Type = ItemType.Driver;
public Driver() => ItemType = ItemType.Driver;
}
}

View File

@@ -26,6 +26,6 @@ namespace SabreTools.Data.Models.Metadata
#endregion
public Dump() => Type = ItemType.Dump;
public Dump() => ItemType = ItemType.Dump;
}
}

View File

@@ -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,

View File

@@ -13,6 +13,6 @@ namespace SabreTools.Data.Models.Metadata
#endregion
public Extension() => Type = ItemType.Extension;
public Extension() => ItemType = ItemType.Extension;
}
}

View File

@@ -25,6 +25,6 @@ namespace SabreTools.Data.Models.Metadata
#endregion
public Feature() => Type = ItemType.Feature;
public Feature() => ItemType = ItemType.Feature;
}
}

View File

@@ -16,6 +16,6 @@ namespace SabreTools.Data.Models.Metadata
#endregion
public Info() => Type = ItemType.Info;
public Info() => ItemType = ItemType.Info;
}
}

View File

@@ -28,6 +28,6 @@ namespace SabreTools.Data.Models.Metadata
#endregion
public Input() => Type = ItemType.Input;
public Input() => ItemType = ItemType.Input;
}
}

View File

@@ -16,6 +16,6 @@ namespace SabreTools.Data.Models.Metadata
#endregion
public Instance() => Type = ItemType.Instance;
public Instance() => ItemType = ItemType.Instance;
}
}

View File

@@ -25,6 +25,6 @@ namespace SabreTools.Data.Models.Metadata
#endregion
public Media() => Type = ItemType.Media;
public Media() => ItemType = ItemType.Media;
}
}

View File

@@ -16,6 +16,6 @@ namespace SabreTools.Data.Models.Metadata
#endregion
public Original() => Type = ItemType.Original;
public Original() => ItemType = ItemType.Original;
}
}

View File

@@ -32,6 +32,6 @@ namespace SabreTools.Data.Models.Metadata
#endregion
public Part() => Type = ItemType.Part;
public Part() => ItemType = ItemType.Part;
}
}

View File

@@ -17,6 +17,6 @@ namespace SabreTools.Data.Models.Metadata
#endregion
public Port() => Type = ItemType.Port;
public Port() => ItemType = ItemType.Port;
}
}

View File

@@ -19,6 +19,6 @@ namespace SabreTools.Data.Models.Metadata
#endregion
public RamOption() => Type = ItemType.RamOption;
public RamOption() => ItemType = ItemType.RamOption;
}
}

View File

@@ -25,6 +25,6 @@ namespace SabreTools.Data.Models.Metadata
#endregion
public Release() => Type = ItemType.Release;
public Release() => ItemType = ItemType.Release;
}
}

View File

@@ -58,6 +58,6 @@ namespace SabreTools.Data.Models.Metadata
#endregion
public ReleaseDetails() => Type = ItemType.ReleaseDetails;
public ReleaseDetails() => ItemType = ItemType.ReleaseDetails;
}
}

View File

@@ -298,6 +298,6 @@ namespace SabreTools.Data.Models.Metadata
#endregion
public Rom() => Type = ItemType.Rom;
public Rom() => ItemType = ItemType.Rom;
}
}

View File

@@ -13,6 +13,6 @@ namespace SabreTools.Data.Models.Metadata
#endregion
public Sample() => Type = ItemType.Sample;
public Sample() => ItemType = ItemType.Sample;
}
}

View File

@@ -52,6 +52,6 @@ namespace SabreTools.Data.Models.Metadata
#endregion
public Serials() => Type = ItemType.Serials;
public Serials() => ItemType = ItemType.Serials;
}
}

View File

@@ -16,6 +16,6 @@ namespace SabreTools.Data.Models.Metadata
#endregion
public SharedFeat() => Type = ItemType.SharedFeat;
public SharedFeat() => ItemType = ItemType.SharedFeat;
}
}

View File

@@ -17,6 +17,6 @@ namespace SabreTools.Data.Models.Metadata
#endregion
public Slot() => Type = ItemType.Slot;
public Slot() => ItemType = ItemType.Slot;
}
}

View File

@@ -19,6 +19,6 @@ namespace SabreTools.Data.Models.Metadata
#endregion
public SlotOption() => Type = ItemType.SlotOption;
public SlotOption() => ItemType = ItemType.SlotOption;
}
}

View File

@@ -43,6 +43,6 @@ namespace SabreTools.Data.Models.Metadata
#endregion
public Software() => Type = ItemType.Software;
public Software() => ItemType = ItemType.Software;
}
}

View File

@@ -32,6 +32,6 @@ namespace SabreTools.Data.Models.Metadata
#endregion
public SoftwareList() => Type = ItemType.SoftwareList;
public SoftwareList() => ItemType = ItemType.SoftwareList;
}
}

View File

@@ -13,6 +13,6 @@ namespace SabreTools.Data.Models.Metadata
#endregion
public Sound() => Type = ItemType.Sound;
public Sound() => ItemType = ItemType.Sound;
}
}

View File

@@ -82,6 +82,6 @@ namespace SabreTools.Data.Models.Metadata
#endregion
public SourceDetails() => Type = ItemType.SourceDetails;
public SourceDetails() => ItemType = ItemType.SourceDetails;
}
}

View File

@@ -31,6 +31,6 @@ namespace SabreTools.Data.Models.Metadata
#endregion
public Video() => Type = ItemType.Video;
public Video() => ItemType = ItemType.Video;
}
}

View File

@@ -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));
}

View File

@@ -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,
]));
}

View File

@@ -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));

View File

@@ -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));

View File

@@ -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

View File

@@ -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();

View File

@@ -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)
{

View File

@@ -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>

View File

@@ -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>

View File

@@ -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

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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

View File

@@ -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>

View File

@@ -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

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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;

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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

View File

@@ -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>

View File

@@ -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));

View File

@@ -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()));

View File

@@ -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;

View File

@@ -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);

View File

@@ -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)

View File

@@ -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)

View File

@@ -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>

View File

@@ -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,
};
}

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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