mirror of
https://github.com/SabreTools/SabreTools.Serialization.git
synced 2026-07-09 02:16:55 +00:00
Change ItemType into concerete property
This commit is contained in:
@@ -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()));
|
||||
|
||||
Reference in New Issue
Block a user