mirror of
https://github.com/SabreTools/SabreTools.Serialization.git
synced 2026-07-09 02:16:55 +00:00
Enum type conversion to property
This commit is contained in:
@@ -8,7 +8,7 @@ Find the link to the Nuget package [here](https://www.nuget.org/packages/SabreTo
|
||||
|
||||
## Releases
|
||||
|
||||
For the most recent stable build, download the latest release where: [Releases Page](https://github.com/SabreTools/SabreTools.Serialization/releases)
|
||||
For the most recent stable build, download the latest release here: [Releases Page](https://github.com/SabreTools/SabreTools.Serialization/releases)
|
||||
|
||||
For the latest WIP build here: [Rolling Release](https://github.com/SabreTools/SabreTools.Serialization/releases/tag/rolling)
|
||||
|
||||
|
||||
@@ -23,12 +23,12 @@ namespace SabreTools.Data.Extensions.Test
|
||||
Rom? actual = self.ConvertToRom();
|
||||
|
||||
Assert.NotNull(actual);
|
||||
Assert.Equal(5, actual.Count);
|
||||
Assert.Equal(4, actual.Count);
|
||||
Assert.Equal(ItemType.Rom, actual.ItemType);
|
||||
Assert.Null(actual.Name);
|
||||
Assert.Null(actual[Rom.MergeKey]);
|
||||
Assert.Null(actual[Rom.RegionKey]);
|
||||
Assert.Null(actual[Rom.StatusKey]);
|
||||
Assert.Null(actual.Status);
|
||||
Assert.Null(actual.Optional);
|
||||
Assert.Null(actual[Rom.MD5Key]);
|
||||
Assert.Null(actual[Rom.SHA1Key]);
|
||||
@@ -42,7 +42,7 @@ namespace SabreTools.Data.Extensions.Test
|
||||
Name = "XXXXXX",
|
||||
[Disk.MergeKey] = "XXXXXX",
|
||||
[Disk.RegionKey] = "XXXXXX",
|
||||
[Disk.StatusKey] = "XXXXXX",
|
||||
Status = ItemStatus.Good,
|
||||
Optional = true,
|
||||
[Disk.MD5Key] = "XXXXXX",
|
||||
[Disk.SHA1Key] = "XXXXXX",
|
||||
@@ -51,12 +51,12 @@ namespace SabreTools.Data.Extensions.Test
|
||||
Rom? actual = self.ConvertToRom();
|
||||
|
||||
Assert.NotNull(actual);
|
||||
Assert.Equal(5, actual.Count);
|
||||
Assert.Equal(4, actual.Count);
|
||||
Assert.Equal(ItemType.Rom, actual.ItemType);
|
||||
Assert.Equal("XXXXXX.chd", actual.Name);
|
||||
Assert.Equal("XXXXXX", actual[Rom.MergeKey]);
|
||||
Assert.Equal("XXXXXX", actual[Rom.RegionKey]);
|
||||
Assert.Equal("XXXXXX", actual[Rom.StatusKey]);
|
||||
Assert.Equal(ItemStatus.Good, actual.Status);
|
||||
Assert.Equal(true, actual.Optional);
|
||||
Assert.Equal("XXXXXX", actual[Rom.MD5Key]);
|
||||
Assert.Equal("XXXXXX", actual[Rom.SHA1Key]);
|
||||
@@ -1578,6 +1578,16 @@ namespace SabreTools.Data.Extensions.Test
|
||||
|
||||
#region String to Enum
|
||||
|
||||
[Theory]
|
||||
[InlineData(null, null)]
|
||||
[InlineData("plain", Blit.Plain)]
|
||||
[InlineData("dirty", Blit.Dirty)]
|
||||
public void AsBlitTest(string? field, Blit? expected)
|
||||
{
|
||||
Blit? actual = field.AsBlit();
|
||||
Assert.Equal(expected, actual);
|
||||
}
|
||||
|
||||
[Theory]
|
||||
[InlineData(null, null)]
|
||||
[InlineData("cpu", ChipType.CPU)]
|
||||
@@ -1868,6 +1878,16 @@ namespace SabreTools.Data.Extensions.Test
|
||||
|
||||
#region Enum to String
|
||||
|
||||
[Theory]
|
||||
[InlineData((Blit)int.MaxValue, null)]
|
||||
[InlineData(Blit.Plain, "plain")]
|
||||
[InlineData(Blit.Dirty, "dirty")]
|
||||
public void FromBlitTest(Blit field, string? expected)
|
||||
{
|
||||
string? actual = field.AsStringValue();
|
||||
Assert.Equal(expected, actual);
|
||||
}
|
||||
|
||||
[Theory]
|
||||
[InlineData((ChipType)int.MaxValue, null)]
|
||||
[InlineData(ChipType.CPU, "cpu")]
|
||||
|
||||
@@ -6,6 +6,8 @@ using SabreTools.Matching;
|
||||
|
||||
namespace SabreTools.Data.Extensions
|
||||
{
|
||||
// TODO: Add proper enum for YesNo
|
||||
// TODO: Combine yes/partial/no enums
|
||||
public static class MetadataExtensions
|
||||
{
|
||||
#region Accessors
|
||||
@@ -155,8 +157,13 @@ namespace SabreTools.Data.Extensions
|
||||
}
|
||||
else if (self is Chip selfChip && clone is Chip cloneChip)
|
||||
{
|
||||
cloneChip.ChipType = selfChip.ChipType;
|
||||
cloneChip.SoundOnly = selfChip.SoundOnly;
|
||||
}
|
||||
else if (self is Condition selfCondition && clone is Condition cloneCondition)
|
||||
{
|
||||
cloneCondition.Relation = selfCondition.Relation;
|
||||
}
|
||||
else if (self is ConfLocation selfConfLocation && clone is ConfLocation cloneConfLocation)
|
||||
{
|
||||
cloneConfLocation.Inverted = selfConfLocation.Inverted;
|
||||
@@ -167,8 +174,17 @@ namespace SabreTools.Data.Extensions
|
||||
}
|
||||
else if (self is Control selfControl && clone is Control cloneControl)
|
||||
{
|
||||
cloneControl.ControlType = selfControl.ControlType;
|
||||
cloneControl.Reverse = selfControl.Reverse;
|
||||
}
|
||||
else if (self is DataArea selfDataArea && clone is DataArea cloneDataArea)
|
||||
{
|
||||
cloneDataArea.Endianness = selfDataArea.Endianness;
|
||||
}
|
||||
else if (self is Device selfDevice && clone is Device cloneDevice)
|
||||
{
|
||||
cloneDevice.DeviceType = selfDevice.DeviceType;
|
||||
}
|
||||
else if (self is DipLocation selfDipLocation && clone is DipLocation cloneDipLocation)
|
||||
{
|
||||
cloneDipLocation.Inverted = selfDipLocation.Inverted;
|
||||
@@ -184,26 +200,47 @@ namespace SabreTools.Data.Extensions
|
||||
else if (self is Disk selfDisk && clone is Disk cloneDisk)
|
||||
{
|
||||
cloneDisk.Optional = selfDisk.Optional;
|
||||
cloneDisk.Status = selfDisk.Status;
|
||||
cloneDisk.Writable = selfDisk.Writable;
|
||||
}
|
||||
else if (self is Display selfDisplay && clone is Display cloneDisplay)
|
||||
{
|
||||
cloneDisplay.DisplayType = selfDisplay.DisplayType;
|
||||
cloneDisplay.FlipX = selfDisplay.FlipX;
|
||||
}
|
||||
else if (self is Driver selfDriver && clone is Driver cloneDriver)
|
||||
{
|
||||
cloneDriver.Blit = selfDriver.Blit;
|
||||
cloneDriver.Cocktail = selfDriver.Cocktail;
|
||||
cloneDriver.Color = selfDriver.Color;
|
||||
cloneDriver.Emulation = selfDriver.Emulation;
|
||||
cloneDriver.Incomplete = selfDriver.Incomplete;
|
||||
cloneDriver.NoSoundHardware = selfDriver.NoSoundHardware;
|
||||
cloneDriver.RequiresArtwork = selfDriver.RequiresArtwork;
|
||||
cloneDriver.SaveState = selfDriver.SaveState;
|
||||
cloneDriver.Sound = selfDriver.Sound;
|
||||
cloneDriver.Status = selfDriver.Status;
|
||||
cloneDriver.Unofficial = selfDriver.Unofficial;
|
||||
}
|
||||
else if (self is Feature selfFeature && clone is Feature cloneFeature)
|
||||
{
|
||||
cloneFeature.FeatureType = selfFeature.FeatureType;
|
||||
cloneFeature.Overall = selfFeature.Overall;
|
||||
cloneFeature.Status = selfFeature.Status;
|
||||
}
|
||||
else if (self is Header selfHeader && clone is Header cloneHeader)
|
||||
{
|
||||
cloneHeader.BiosMode = selfHeader.BiosMode;
|
||||
cloneHeader.Debug = selfHeader.Debug;
|
||||
cloneHeader.ForceMerging = selfHeader.ForceMerging;
|
||||
cloneHeader.ForceNodump = selfHeader.ForceNodump;
|
||||
cloneHeader.ForcePacking = selfHeader.ForcePacking;
|
||||
cloneHeader.ForceZipping = selfHeader.ForceZipping;
|
||||
cloneHeader.LockBiosMode = selfHeader.LockBiosMode;
|
||||
cloneHeader.LockRomMode = selfHeader.LockRomMode;
|
||||
cloneHeader.LockSampleMode = selfHeader.LockSampleMode;
|
||||
cloneHeader.RomMode = selfHeader.RomMode;
|
||||
cloneHeader.SampleMode = selfHeader.SampleMode;
|
||||
}
|
||||
else if (self is Input selfInput && clone is Input cloneInput)
|
||||
{
|
||||
@@ -216,6 +253,7 @@ namespace SabreTools.Data.Extensions
|
||||
cloneMachine.IsDevice = selfMachine.IsDevice;
|
||||
cloneMachine.IsMechanical = selfMachine.IsMechanical;
|
||||
cloneMachine.Runnable = selfMachine.Runnable;
|
||||
cloneMachine.Supported = selfMachine.Supported;
|
||||
}
|
||||
else if (self is RamOption selfRamOption && clone is RamOption cloneRamOption)
|
||||
{
|
||||
@@ -230,14 +268,29 @@ namespace SabreTools.Data.Extensions
|
||||
cloneRom.Dispose = selfRom.Dispose;
|
||||
cloneRom.FileIsAvailable = selfRom.FileIsAvailable;
|
||||
cloneRom.Inverted = selfRom.Inverted;
|
||||
cloneRom.LoadFlag = selfRom.LoadFlag;
|
||||
cloneRom.MIA = selfRom.MIA;
|
||||
cloneRom.OpenMSXMediaType = selfRom.OpenMSXMediaType;
|
||||
cloneRom.Optional = selfRom.Optional;
|
||||
cloneRom.SoundOnly = selfRom.SoundOnly;
|
||||
cloneRom.Status = selfRom.Status;
|
||||
}
|
||||
else if (self is SlotOption selfSlotOption && clone is SlotOption cloneSlotOption)
|
||||
{
|
||||
cloneSlotOption.Default = selfSlotOption.Default;
|
||||
}
|
||||
else if (self is Software selfSoftware && clone is Software cloneSoftware)
|
||||
{
|
||||
cloneSoftware.Supported = selfSoftware.Supported;
|
||||
}
|
||||
else if (self is SoftwareList selfSoftwareList && clone is SoftwareList cloneSoftwareList)
|
||||
{
|
||||
cloneSoftwareList.Status = selfSoftwareList.Status;
|
||||
}
|
||||
else if (self is Video selfVideo && clone is Video cloneVideo)
|
||||
{
|
||||
cloneVideo.Screen = selfVideo.Screen;
|
||||
}
|
||||
|
||||
// Handle known properties
|
||||
clone.SetName(self.GetName());
|
||||
@@ -308,7 +361,7 @@ namespace SabreTools.Data.Extensions
|
||||
Name = name,
|
||||
[Rom.MergeKey] = disk.ReadString(Disk.MergeKey),
|
||||
[Rom.RegionKey] = disk.ReadString(Disk.RegionKey),
|
||||
[Rom.StatusKey] = disk.ReadString(Disk.StatusKey),
|
||||
Status = disk.Status,
|
||||
Optional = disk.Optional,
|
||||
[Rom.MD5Key] = disk.ReadString(Disk.MD5Key),
|
||||
[Rom.SHA1Key] = disk.ReadString(Disk.SHA1Key),
|
||||
@@ -973,6 +1026,21 @@ namespace SabreTools.Data.Extensions
|
||||
|
||||
#region String to Enum
|
||||
|
||||
/// <summary>
|
||||
/// Get the enum value for an input string, if possible
|
||||
/// </summary>
|
||||
/// <param name="value">String value to parse/param>
|
||||
/// <returns>Enum value representing the input, null on error</returns>
|
||||
public static Blit? AsBlit(this string? value)
|
||||
{
|
||||
return value?.ToLowerInvariant() switch
|
||||
{
|
||||
"plain" => Blit.Plain,
|
||||
"dirty" => Blit.Dirty,
|
||||
_ => null,
|
||||
};
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Get the enum value for an input string, if possible
|
||||
/// </summary>
|
||||
@@ -1344,6 +1412,21 @@ namespace SabreTools.Data.Extensions
|
||||
|
||||
#region Enum to String
|
||||
|
||||
/// <summary>
|
||||
/// Get the string value for an input enum, if possible
|
||||
/// </summary>
|
||||
/// <param name="value">Enum value to parse/param>
|
||||
/// <returns>String value representing the input, null on error</returns>
|
||||
public static string? AsStringValue(this Blit value)
|
||||
{
|
||||
return value switch
|
||||
{
|
||||
Blit.Plain => "plain",
|
||||
Blit.Dirty => "dirty",
|
||||
_ => null,
|
||||
};
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Get the string value for an input enum, if possible
|
||||
/// </summary>
|
||||
@@ -1696,6 +1779,7 @@ namespace SabreTools.Data.Extensions
|
||||
SupportStatus.Good => "good",
|
||||
SupportStatus.Imperfect => "imperfect",
|
||||
SupportStatus.Preliminary => "preliminary",
|
||||
SupportStatus.Test => "test",
|
||||
_ => null,
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
|
||||
using SabreTools.Data.Models.Metadata;
|
||||
|
||||
namespace SabreTools.Data.Models.ClrMamePro
|
||||
{
|
||||
/// <remarks>chip</remarks>
|
||||
@@ -6,7 +8,7 @@ namespace SabreTools.Data.Models.ClrMamePro
|
||||
{
|
||||
/// <remarks>type, (cpu|audio)</remarks>
|
||||
[Required]
|
||||
public string? Type { get; set; }
|
||||
public ChipType? Type { get; set; }
|
||||
|
||||
/// <remarks>name</remarks>
|
||||
[Required]
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
using SabreTools.Data.Models.Metadata;
|
||||
|
||||
namespace SabreTools.Data.Models.ClrMamePro
|
||||
{
|
||||
/// <remarks>clrmamepro</remarks>
|
||||
@@ -40,12 +42,12 @@ namespace SabreTools.Data.Models.ClrMamePro
|
||||
public string? Type { get; set; }
|
||||
|
||||
/// <remarks>forcemerging</remarks>
|
||||
public string? ForceMerging { get; set; }
|
||||
public MergingFlag ForceMerging { get; set; }
|
||||
|
||||
/// <remarks>forcezipping, (yes|no) "no"</remarks>
|
||||
public bool? ForceZipping { get; set; }
|
||||
|
||||
/// <remarks>forcepacking</remarks>
|
||||
public string? ForcePacking { get; set; }
|
||||
public PackingFlag ForcePacking { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
|
||||
using SabreTools.Data.Models.Metadata;
|
||||
|
||||
namespace SabreTools.Data.Models.ClrMamePro
|
||||
{
|
||||
/// <remarks>disk</remarks>
|
||||
@@ -18,7 +20,7 @@ namespace SabreTools.Data.Models.ClrMamePro
|
||||
public string? Merge { get; set; }
|
||||
|
||||
/// <remarks>status</remarks>
|
||||
public string? Status { get; set; }
|
||||
public ItemStatus? Status { get; set; }
|
||||
|
||||
/// <remarks>flags</remarks>
|
||||
public string? Flags { get; set; }
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
|
||||
using SabreTools.Data.Models.Metadata;
|
||||
|
||||
namespace SabreTools.Data.Models.ClrMamePro
|
||||
{
|
||||
/// <remarks>driver</remarks>
|
||||
@@ -6,18 +8,18 @@ namespace SabreTools.Data.Models.ClrMamePro
|
||||
{
|
||||
/// <remarks>status, (good|imperfect|preliminary)</remarks>
|
||||
[Required]
|
||||
public string? Status { get; set; }
|
||||
public SupportStatus? Status { get; set; }
|
||||
|
||||
/// <remarks>color, (good|imperfect|preliminary)</remarks>
|
||||
public string? Color { get; set; }
|
||||
public SupportStatus? Color { get; set; }
|
||||
|
||||
/// <remarks>sound, (good|imperfect|preliminary)</remarks>
|
||||
public string? Sound { get; set; }
|
||||
public SupportStatus? Sound { get; set; }
|
||||
|
||||
/// <remarks>palettesize, Numeric?</remarks>
|
||||
public string? PaletteSize { get; set; }
|
||||
|
||||
/// <remarks>blit, (plain|dirty)</remarks>
|
||||
public string? Blit { get; set; }
|
||||
public Blit? Blit { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
|
||||
#pragma warning disable IDE1006 // Naming Styles
|
||||
using SabreTools.Data.Models.Metadata;
|
||||
|
||||
namespace SabreTools.Data.Models.ClrMamePro
|
||||
{
|
||||
/// <remarks>rom</remarks>
|
||||
@@ -26,7 +28,7 @@ namespace SabreTools.Data.Models.ClrMamePro
|
||||
public string? Merge { get; set; }
|
||||
|
||||
/// <remarks>status</remarks>
|
||||
public string? Status { get; set; }
|
||||
public ItemStatus? Status { get; set; }
|
||||
|
||||
/// <remarks>flags</remarks>
|
||||
public string? Flags { get; set; }
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
|
||||
using SabreTools.Data.Models.Metadata;
|
||||
|
||||
namespace SabreTools.Data.Models.ClrMamePro
|
||||
{
|
||||
/// <remarks>video</remarks>
|
||||
@@ -6,7 +8,7 @@ namespace SabreTools.Data.Models.ClrMamePro
|
||||
{
|
||||
/// <remarks>screen, (raster|vector)</remarks>
|
||||
[Required]
|
||||
public string? Screen { get; set; }
|
||||
public DisplayType? Screen { get; set; }
|
||||
|
||||
/// <remarks>orientation, (vertical|horizontal)</remarks>
|
||||
[Required]
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
using System.Xml;
|
||||
using System.Xml.Serialization;
|
||||
using SabreTools.Data.Models.Metadata;
|
||||
|
||||
namespace SabreTools.Data.Models.Listxml
|
||||
{
|
||||
@@ -16,7 +17,7 @@ namespace SabreTools.Data.Models.Listxml
|
||||
/// <remarks>(cpu|audio)</remarks>
|
||||
[Required]
|
||||
[XmlAttribute("type")]
|
||||
public string? Type { get; set; }
|
||||
public ChipType? Type { get; set; }
|
||||
|
||||
/// <remarks>Only present in older versions</remarks>
|
||||
[XmlAttribute("soundonly")]
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
using System.Xml;
|
||||
using System.Xml.Serialization;
|
||||
using SabreTools.Data.Models.Metadata;
|
||||
|
||||
namespace SabreTools.Data.Models.Listxml
|
||||
{
|
||||
@@ -17,7 +18,7 @@ namespace SabreTools.Data.Models.Listxml
|
||||
/// <remarks>(eq|ne|gt|le|lt|ge)</remarks>
|
||||
[Required]
|
||||
[XmlAttribute("relation")]
|
||||
public string? Relation { get; set; }
|
||||
public Relation? Relation { get; set; }
|
||||
|
||||
[Required]
|
||||
[XmlAttribute("value")]
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
using System.Xml;
|
||||
using System.Xml.Serialization;
|
||||
using SabreTools.Data.Models.Metadata;
|
||||
|
||||
namespace SabreTools.Data.Models.Listxml
|
||||
{
|
||||
@@ -9,7 +10,7 @@ namespace SabreTools.Data.Models.Listxml
|
||||
/// <remarks>(joy|stick|paddle|pedal|lightgun|positional|dial|trackball|mouse|only_buttons|keypad|keyboard|mahjong|hanafuda|gambling)</remarks>
|
||||
[Required]
|
||||
[XmlAttribute("type")]
|
||||
public string? Type { get; set; }
|
||||
public ControlType? Type { get; set; }
|
||||
|
||||
/// <remarks>Numeric</remarks>
|
||||
[XmlAttribute("player")]
|
||||
|
||||
@@ -1,14 +1,16 @@
|
||||
using System.Xml;
|
||||
using System.Xml.Serialization;
|
||||
using SabreTools.Data.Models.Metadata;
|
||||
|
||||
namespace SabreTools.Data.Models.Listxml
|
||||
{
|
||||
[XmlRoot("device")]
|
||||
public class Device
|
||||
{
|
||||
/// <remarks>(unknown|cartridge|floppydisk|harddisk|cylinder|cassette|punchcard|punchtape|printout|serial|parallel|snapshot|quickload|memcard|cdrom|magtape|romimage|midiin|midiout|picture|vidfile)</remarks>
|
||||
[Required]
|
||||
[XmlAttribute("type")]
|
||||
public string? Type { get; set; }
|
||||
public DeviceType? Type { get; set; }
|
||||
|
||||
[XmlAttribute("tag")]
|
||||
public string? Tag { get; set; }
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
using System.Xml;
|
||||
using System.Xml.Serialization;
|
||||
using SabreTools.Data.Models.Metadata;
|
||||
|
||||
namespace SabreTools.Data.Models.Listxml
|
||||
{
|
||||
@@ -33,7 +34,7 @@ namespace SabreTools.Data.Models.Listxml
|
||||
|
||||
/// <remarks>(baddump|nodump|good) "good"</remarks>
|
||||
[XmlAttribute("status")]
|
||||
public string? Status { get; set; }
|
||||
public ItemStatus? Status { get; set; }
|
||||
|
||||
/// <remarks>(yes|no) "no"</remarks>
|
||||
[XmlAttribute("optional")]
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
using System.Xml;
|
||||
using System.Xml.Serialization;
|
||||
using SabreTools.Data.Models.Metadata;
|
||||
|
||||
namespace SabreTools.Data.Models.Listxml
|
||||
{
|
||||
@@ -12,7 +13,7 @@ namespace SabreTools.Data.Models.Listxml
|
||||
/// <remarks>(raster|vector|lcd|svg|unknown)</remarks>
|
||||
[Required]
|
||||
[XmlAttribute("type")]
|
||||
public string? Type { get; set; }
|
||||
public DisplayType? Type { get; set; }
|
||||
|
||||
/// <remarks>(0|90|180|270)</remarks>
|
||||
[XmlAttribute("rotate")]
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
using System.Xml;
|
||||
using System.Xml.Serialization;
|
||||
using SabreTools.Data.Models.Metadata;
|
||||
|
||||
namespace SabreTools.Data.Models.Listxml
|
||||
{
|
||||
@@ -9,15 +10,15 @@ namespace SabreTools.Data.Models.Listxml
|
||||
/// <remarks>(good|imperfect|preliminary), (good|preliminary|test) in older versions</remarks>
|
||||
[Required]
|
||||
[XmlAttribute("status")]
|
||||
public string? Status { get; set; }
|
||||
public SupportStatus? Status { get; set; }
|
||||
|
||||
/// <remarks>(good|imperfect|preliminary), Only present in older versions</remarks>
|
||||
[XmlAttribute("color")]
|
||||
public string? Color { get; set; }
|
||||
public SupportStatus? Color { get; set; }
|
||||
|
||||
/// <remarks>(good|imperfect|preliminary), Only present in older versions</remarks>
|
||||
[XmlAttribute("sound")]
|
||||
public string? Sound { get; set; }
|
||||
public SupportStatus? Sound { get; set; }
|
||||
|
||||
/// <remarks>Only present in older versions</remarks>
|
||||
[XmlAttribute("palettesize")]
|
||||
@@ -26,17 +27,17 @@ namespace SabreTools.Data.Models.Listxml
|
||||
/// <remarks>(good|imperfect|preliminary)</remarks>
|
||||
[Required]
|
||||
[XmlAttribute("emulation")]
|
||||
public string? Emulation { get; set; }
|
||||
public SupportStatus? Emulation { get; set; }
|
||||
|
||||
/// <remarks>(good|imperfect|preliminary)</remarks>
|
||||
[Required]
|
||||
[XmlAttribute("cocktail")]
|
||||
public string? Cocktail { get; set; }
|
||||
public SupportStatus? Cocktail { get; set; }
|
||||
|
||||
/// <remarks>(supported|unsupported)</remarks>
|
||||
[Required]
|
||||
[XmlAttribute("savestate")]
|
||||
public string? SaveState { get; set; }
|
||||
public Supported? SaveState { get; set; }
|
||||
|
||||
/// <remarks>(yes|no) "no"</remarks>
|
||||
[XmlAttribute("requiresartwork")]
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
using System.Xml;
|
||||
using System.Xml.Serialization;
|
||||
using SabreTools.Data.Models.Metadata;
|
||||
|
||||
namespace SabreTools.Data.Models.Listxml
|
||||
{
|
||||
@@ -9,14 +10,14 @@ namespace SabreTools.Data.Models.Listxml
|
||||
/// <remarks>(protection|timing|graphics|palette|sound|capture|camera|microphone|controls|keyboard|mouse|media|disk|printer|tape|punch|drum|rom|comms|lan|wan)</remarks>
|
||||
[Required]
|
||||
[XmlAttribute("type")]
|
||||
public string? Type { get; set; }
|
||||
public FeatureType? Type { get; set; }
|
||||
|
||||
/// <remarks>(unemulated|imperfect)</remarks>
|
||||
[XmlAttribute("status")]
|
||||
public string? Status { get; set; }
|
||||
public FeatureStatus? Status { get; set; }
|
||||
|
||||
/// <remarks>(unemulated|imperfect)</remarks>
|
||||
[XmlAttribute("overall")]
|
||||
public string? Overall { get; set; }
|
||||
public FeatureStatus? Overall { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
using System.Xml;
|
||||
using System.Xml.Serialization;
|
||||
using SabreTools.Data.Models.Metadata;
|
||||
|
||||
namespace SabreTools.Data.Models.Listxml
|
||||
{
|
||||
@@ -36,7 +37,7 @@ namespace SabreTools.Data.Models.Listxml
|
||||
|
||||
/// <remarks>(baddump|nodump|good) "good"</remarks>
|
||||
[XmlAttribute("status")]
|
||||
public string? Status { get; set; }
|
||||
public ItemStatus? Status { get; set; }
|
||||
|
||||
/// <remarks>(yes|no) "no"</remarks>
|
||||
[XmlAttribute("optional")]
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
using System.Xml;
|
||||
using System.Xml.Serialization;
|
||||
using SabreTools.Data.Models.Metadata;
|
||||
|
||||
namespace SabreTools.Data.Models.Listxml
|
||||
{
|
||||
@@ -17,7 +18,7 @@ namespace SabreTools.Data.Models.Listxml
|
||||
/// <remarks>(original|compatible)</remarks>
|
||||
[Required]
|
||||
[XmlAttribute("status")]
|
||||
public string? Status { get; set; }
|
||||
public SoftwareListStatus? Status { get; set; }
|
||||
|
||||
[XmlAttribute("filter")]
|
||||
public string? Filter { get; set; }
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
using System.Xml;
|
||||
using System.Xml.Serialization;
|
||||
using SabreTools.Data.Models.Metadata;
|
||||
|
||||
namespace SabreTools.Data.Models.Listxml
|
||||
{
|
||||
@@ -9,7 +10,7 @@ namespace SabreTools.Data.Models.Listxml
|
||||
/// <remarks>(raster|vector)</remarks>
|
||||
[Required]
|
||||
[XmlAttribute("screen")]
|
||||
public string? Screen { get; set; }
|
||||
public DisplayType? Screen { get; set; }
|
||||
|
||||
/// <remarks>(vertical|horizontal)</remarks>
|
||||
[Required]
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
using System.Xml;
|
||||
using System.Xml.Serialization;
|
||||
using SabreTools.Data.Models.Metadata;
|
||||
|
||||
namespace SabreTools.Data.Models.Logiqx
|
||||
{
|
||||
@@ -11,14 +12,14 @@ namespace SabreTools.Data.Models.Logiqx
|
||||
|
||||
/// <remarks>(none|split|merged|nonmerged|fullmerged|device|full) "split"</remarks>
|
||||
[XmlAttribute("forcemerging")]
|
||||
public string? ForceMerging { get; set; }
|
||||
public MergingFlag ForceMerging { get; set; }
|
||||
|
||||
/// <remarks>(obsolete|required|ignore) "obsolete"</remarks>
|
||||
[XmlAttribute("forcenodump")]
|
||||
public string? ForceNodump { get; set; }
|
||||
public NodumpFlag ForceNodump { get; set; }
|
||||
|
||||
/// <remarks>(zip|unzip) "zip"</remarks>
|
||||
[XmlAttribute("forcepacking")]
|
||||
public string? ForcePacking { get; set; }
|
||||
public PackingFlag ForcePacking { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
using System.Xml;
|
||||
using System.Xml.Serialization;
|
||||
using SabreTools.Data.Models.Metadata;
|
||||
|
||||
namespace SabreTools.Data.Models.Logiqx
|
||||
{
|
||||
@@ -21,7 +22,7 @@ namespace SabreTools.Data.Models.Logiqx
|
||||
|
||||
/// <remarks>(baddump|nodump|good|verified) "good"</remarks>
|
||||
[XmlAttribute("status")]
|
||||
public string? Status { get; set; }
|
||||
public ItemStatus? Status { get; set; }
|
||||
|
||||
/// <remarks>MAME extension</remarks>
|
||||
[XmlAttribute("region")]
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
using System.Xml;
|
||||
using System.Xml.Serialization;
|
||||
using SabreTools.Data.Models.Metadata;
|
||||
|
||||
namespace SabreTools.Data.Models.Logiqx
|
||||
{
|
||||
@@ -9,22 +10,22 @@ namespace SabreTools.Data.Models.Logiqx
|
||||
/// <remarks>(good|imperfect|preliminary)</remarks>
|
||||
[Required]
|
||||
[XmlAttribute("status")]
|
||||
public string? Status { get; set; }
|
||||
public SupportStatus? Status { get; set; }
|
||||
|
||||
/// <remarks>(good|imperfect|preliminary)</remarks>
|
||||
[Required]
|
||||
[XmlAttribute("emulation")]
|
||||
public string? Emulation { get; set; }
|
||||
public SupportStatus? Emulation { get; set; }
|
||||
|
||||
/// <remarks>(good|imperfect|preliminary)</remarks>
|
||||
[Required]
|
||||
[XmlAttribute("cocktail")]
|
||||
public string? Cocktail { get; set; }
|
||||
public SupportStatus? Cocktail { get; set; }
|
||||
|
||||
/// <remarks>(supported|unsupported)</remarks>
|
||||
[Required]
|
||||
[XmlAttribute("savestate")]
|
||||
public string? SaveState { get; set; }
|
||||
public Supported? SaveState { get; set; }
|
||||
|
||||
/// <remarks>(yes|no) "no"</remarks>
|
||||
[XmlAttribute("requiresartwork")]
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
using System.Xml;
|
||||
using System.Xml.Serialization;
|
||||
using SabreTools.Data.Models.Metadata;
|
||||
|
||||
#pragma warning disable IDE1006 // Naming Styles
|
||||
namespace SabreTools.Data.Models.Logiqx
|
||||
@@ -77,7 +78,7 @@ namespace SabreTools.Data.Models.Logiqx
|
||||
|
||||
/// <remarks>(baddump|nodump|good|verified) "good"</remarks>
|
||||
[XmlAttribute("status")]
|
||||
public string? Status { get; set; }
|
||||
public ItemStatus? Status { get; set; }
|
||||
|
||||
/// <remarks>No-Intro extension</remarks>
|
||||
[XmlAttribute("serial")]
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
using System.Xml;
|
||||
using System.Xml.Serialization;
|
||||
using SabreTools.Data.Models.Metadata;
|
||||
|
||||
namespace SabreTools.Data.Models.Logiqx
|
||||
{
|
||||
@@ -11,15 +12,15 @@ namespace SabreTools.Data.Models.Logiqx
|
||||
|
||||
/// <remarks>(none|split|merged|unmerged|fullmerged|device|full) "split"</remarks>
|
||||
[XmlAttribute("rommode")]
|
||||
public string? RomMode { get; set; }
|
||||
public MergingFlag RomMode { get; set; }
|
||||
|
||||
/// <remarks>(none|split|merged|unmerged|fullmerged|device|full) "split"</remarks>
|
||||
[XmlAttribute("biosmode")]
|
||||
public string? BiosMode { get; set; }
|
||||
public MergingFlag BiosMode { get; set; }
|
||||
|
||||
/// <remarks>(none|split|merged|unmerged|fullmerged|device|full) "merged"</remarks>
|
||||
[XmlAttribute("samplemode")]
|
||||
public string? SampleMode { get; set; }
|
||||
public MergingFlag SampleMode { get; set; }
|
||||
|
||||
/// <remarks>(yes|no) "no"</remarks>
|
||||
[XmlAttribute("lockrommode")]
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
using System.Xml;
|
||||
using System.Xml.Serialization;
|
||||
using SabreTools.Data.Models.Metadata;
|
||||
|
||||
namespace SabreTools.Data.Models.Logiqx
|
||||
{
|
||||
@@ -17,7 +18,7 @@ namespace SabreTools.Data.Models.Logiqx
|
||||
/// <remarks>(original|compatible)</remarks>
|
||||
[Required]
|
||||
[XmlAttribute("status")]
|
||||
public string? Status { get; set; }
|
||||
public SoftwareListStatus? Status { get; set; }
|
||||
|
||||
[XmlAttribute("filter")]
|
||||
public string? Filter { get; set; }
|
||||
|
||||
@@ -8,6 +8,9 @@ namespace SabreTools.Data.Models.Metadata
|
||||
{
|
||||
#region Properties
|
||||
|
||||
/// <remarks>(cpu|audio)</remarks>
|
||||
public ChipType? ChipType { get; set; }
|
||||
|
||||
public string? Name { get; set; }
|
||||
|
||||
/// <remarks>(yes|no) "no"</remarks>
|
||||
@@ -26,9 +29,6 @@ namespace SabreTools.Data.Models.Metadata
|
||||
/// <remarks>string</remarks>
|
||||
public const string TagKey = "tag";
|
||||
|
||||
/// <remarks>(cpu|audio)</remarks>
|
||||
public const string ChipTypeKey = "type";
|
||||
|
||||
#endregion
|
||||
|
||||
public Chip() => ItemType = ItemType.Chip;
|
||||
|
||||
@@ -6,6 +6,13 @@ namespace SabreTools.Data.Models.Metadata
|
||||
[JsonObject("condition"), XmlRoot("condition")]
|
||||
public class Condition : DatItem
|
||||
{
|
||||
#region Properties
|
||||
|
||||
/// <remarks>(eq|ne|gt|le|lt|ge)</remarks>
|
||||
public Relation? Relation { get; set; }
|
||||
|
||||
#endregion
|
||||
|
||||
#region Keys
|
||||
|
||||
/// <remarks>string</remarks>
|
||||
@@ -14,9 +21,6 @@ namespace SabreTools.Data.Models.Metadata
|
||||
/// <remarks>string</remarks>
|
||||
public const string MaskKey = "mask";
|
||||
|
||||
/// <remarks>(eq|ne|gt|le|lt|ge)</remarks>
|
||||
public const string RelationKey = "relation";
|
||||
|
||||
/// <remarks>string</remarks>
|
||||
public const string TagKey = "tag";
|
||||
|
||||
|
||||
@@ -8,6 +8,9 @@ namespace SabreTools.Data.Models.Metadata
|
||||
{
|
||||
#region Properties
|
||||
|
||||
/// <remarks>(joy|stick|paddle|pedal|lightgun|positional|dial|trackball|mouse|only_buttons|keypad|keyboard|mahjong|hanafuda|gambling)</remarks>
|
||||
public ControlType? ControlType { get; set; }
|
||||
|
||||
/// <remarks>(yes|no) "no"</remarks>
|
||||
public bool? Reverse { get; set; }
|
||||
|
||||
@@ -36,9 +39,6 @@ namespace SabreTools.Data.Models.Metadata
|
||||
/// <remarks>long</remarks>
|
||||
public const string SensitivityKey = "sensitivity";
|
||||
|
||||
/// <remarks>(joy|stick|paddle|pedal|lightgun|positional|dial|trackball|mouse|only_buttons|keypad|keyboard|mahjong|hanafuda|gambling)</remarks>
|
||||
public const string ControlTypeKey = "type";
|
||||
|
||||
/// <remarks>string, possibly long</remarks>
|
||||
public const string WaysKey = "ways";
|
||||
|
||||
|
||||
@@ -8,15 +8,15 @@ namespace SabreTools.Data.Models.Metadata
|
||||
{
|
||||
#region Properties
|
||||
|
||||
/// <remarks>(big|little) "little"</remarks>
|
||||
public Endianness? Endianness { get; set; }
|
||||
|
||||
public string? Name { get; set; }
|
||||
|
||||
#endregion
|
||||
|
||||
#region Keys
|
||||
|
||||
/// <remarks>(big|little) "little"</remarks>
|
||||
public const string EndiannessKey = "endianness";
|
||||
|
||||
/// <remarks>Rom[]</remarks>
|
||||
[NoFilter]
|
||||
public const string RomKey = "rom";
|
||||
@@ -25,6 +25,7 @@ namespace SabreTools.Data.Models.Metadata
|
||||
public const string SizeKey = "size";
|
||||
|
||||
/// <remarks>(8|16|32|64) "8"</remarks>
|
||||
/// TODO: Convert to enum
|
||||
public const string WidthKey = "width";
|
||||
|
||||
#endregion
|
||||
|
||||
@@ -6,6 +6,13 @@ namespace SabreTools.Data.Models.Metadata
|
||||
[JsonObject("device"), XmlRoot("device")]
|
||||
public class Device : DatItem
|
||||
{
|
||||
#region Properties
|
||||
|
||||
/// <remarks>(unknown|cartridge|floppydisk|harddisk|cylinder|cassette|punchcard|punchtape|printout|serial|parallel|snapshot|quickload|memcard|cdrom|magtape|romimage|midiin|midiout|picture|vidfile)</remarks>
|
||||
public DeviceType? DeviceType { get; set; }
|
||||
|
||||
#endregion
|
||||
|
||||
#region Keys
|
||||
|
||||
/// <remarks>Extension[]</remarks>
|
||||
@@ -23,14 +30,12 @@ namespace SabreTools.Data.Models.Metadata
|
||||
public const string InterfaceKey = "interface";
|
||||
|
||||
/// <remarks>(0|1) "0"</remarks>
|
||||
/// TODO: Convert to bool?
|
||||
public const string MandatoryKey = "mandatory";
|
||||
|
||||
/// <remarks>string</remarks>
|
||||
public const string TagKey = "tag";
|
||||
|
||||
/// <remarks>(unknown|cartridge|floppydisk|harddisk|cylinder|cassette|punchcard|punchtape|printout|serial|parallel|snapshot|quickload|memcard|cdrom|magtape|romimage|midiin|midiout|picture|vidfile)</remarks>
|
||||
public const string DeviceTypeKey = "type";
|
||||
|
||||
#endregion
|
||||
|
||||
public Device() => ItemType = ItemType.Device;
|
||||
|
||||
@@ -13,6 +13,9 @@ namespace SabreTools.Data.Models.Metadata
|
||||
/// <remarks>(yes|no) "no"</remarks>
|
||||
public bool? Optional { get; set; }
|
||||
|
||||
/// <remarks>(baddump|nodump|good|verified) "good"</remarks>
|
||||
public ItemStatus? Status { get; set; }
|
||||
|
||||
/// <remarks>(yes|no) "no"</remarks>
|
||||
public bool? Writable { get; set; }
|
||||
|
||||
@@ -38,9 +41,6 @@ namespace SabreTools.Data.Models.Metadata
|
||||
/// <remarks>string</remarks>
|
||||
public const string SHA1Key = "sha1";
|
||||
|
||||
/// <remarks>(baddump|nodump|good|verified) "good"</remarks>
|
||||
public const string StatusKey = "status";
|
||||
|
||||
#endregion
|
||||
|
||||
public Disk() => ItemType = ItemType.Disk;
|
||||
|
||||
@@ -8,6 +8,9 @@ namespace SabreTools.Data.Models.Metadata
|
||||
{
|
||||
#region Properties
|
||||
|
||||
/// <remarks>(raster|vector|lcd|svg|unknown)</remarks>
|
||||
public DisplayType? DisplayType { get; set; }
|
||||
|
||||
/// <remarks>(yes|no) "no"</remarks>
|
||||
public bool? FlipX { get; set; }
|
||||
|
||||
@@ -34,14 +37,12 @@ namespace SabreTools.Data.Models.Metadata
|
||||
public const string RefreshKey = "refresh";
|
||||
|
||||
/// <remarks>(0|90|180|270)</remarks>
|
||||
/// TODO: Convert to enum
|
||||
public const string RotateKey = "rotate";
|
||||
|
||||
/// <remarks>string</remarks>
|
||||
public const string TagKey = "tag";
|
||||
|
||||
/// <remarks>(raster|vector|lcd|svg|unknown)</remarks>
|
||||
public const string DisplayTypeKey = "type";
|
||||
|
||||
/// <remarks>long</remarks>
|
||||
public const string VBEndKey = "vbend";
|
||||
|
||||
|
||||
@@ -8,6 +8,18 @@ namespace SabreTools.Data.Models.Metadata
|
||||
{
|
||||
#region Properties
|
||||
|
||||
/// <remarks>(plain|dirty)</remarks>
|
||||
public Blit? Blit { get; set; }
|
||||
|
||||
/// <remarks>(good|imperfect|preliminary)</remarks>
|
||||
public SupportStatus? Cocktail { get; set; }
|
||||
|
||||
/// <remarks>(good|imperfect|preliminary)</remarks>
|
||||
public SupportStatus? Color { get; set; }
|
||||
|
||||
/// <remarks>(good|imperfect|preliminary)</remarks>
|
||||
public SupportStatus? Emulation { get; set; }
|
||||
|
||||
/// <remarks>(yes|no) "no"</remarks>
|
||||
public bool? Incomplete { get; set; }
|
||||
|
||||
@@ -17,6 +29,15 @@ namespace SabreTools.Data.Models.Metadata
|
||||
/// <remarks>(yes|no) "no"</remarks>
|
||||
public bool? RequiresArtwork { get; set; }
|
||||
|
||||
/// <remarks>(supported|unsupported)</remarks>
|
||||
public Supported? SaveState { get; set; }
|
||||
|
||||
/// <remarks>(good|imperfect|preliminary)</remarks>
|
||||
public SupportStatus? Sound { get; set; }
|
||||
|
||||
/// <remarks>(good|imperfect|preliminary|test)</remarks>
|
||||
public SupportStatus? Status { get; set; }
|
||||
|
||||
/// <remarks>(yes|no) "no"</remarks>
|
||||
public bool? Unofficial { get; set; }
|
||||
|
||||
@@ -24,30 +45,9 @@ namespace SabreTools.Data.Models.Metadata
|
||||
|
||||
#region Keys
|
||||
|
||||
/// <remarks>(plain|dirty)</remarks>
|
||||
public const string BlitKey = "blit";
|
||||
|
||||
/// <remarks>(good|imperfect|preliminary)</remarks>
|
||||
public const string CocktailKey = "cocktail";
|
||||
|
||||
/// <remarks>(good|imperfect|preliminary)</remarks>
|
||||
public const string ColorKey = "color";
|
||||
|
||||
/// <remarks>(good|imperfect|preliminary)</remarks>
|
||||
public const string EmulationKey = "emulation";
|
||||
|
||||
/// <remarks>string, possibly long</remarks>
|
||||
public const string PaletteSizeKey = "palettesize";
|
||||
|
||||
/// <remarks>(supported|unsupported)</remarks>
|
||||
public const string SaveStateKey = "savestate";
|
||||
|
||||
/// <remarks>(good|imperfect|preliminary)</remarks>
|
||||
public const string SoundKey = "sound";
|
||||
|
||||
/// <remarks>(good|imperfect|preliminary|test)</remarks>
|
||||
public const string StatusKey = "status";
|
||||
|
||||
#endregion
|
||||
|
||||
public Driver() => ItemType = ItemType.Driver;
|
||||
|
||||
@@ -1,5 +1,17 @@
|
||||
namespace SabreTools.Data.Models.Metadata
|
||||
{
|
||||
/// <summary>
|
||||
/// Determine the blit type
|
||||
/// </summary>
|
||||
public enum Blit
|
||||
{
|
||||
/// <summary>"plain"</summary>
|
||||
Plain,
|
||||
|
||||
/// <summary>"dirty"</summary>
|
||||
Dirty,
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Determine the chip type
|
||||
/// </summary>
|
||||
@@ -541,5 +553,8 @@ namespace SabreTools.Data.Models.Metadata
|
||||
|
||||
/// <summary>"preliminary"</summary>
|
||||
Preliminary,
|
||||
|
||||
/// <summary>"test"</summary>
|
||||
Test,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,21 +8,21 @@ namespace SabreTools.Data.Models.Metadata
|
||||
{
|
||||
#region Properties
|
||||
|
||||
/// <remarks>(protection|timing|graphics|palette|sound|capture|camera|microphone|controls|keyboard|mouse|media|disk|printer|tape|punch|drum|rom|comms|lan|wan)</remarks>
|
||||
public FeatureType? FeatureType { get; set; }
|
||||
|
||||
public string? Name { get; set; }
|
||||
|
||||
/// <remarks>(unemulated|imperfect)</remarks>
|
||||
public FeatureStatus? Overall { get; set; }
|
||||
|
||||
/// <remarks>(unemulated|imperfect)</remarks>
|
||||
public FeatureStatus? Status { get; set; }
|
||||
|
||||
#endregion
|
||||
|
||||
#region Keys
|
||||
|
||||
/// <remarks>(unemulated|imperfect)</remarks>
|
||||
public const string OverallKey = "overall";
|
||||
|
||||
/// <remarks>(unemulated|imperfect)</remarks>
|
||||
public const string StatusKey = "status";
|
||||
|
||||
/// <remarks>(protection|timing|graphics|palette|sound|capture|camera|microphone|controls|keyboard|mouse|media|disk|printer|tape|punch|drum|rom|comms|lan|wan)</remarks>
|
||||
public const string FeatureTypeKey = "type";
|
||||
|
||||
/// <remarks>string</remarks>
|
||||
public const string ValueKey = "value";
|
||||
|
||||
|
||||
@@ -8,9 +8,21 @@ namespace SabreTools.Data.Models.Metadata
|
||||
{
|
||||
#region Properties
|
||||
|
||||
/// <remarks>(none|split|merged|nonmerged|fullmerged|device|full) "split"</remarks>
|
||||
public MergingFlag BiosMode { get; set; }
|
||||
|
||||
/// <remarks>(yes|no) "no"</remarks>
|
||||
public bool? Debug { get; set; }
|
||||
|
||||
/// <remarks>(none|split|merged|nonmerged|fullmerged|device|full) "split"</remarks>
|
||||
public MergingFlag ForceMerging { get; set; }
|
||||
|
||||
/// <remarks>(obsolete|required|ignore) "obsolete"</remarks>
|
||||
public NodumpFlag ForceNodump { get; set; }
|
||||
|
||||
/// <remarks>(zip|unzip) "zip"</remarks>
|
||||
public PackingFlag ForcePacking { get; set; }
|
||||
|
||||
/// <remarks>(yes|no) "yes"</remarks>
|
||||
public bool? ForceZipping { get; set; }
|
||||
|
||||
@@ -25,6 +37,12 @@ namespace SabreTools.Data.Models.Metadata
|
||||
|
||||
public string? Name { get; set; }
|
||||
|
||||
/// <remarks>(none|split|merged|nonmerged|fullmerged|device|full) "split"</remarks>
|
||||
public MergingFlag RomMode { get; set; }
|
||||
|
||||
/// <remarks>(none|split|merged|nonmerged|fullmerged|device|full) "split"</remarks>
|
||||
public MergingFlag SampleMode { get; set; }
|
||||
|
||||
#endregion
|
||||
|
||||
#region Keys
|
||||
@@ -32,9 +50,6 @@ namespace SabreTools.Data.Models.Metadata
|
||||
/// <remarks>string</remarks>
|
||||
public const string AuthorKey = "author";
|
||||
|
||||
/// <remarks>(none|split|merged|nonmerged|fullmerged|device|full) "split"</remarks>
|
||||
public const string BiosModeKey = "biosmode";
|
||||
|
||||
/// <remarks>string</remarks>
|
||||
public const string BuildKey = "build";
|
||||
|
||||
@@ -64,15 +79,6 @@ namespace SabreTools.Data.Models.Metadata
|
||||
/// <remarks>string</remarks>
|
||||
public const string EmulatorVersionKey = "emulatorversion";
|
||||
|
||||
/// <remarks>(none|split|merged|nonmerged|fullmerged|device|full) "split"</remarks>
|
||||
public const string ForceMergingKey = "forcemerging";
|
||||
|
||||
/// <remarks>(obsolete|required|ignore) "obsolete"</remarks>
|
||||
public const string ForceNodumpKey = "forcenodump";
|
||||
|
||||
/// <remarks>(zip|unzip) "zip"</remarks>
|
||||
public const string ForcePackingKey = "forcepacking";
|
||||
|
||||
/// <remarks>string, string[]</remarks>
|
||||
public const string HeaderKey = "header";
|
||||
|
||||
@@ -112,18 +118,12 @@ namespace SabreTools.Data.Models.Metadata
|
||||
/// <remarks>string</remarks>
|
||||
public const string RefNameKey = "refname";
|
||||
|
||||
/// <remarks>(none|split|merged|nonmerged|fullmerged|device|full) "split"</remarks>
|
||||
public const string RomModeKey = "rommode";
|
||||
|
||||
/// <remarks>string</remarks>
|
||||
public const string RomTitleKey = "romTitle";
|
||||
|
||||
/// <remarks>string</remarks>
|
||||
public const string RootDirKey = "rootdir";
|
||||
|
||||
/// <remarks>(none|split|merged|nonmerged|fullmerged|device|full) "split"</remarks>
|
||||
public const string SampleModeKey = "samplemode";
|
||||
|
||||
/// <remarks>string</remarks>
|
||||
public const string SchemaLocationKey = "schemaLocation";
|
||||
|
||||
|
||||
@@ -22,6 +22,9 @@ namespace SabreTools.Data.Models.Metadata
|
||||
/// <remarks>(yes|partial|no) "no"</remarks>
|
||||
public Runnable? Runnable { get; set; }
|
||||
|
||||
/// <remarks>(yes|partial|no) "yes"</remarks>
|
||||
public Supported? Supported { get; set; }
|
||||
|
||||
#endregion
|
||||
|
||||
#region Keys
|
||||
@@ -253,9 +256,6 @@ namespace SabreTools.Data.Models.Metadata
|
||||
/// <remarks>string</remarks>
|
||||
public const string StatusKey = "status";
|
||||
|
||||
/// <remarks>(yes|partial|no) "yes"</remarks>
|
||||
public const string SupportedKey = "supported";
|
||||
|
||||
/// <remarks>string</remarks>
|
||||
public const string SystemKey = "system";
|
||||
|
||||
|
||||
@@ -17,17 +17,26 @@ namespace SabreTools.Data.Models.Metadata
|
||||
/// <remarks>(yes|no) "no"</remarks>
|
||||
public bool? Inverted { get; set; }
|
||||
|
||||
/// <remarks>(load16_byte|load16_word|load16_word_swap|load32_byte|load32_word|load32_word_swap|load32_dword|load64_word|load64_word_swap|reload|fill|continue|reload_plain|ignore)</remarks>
|
||||
public LoadFlag? LoadFlag { get; set; }
|
||||
|
||||
/// <remarks>(yes|no) "no"</remarks>
|
||||
public bool? MIA { get; set; }
|
||||
|
||||
public string? Name { get; set; }
|
||||
|
||||
/// <remarks>string; OpenMSX.RomBase</remarks>
|
||||
public OpenMSXSubType? OpenMSXMediaType { get; set; }
|
||||
|
||||
/// <remarks>(yes|no) "no"</remarks>
|
||||
public bool? Optional { get; set; }
|
||||
|
||||
/// <remarks>(yes|no) "no"</remarks>
|
||||
public bool? SoundOnly { get; set; }
|
||||
|
||||
/// <remarks>(baddump|nodump|good|verified) "good"</remarks>
|
||||
public ItemStatus? Status { get; set; }
|
||||
|
||||
#endregion
|
||||
|
||||
#region Keys
|
||||
@@ -128,9 +137,6 @@ namespace SabreTools.Data.Models.Metadata
|
||||
/// <remarks>string, possibly long; Also in ArchiveDotOrg.File</remarks>
|
||||
public const string LengthKey = "length";
|
||||
|
||||
/// <remarks>(load16_byte|load16_word|load16_word_swap|load32_byte|load32_word|load32_word_swap|load32_dword|load64_word|load64_word_swap|reload|fill|continue|reload_plain|ignore)</remarks>
|
||||
public const string LoadFlagKey = "loadflag";
|
||||
|
||||
/// <remarks>string; ArchiveDotOrg.File</remarks>
|
||||
public const string MatrixNumberKey = "matrix_number";
|
||||
|
||||
@@ -143,9 +149,6 @@ namespace SabreTools.Data.Models.Metadata
|
||||
/// <remarks>string</remarks>
|
||||
public const string MD5Key = "md5";
|
||||
|
||||
/// <remarks>string; OpenMSX.RomBase</remarks>
|
||||
public const string OpenMSXMediaType = "mediatype";
|
||||
|
||||
/// <remarks>string</remarks>
|
||||
public const string MergeKey = "merge";
|
||||
|
||||
@@ -230,9 +233,6 @@ namespace SabreTools.Data.Models.Metadata
|
||||
/// <remarks>string, possibly long; OpenMSX.RomBase</remarks>
|
||||
public const string StartKey = "start";
|
||||
|
||||
/// <remarks>(baddump|nodump|good|verified) "good"</remarks>
|
||||
public const string StatusKey = "status";
|
||||
|
||||
/// <remarks>string; ArchiveDotOrg.File</remarks>
|
||||
public const string SummationKey = "summation";
|
||||
|
||||
|
||||
@@ -10,6 +10,9 @@ namespace SabreTools.Data.Models.Metadata
|
||||
|
||||
public string? Name { get; set; }
|
||||
|
||||
/// <remarks>(yes|partial|no) "yes"</remarks>
|
||||
public Supported? Supported { get; set; }
|
||||
|
||||
#endregion
|
||||
|
||||
#region Keys
|
||||
@@ -38,9 +41,6 @@ namespace SabreTools.Data.Models.Metadata
|
||||
[NoFilter]
|
||||
public const string SharedFeatKey = "sharedfeat";
|
||||
|
||||
/// <remarks>(yes|partial|no) "yes"</remarks>
|
||||
public const string SupportedKey = "supported";
|
||||
|
||||
/// <remarks>string</remarks>
|
||||
public const string YearKey = "year";
|
||||
|
||||
|
||||
@@ -10,6 +10,9 @@ namespace SabreTools.Data.Models.Metadata
|
||||
|
||||
public string? Name { get; set; }
|
||||
|
||||
/// <remarks>(original|compatible)</remarks>
|
||||
public SoftwareListStatus? Status { get; set; }
|
||||
|
||||
#endregion
|
||||
|
||||
#region Keys
|
||||
@@ -27,9 +30,6 @@ namespace SabreTools.Data.Models.Metadata
|
||||
[NoFilter]
|
||||
public const string SoftwareKey = "software";
|
||||
|
||||
/// <remarks>(original|compatible)</remarks>
|
||||
public const string StatusKey = "status";
|
||||
|
||||
/// <remarks>string</remarks>
|
||||
public const string TagKey = "tag";
|
||||
|
||||
|
||||
@@ -6,6 +6,13 @@ namespace SabreTools.Data.Models.Metadata
|
||||
[JsonObject("video"), XmlRoot("video")]
|
||||
public class Video : DatItem
|
||||
{
|
||||
#region Properties
|
||||
|
||||
/// <remarks>(raster|vector)</remarks>
|
||||
public DisplayType? Screen { get; set; }
|
||||
|
||||
#endregion
|
||||
|
||||
#region Keys
|
||||
|
||||
/// <remarks>long</remarks>
|
||||
@@ -23,9 +30,6 @@ namespace SabreTools.Data.Models.Metadata
|
||||
/// <remarks>double; Originally "freq"</remarks>
|
||||
public const string RefreshKey = "refresh";
|
||||
|
||||
/// <remarks>(raster|vector)</remarks>
|
||||
public const string ScreenKey = "screen";
|
||||
|
||||
/// <remarks>long; Originally "x"</remarks>
|
||||
public const string WidthKey = "width";
|
||||
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
|
||||
using SabreTools.Data.Models.Metadata;
|
||||
|
||||
namespace SabreTools.Data.Models.SeparatedValue
|
||||
{
|
||||
/// <summary>
|
||||
@@ -57,6 +59,6 @@ namespace SabreTools.Data.Models.SeparatedValue
|
||||
public string? SpamSum { get; set; }
|
||||
|
||||
/// <remarks>Status, Nodump</remarks>
|
||||
public string? Status { get; set; }
|
||||
public ItemStatus? Status { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
using System.Xml;
|
||||
using System.Xml.Serialization;
|
||||
using SabreTools.Data.Models.Metadata;
|
||||
|
||||
namespace SabreTools.Data.Models.SoftwareList
|
||||
{
|
||||
@@ -20,7 +21,7 @@ namespace SabreTools.Data.Models.SoftwareList
|
||||
|
||||
/// <remarks>(big|little) "little"</remarks>
|
||||
[XmlAttribute("endianness")]
|
||||
public string? Endianness { get; set; }
|
||||
public Endianness? Endianness { get; set; }
|
||||
|
||||
[XmlElement("rom")]
|
||||
public Rom[]? Rom { get; set; }
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
using System.Xml;
|
||||
using System.Xml.Serialization;
|
||||
using SabreTools.Data.Models.Metadata;
|
||||
|
||||
namespace SabreTools.Data.Models.SoftwareList
|
||||
{
|
||||
@@ -18,7 +19,7 @@ namespace SabreTools.Data.Models.SoftwareList
|
||||
|
||||
/// <remarks>(baddump|nodump|good) "good"</remarks>
|
||||
[XmlAttribute("status")]
|
||||
public string? Status { get; set; }
|
||||
public ItemStatus? Status { get; set; }
|
||||
|
||||
/// <remarks>(yes|no) "no"</remarks>
|
||||
[XmlAttribute("writable")]
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
using System.Xml;
|
||||
using System.Xml.Serialization;
|
||||
using SabreTools.Data.Models.Metadata;
|
||||
|
||||
namespace SabreTools.Data.Models.SoftwareList
|
||||
{
|
||||
@@ -31,10 +32,10 @@ namespace SabreTools.Data.Models.SoftwareList
|
||||
|
||||
/// <remarks>(baddump|nodump|good) "good"</remarks>
|
||||
[XmlAttribute("status")]
|
||||
public string? Status { get; set; }
|
||||
public ItemStatus? Status { get; set; }
|
||||
|
||||
/// <remarks>(load16_byte|load16_word|load16_word_swap|load32_byte|load32_word|load32_word_swap|load32_dword|load64_word|load64_word_swap|reload|fill|continue|reload_plain|ignore)</remarks>
|
||||
[XmlAttribute("loadflag")]
|
||||
public string? LoadFlag { get; set; }
|
||||
public LoadFlag? LoadFlag { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
using System.Xml;
|
||||
using System.Xml.Serialization;
|
||||
using SabreTools.Data.Models.Metadata;
|
||||
|
||||
namespace SabreTools.Data.Models.SoftwareList
|
||||
{
|
||||
@@ -15,7 +16,7 @@ namespace SabreTools.Data.Models.SoftwareList
|
||||
|
||||
/// <remarks>(yes|partial|no) "yes"</remarks>
|
||||
[XmlAttribute("supported")]
|
||||
public string? Supported { get; set; }
|
||||
public Supported? Supported { get; set; }
|
||||
|
||||
[Required]
|
||||
[XmlElement("description")]
|
||||
|
||||
@@ -108,9 +108,9 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
ValidateDriver(driver);
|
||||
|
||||
// All other fields are tested separately
|
||||
Rom? dump = Array.Find(datItems, item => item is Rom rom && rom.ReadString(Data.Models.Metadata.Rom.OpenMSXMediaType) is not null) as Rom;
|
||||
Rom? dump = Array.Find(datItems, item => item is Rom rom && rom.OpenMSXMediaType is not null) as Rom;
|
||||
Assert.NotNull(dump);
|
||||
Assert.Equal("rom", dump.ReadString(Data.Models.Metadata.Rom.OpenMSXMediaType));
|
||||
Assert.Equal(Data.Models.Metadata.OpenMSXSubType.Rom, dump.OpenMSXMediaType);
|
||||
|
||||
Feature? feature = Array.Find(datItems, item => item is Feature) as Feature;
|
||||
ValidateFeature(feature);
|
||||
@@ -158,7 +158,7 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
Release? release = Array.Find(datItems, item => item is Release) as Release;
|
||||
ValidateRelease(release);
|
||||
|
||||
Rom? rom = Array.Find(datItems, item => item is Rom rom && !rom.DataAreaSpecified && !rom.PartSpecified && rom.ReadString(Data.Models.Metadata.Rom.OpenMSXMediaType) is null) as Rom;
|
||||
Rom? rom = Array.Find(datItems, item => item is Rom rom && !rom.DataAreaSpecified && !rom.PartSpecified && rom.OpenMSXMediaType is null) as Rom;
|
||||
ValidateRom(rom);
|
||||
|
||||
Sample? sample = Array.Find(datItems, item => item is Sample) as Sample;
|
||||
@@ -202,7 +202,7 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
return new Data.Models.Metadata.Header
|
||||
{
|
||||
[Data.Models.Metadata.Header.AuthorKey] = "author",
|
||||
[Data.Models.Metadata.Header.BiosModeKey] = "merged",
|
||||
BiosMode = Data.Models.Metadata.MergingFlag.Merged,
|
||||
[Data.Models.Metadata.Header.BuildKey] = "build",
|
||||
[Data.Models.Metadata.Header.CanOpenKey] = canOpen,
|
||||
[Data.Models.Metadata.Header.CategoryKey] = "category",
|
||||
@@ -213,9 +213,9 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
[Data.Models.Metadata.Header.DescriptionKey] = "description",
|
||||
[Data.Models.Metadata.Header.EmailKey] = "email",
|
||||
[Data.Models.Metadata.Header.EmulatorVersionKey] = "emulatorversion",
|
||||
[Data.Models.Metadata.Header.ForceMergingKey] = "merged",
|
||||
[Data.Models.Metadata.Header.ForceNodumpKey] = "required",
|
||||
[Data.Models.Metadata.Header.ForcePackingKey] = "zip",
|
||||
ForceMerging = Data.Models.Metadata.MergingFlag.Merged,
|
||||
ForceNodump = Data.Models.Metadata.NodumpFlag.Required,
|
||||
ForcePacking = Data.Models.Metadata.PackingFlag.Zip,
|
||||
ForceZipping = true,
|
||||
[Data.Models.Metadata.Header.HeaderKey] = "header",
|
||||
[Data.Models.Metadata.Header.HomepageKey] = "homepage",
|
||||
@@ -232,10 +232,10 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
[Data.Models.Metadata.Header.NotesKey] = "notes",
|
||||
[Data.Models.Metadata.Header.PluginKey] = "plugin",
|
||||
[Data.Models.Metadata.Header.RefNameKey] = "refname",
|
||||
[Data.Models.Metadata.Header.RomModeKey] = "merged",
|
||||
RomMode = Data.Models.Metadata.MergingFlag.Merged,
|
||||
[Data.Models.Metadata.Header.RomTitleKey] = "romtitle",
|
||||
[Data.Models.Metadata.Header.RootDirKey] = "rootdir",
|
||||
[Data.Models.Metadata.Header.SampleModeKey] = "merged",
|
||||
SampleMode = Data.Models.Metadata.MergingFlag.Merged,
|
||||
[Data.Models.Metadata.Header.SchemaLocationKey] = "schemalocation",
|
||||
[Data.Models.Metadata.Header.ScreenshotsHeightKey] = "screenshotsheight",
|
||||
[Data.Models.Metadata.Header.ScreenshotsWidthKey] = "screenshotsWidth",
|
||||
@@ -323,7 +323,7 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
[Data.Models.Metadata.Machine.SourceFileKey] = "sourcefile",
|
||||
[Data.Models.Metadata.Machine.SourceRomKey] = "sourcerom",
|
||||
[Data.Models.Metadata.Machine.StatusKey] = "status",
|
||||
[Data.Models.Metadata.Machine.SupportedKey] = "yes",
|
||||
Supported = Data.Models.Metadata.Supported.Yes,
|
||||
[Data.Models.Metadata.Machine.SystemKey] = "system",
|
||||
[Data.Models.Metadata.Machine.TagsKey] = "tags",
|
||||
[Data.Models.Metadata.Machine.TruripKey] = CreateMetadataTrurip(),
|
||||
@@ -409,7 +409,7 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
Name = "name",
|
||||
SoundOnly = true,
|
||||
[Data.Models.Metadata.Chip.TagKey] = "tag",
|
||||
[Data.Models.Metadata.Chip.ChipTypeKey] = "cpu",
|
||||
ChipType = Data.Models.Metadata.ChipType.CPU,
|
||||
};
|
||||
}
|
||||
|
||||
@@ -432,7 +432,7 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
{
|
||||
[Data.Models.Metadata.Condition.ValueKey] = "value",
|
||||
[Data.Models.Metadata.Condition.MaskKey] = "mask",
|
||||
[Data.Models.Metadata.Condition.RelationKey] = "eq",
|
||||
Relation = Data.Models.Metadata.Relation.Equal,
|
||||
[Data.Models.Metadata.Condition.TagKey] = "tag",
|
||||
};
|
||||
}
|
||||
@@ -470,7 +470,7 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
[Data.Models.Metadata.Control.ReqButtonsKey] = 12345L,
|
||||
Reverse = true,
|
||||
[Data.Models.Metadata.Control.SensitivityKey] = 12345L,
|
||||
[Data.Models.Metadata.Control.ControlTypeKey] = "lightgun",
|
||||
ControlType = Data.Models.Metadata.ControlType.Lightgun,
|
||||
[Data.Models.Metadata.Control.WaysKey] = "ways",
|
||||
[Data.Models.Metadata.Control.Ways2Key] = "ways2",
|
||||
[Data.Models.Metadata.Control.Ways3Key] = "ways3",
|
||||
@@ -487,7 +487,7 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
[Data.Models.Metadata.Device.InterfaceKey] = "interface",
|
||||
[Data.Models.Metadata.Device.MandatoryKey] = 1L,
|
||||
[Data.Models.Metadata.Device.TagKey] = "tag",
|
||||
[Data.Models.Metadata.Device.DeviceTypeKey] = "punchtape",
|
||||
DeviceType = Data.Models.Metadata.DeviceType.PunchTape,
|
||||
};
|
||||
}
|
||||
|
||||
@@ -539,7 +539,7 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
{
|
||||
return new Data.Models.Metadata.DataArea
|
||||
{
|
||||
[Data.Models.Metadata.DataArea.EndiannessKey] = "big",
|
||||
Endianness = Data.Models.Metadata.Endianness.Big,
|
||||
Name = "name",
|
||||
[Data.Models.Metadata.DataArea.RomKey] = new Data.Models.Metadata.Rom[] { [] },
|
||||
[Data.Models.Metadata.DataArea.SizeKey] = 12345L,
|
||||
@@ -585,7 +585,7 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
[Data.Models.Metadata.Display.RefreshKey] = 12345L,
|
||||
[Data.Models.Metadata.Display.RotateKey] = 90,
|
||||
[Data.Models.Metadata.Display.TagKey] = "tag",
|
||||
[Data.Models.Metadata.Display.DisplayTypeKey] = "vector",
|
||||
DisplayType = Data.Models.Metadata.DisplayType.Vector,
|
||||
[Data.Models.Metadata.Display.VBEndKey] = 12345L,
|
||||
[Data.Models.Metadata.Display.VBStartKey] = 12345L,
|
||||
[Data.Models.Metadata.Display.VTotalKey] = 12345L,
|
||||
@@ -597,17 +597,17 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
{
|
||||
return new Data.Models.Metadata.Driver
|
||||
{
|
||||
[Data.Models.Metadata.Driver.BlitKey] = "plain",
|
||||
[Data.Models.Metadata.Driver.CocktailKey] = "good",
|
||||
[Data.Models.Metadata.Driver.ColorKey] = "good",
|
||||
[Data.Models.Metadata.Driver.EmulationKey] = "good",
|
||||
Blit = Data.Models.Metadata.Blit.Plain,
|
||||
Cocktail = Data.Models.Metadata.SupportStatus.Good,
|
||||
Color = Data.Models.Metadata.SupportStatus.Good,
|
||||
Emulation = Data.Models.Metadata.SupportStatus.Good,
|
||||
Incomplete = true,
|
||||
NoSoundHardware = true,
|
||||
[Data.Models.Metadata.Driver.PaletteSizeKey] = "pallettesize",
|
||||
RequiresArtwork = true,
|
||||
[Data.Models.Metadata.Driver.SaveStateKey] = "supported",
|
||||
[Data.Models.Metadata.Driver.SoundKey] = "good",
|
||||
[Data.Models.Metadata.Driver.StatusKey] = "good",
|
||||
SaveState = Data.Models.Metadata.Supported.Yes,
|
||||
Sound = Data.Models.Metadata.SupportStatus.Good,
|
||||
Status = Data.Models.Metadata.SupportStatus.Good,
|
||||
Unofficial = true,
|
||||
};
|
||||
}
|
||||
@@ -640,9 +640,9 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
return new Data.Models.Metadata.Feature
|
||||
{
|
||||
Name = "name",
|
||||
[Data.Models.Metadata.Feature.OverallKey] = "imperfect",
|
||||
[Data.Models.Metadata.Feature.StatusKey] = "imperfect",
|
||||
[Data.Models.Metadata.Feature.FeatureTypeKey] = "protection",
|
||||
Overall = Data.Models.Metadata.FeatureStatus.Imperfect,
|
||||
Status = Data.Models.Metadata.FeatureStatus.Imperfect,
|
||||
FeatureType = Data.Models.Metadata.FeatureType.Protection,
|
||||
[Data.Models.Metadata.Feature.ValueKey] = "value",
|
||||
};
|
||||
}
|
||||
@@ -805,7 +805,7 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
Inverted = true,
|
||||
[Data.Models.Metadata.Rom.LastModifiedTimeKey] = "mtime",
|
||||
[Data.Models.Metadata.Rom.LengthKey] = "length",
|
||||
[Data.Models.Metadata.Rom.LoadFlagKey] = "load16_byte",
|
||||
LoadFlag = Data.Models.Metadata.LoadFlag.Load16Byte,
|
||||
[Data.Models.Metadata.Rom.MatrixNumberKey] = "matrix_number",
|
||||
[Data.Models.Metadata.Rom.MD2Key] = HashType.MD2.ZeroString,
|
||||
[Data.Models.Metadata.Rom.MD4Key] = HashType.MD4.ZeroString,
|
||||
@@ -843,7 +843,7 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
[Data.Models.Metadata.Rom.SourceKey] = "source",
|
||||
[Data.Models.Metadata.Rom.SpamSumKey] = HashType.SpamSum.ZeroString,
|
||||
[Data.Models.Metadata.Rom.StartKey] = "start",
|
||||
[Data.Models.Metadata.Rom.StatusKey] = "good",
|
||||
Status = Data.Models.Metadata.ItemStatus.Good,
|
||||
[Data.Models.Metadata.Rom.SummationKey] = "summation",
|
||||
[Data.Models.Metadata.Rom.TitleKey] = "title",
|
||||
[Data.Models.Metadata.Rom.TrackKey] = "track",
|
||||
@@ -938,7 +938,7 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
[Data.Models.Metadata.Software.PartKey] = new Data.Models.Metadata.Part[] { CreateMetadataPart() },
|
||||
[Data.Models.Metadata.Software.PublisherKey] = "publisher",
|
||||
[Data.Models.Metadata.Software.SharedFeatKey] = new Data.Models.Metadata.SharedFeat[] { CreateMetadataSharedFeat() },
|
||||
[Data.Models.Metadata.Software.SupportedKey] = true,
|
||||
Supported = Data.Models.Metadata.Supported.Yes,
|
||||
[Data.Models.Metadata.Software.YearKey] = "year",
|
||||
};
|
||||
}
|
||||
@@ -952,7 +952,7 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
Name = "name",
|
||||
[Data.Models.Metadata.SoftwareList.NotesKey] = "notes",
|
||||
[Data.Models.Metadata.SoftwareList.SoftwareKey] = new Data.Models.Metadata.Software[] { CreateMetadataSoftware() },
|
||||
[Data.Models.Metadata.SoftwareList.StatusKey] = "original",
|
||||
Status = Data.Models.Metadata.SoftwareListStatus.Original,
|
||||
[Data.Models.Metadata.SoftwareList.TagKey] = "tag",
|
||||
};
|
||||
}
|
||||
@@ -1026,7 +1026,7 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
[Data.Models.Metadata.Video.HeightKey] = 12345L,
|
||||
[Data.Models.Metadata.Video.OrientationKey] = "vertical",
|
||||
[Data.Models.Metadata.Video.RefreshKey] = 12345L,
|
||||
[Data.Models.Metadata.Video.ScreenKey] = "vector",
|
||||
Screen = Data.Models.Metadata.DisplayType.Vector,
|
||||
[Data.Models.Metadata.Video.WidthKey] = 12345L,
|
||||
};
|
||||
}
|
||||
@@ -1038,7 +1038,7 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
private static void ValidateHeader(DatHeader datHeader)
|
||||
{
|
||||
Assert.Equal("author", datHeader.ReadString(Data.Models.Metadata.Header.AuthorKey));
|
||||
Assert.Equal("merged", datHeader.ReadString(Data.Models.Metadata.Header.BiosModeKey));
|
||||
Assert.Equal(Data.Models.Metadata.MergingFlag.Merged, datHeader.BiosMode);
|
||||
Assert.Equal("build", datHeader.ReadString(Data.Models.Metadata.Header.BuildKey));
|
||||
Assert.Equal("ext", datHeader.ReadString(Data.Models.Metadata.Header.CanOpenKey));
|
||||
Assert.Equal("category", datHeader.ReadString(Data.Models.Metadata.Header.CategoryKey));
|
||||
@@ -1049,9 +1049,9 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
Assert.Equal("description", datHeader.ReadString(Data.Models.Metadata.Header.DescriptionKey));
|
||||
Assert.Equal("email", datHeader.ReadString(Data.Models.Metadata.Header.EmailKey));
|
||||
Assert.Equal("emulatorversion", datHeader.ReadString(Data.Models.Metadata.Header.EmulatorVersionKey));
|
||||
Assert.Equal("merged", datHeader.ReadString(Data.Models.Metadata.Header.ForceMergingKey));
|
||||
Assert.Equal("required", datHeader.ReadString(Data.Models.Metadata.Header.ForceNodumpKey));
|
||||
Assert.Equal("zip", datHeader.ReadString(Data.Models.Metadata.Header.ForcePackingKey));
|
||||
Assert.Equal(Data.Models.Metadata.MergingFlag.Merged, datHeader.ForceMerging);
|
||||
Assert.Equal(Data.Models.Metadata.NodumpFlag.Required, datHeader.ForceNodump);
|
||||
Assert.Equal(Data.Models.Metadata.PackingFlag.Zip, datHeader.ForcePacking);
|
||||
Assert.True(datHeader.ForceZipping);
|
||||
Assert.Equal("header", datHeader.ReadString(Data.Models.Metadata.Header.HeaderKey));
|
||||
Assert.Equal("homepage", datHeader.ReadString(Data.Models.Metadata.Header.HomepageKey));
|
||||
@@ -1068,10 +1068,10 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
Assert.Equal("notes", datHeader.ReadString(Data.Models.Metadata.Header.NotesKey));
|
||||
Assert.Equal("plugin", datHeader.ReadString(Data.Models.Metadata.Header.PluginKey));
|
||||
Assert.Equal("refname", datHeader.ReadString(Data.Models.Metadata.Header.RefNameKey));
|
||||
Assert.Equal("merged", datHeader.ReadString(Data.Models.Metadata.Header.RomModeKey));
|
||||
Assert.Equal(Data.Models.Metadata.MergingFlag.Merged, datHeader.RomMode);
|
||||
Assert.Equal("romtitle", datHeader.ReadString(Data.Models.Metadata.Header.RomTitleKey));
|
||||
Assert.Equal("rootdir", datHeader.ReadString(Data.Models.Metadata.Header.RootDirKey));
|
||||
Assert.Equal("merged", datHeader.ReadString(Data.Models.Metadata.Header.SampleModeKey));
|
||||
Assert.Equal(Data.Models.Metadata.MergingFlag.Merged, datHeader.SampleMode);
|
||||
Assert.Equal("schemalocation", datHeader.ReadString(Data.Models.Metadata.Header.SchemaLocationKey));
|
||||
Assert.Equal("screenshotsheight", datHeader.ReadString(Data.Models.Metadata.Header.ScreenshotsHeightKey));
|
||||
Assert.Equal("screenshotsWidth", datHeader.ReadString(Data.Models.Metadata.Header.ScreenshotsWidthKey));
|
||||
@@ -1131,7 +1131,7 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
Assert.Equal("sourcefile", machine.ReadString(Data.Models.Metadata.Machine.SourceFileKey));
|
||||
Assert.Equal("sourcerom", machine.ReadString(Data.Models.Metadata.Machine.SourceRomKey));
|
||||
Assert.Equal("status", machine.ReadString(Data.Models.Metadata.Machine.StatusKey));
|
||||
Assert.Equal("yes", machine.ReadString(Data.Models.Metadata.Machine.SupportedKey));
|
||||
Assert.Equal(Data.Models.Metadata.Supported.Yes, machine.Supported);
|
||||
Assert.Equal("system", machine.ReadString(Data.Models.Metadata.Machine.SystemKey));
|
||||
Assert.Equal("tags", machine.ReadString(Data.Models.Metadata.Machine.TagsKey));
|
||||
Assert.Equal("year", machine.ReadString(Data.Models.Metadata.Machine.YearKey));
|
||||
@@ -1179,7 +1179,7 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
Assert.Equal("name", chip.GetName());
|
||||
Assert.True(chip.SoundOnly);
|
||||
Assert.Equal("tag", chip.ReadString(Data.Models.Metadata.Chip.TagKey));
|
||||
Assert.Equal("cpu", chip.ReadString(Data.Models.Metadata.Chip.ChipTypeKey));
|
||||
Assert.Equal(Data.Models.Metadata.ChipType.CPU, chip.ChipType);
|
||||
}
|
||||
|
||||
private static void ValidateCondition(Condition? condition)
|
||||
@@ -1187,7 +1187,7 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
Assert.NotNull(condition);
|
||||
Assert.Equal("value", condition.ReadString(Data.Models.Metadata.Condition.ValueKey));
|
||||
Assert.Equal("mask", condition.ReadString(Data.Models.Metadata.Condition.MaskKey));
|
||||
Assert.Equal("eq", condition.ReadString(Data.Models.Metadata.Condition.RelationKey));
|
||||
Assert.Equal(Data.Models.Metadata.Relation.Equal, condition.Relation);
|
||||
Assert.Equal("tag", condition.ReadString(Data.Models.Metadata.Condition.TagKey));
|
||||
}
|
||||
|
||||
@@ -1242,7 +1242,7 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
Assert.Equal(12345L, control.ReadLong(Data.Models.Metadata.Control.ReqButtonsKey));
|
||||
Assert.True(control.Reverse);
|
||||
Assert.Equal(12345L, control.ReadLong(Data.Models.Metadata.Control.SensitivityKey));
|
||||
Assert.Equal("lightgun", control.ReadString(Data.Models.Metadata.Control.ControlTypeKey));
|
||||
Assert.Equal(Data.Models.Metadata.ControlType.Lightgun, control.ControlType);
|
||||
Assert.Equal("ways", control.ReadString(Data.Models.Metadata.Control.WaysKey));
|
||||
Assert.Equal("ways2", control.ReadString(Data.Models.Metadata.Control.Ways2Key));
|
||||
Assert.Equal("ways3", control.ReadString(Data.Models.Metadata.Control.Ways3Key));
|
||||
@@ -1251,7 +1251,7 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
private static void ValidateDataArea(DataArea? dataArea)
|
||||
{
|
||||
Assert.NotNull(dataArea);
|
||||
Assert.Equal("big", dataArea.ReadString(Data.Models.Metadata.DataArea.EndiannessKey));
|
||||
Assert.Equal(Data.Models.Metadata.Endianness.Big, dataArea.Endianness);
|
||||
Assert.Equal("name", dataArea.GetName());
|
||||
Assert.Equal(12345L, dataArea.ReadLong(Data.Models.Metadata.DataArea.SizeKey));
|
||||
Assert.Equal(64, dataArea.ReadLong(Data.Models.Metadata.DataArea.WidthKey));
|
||||
@@ -1264,7 +1264,7 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
Assert.Equal("interface", device.ReadString(Data.Models.Metadata.Device.InterfaceKey));
|
||||
Assert.Equal(1, device.ReadLong(Data.Models.Metadata.Device.MandatoryKey));
|
||||
Assert.Equal("tag", device.ReadString(Data.Models.Metadata.Device.TagKey));
|
||||
Assert.Equal("punchtape", device.ReadString(Data.Models.Metadata.Device.DeviceTypeKey));
|
||||
Assert.Equal(Data.Models.Metadata.DeviceType.PunchTape, device.DeviceType);
|
||||
|
||||
Extension[]? extensions = device.Read<Extension[]>(Data.Models.Metadata.Device.ExtensionKey);
|
||||
Assert.NotNull(extensions);
|
||||
@@ -1359,7 +1359,7 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
Assert.Equal(12345L, display.ReadLong(Data.Models.Metadata.Display.RefreshKey));
|
||||
Assert.Equal(90, display.ReadLong(Data.Models.Metadata.Display.RotateKey));
|
||||
Assert.Equal("tag", display.ReadString(Data.Models.Metadata.Display.TagKey));
|
||||
Assert.Equal("vector", display.ReadString(Data.Models.Metadata.Display.DisplayTypeKey));
|
||||
Assert.Equal(Data.Models.Metadata.DisplayType.Vector, display.DisplayType);
|
||||
Assert.Equal(12345L, display.ReadLong(Data.Models.Metadata.Display.VBEndKey));
|
||||
Assert.Equal(12345L, display.ReadLong(Data.Models.Metadata.Display.VBStartKey));
|
||||
Assert.Equal(12345L, display.ReadLong(Data.Models.Metadata.Display.VTotalKey));
|
||||
@@ -1369,17 +1369,17 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
private static void ValidateDriver(Driver? driver)
|
||||
{
|
||||
Assert.NotNull(driver);
|
||||
Assert.Equal("plain", driver.ReadString(Data.Models.Metadata.Driver.BlitKey));
|
||||
Assert.Equal("good", driver.ReadString(Data.Models.Metadata.Driver.CocktailKey));
|
||||
Assert.Equal("good", driver.ReadString(Data.Models.Metadata.Driver.ColorKey));
|
||||
Assert.Equal("good", driver.ReadString(Data.Models.Metadata.Driver.EmulationKey));
|
||||
Assert.Equal(Data.Models.Metadata.Blit.Plain, driver.Blit);
|
||||
Assert.Equal(Data.Models.Metadata.SupportStatus.Good, driver.Cocktail);
|
||||
Assert.Equal(Data.Models.Metadata.SupportStatus.Good, driver.Color);
|
||||
Assert.Equal(Data.Models.Metadata.SupportStatus.Good, driver.Emulation);
|
||||
Assert.True(driver.Incomplete);
|
||||
Assert.True(driver.NoSoundHardware);
|
||||
Assert.Equal("pallettesize", driver.ReadString(Data.Models.Metadata.Driver.PaletteSizeKey));
|
||||
Assert.True(driver.RequiresArtwork);
|
||||
Assert.Equal("supported", driver.ReadString(Data.Models.Metadata.Driver.SaveStateKey));
|
||||
Assert.Equal("good", driver.ReadString(Data.Models.Metadata.Driver.SoundKey));
|
||||
Assert.Equal("good", driver.ReadString(Data.Models.Metadata.Driver.StatusKey));
|
||||
Assert.Equal(Data.Models.Metadata.Supported.Yes, driver.SaveState);
|
||||
Assert.Equal(Data.Models.Metadata.SupportStatus.Good, driver.Sound);
|
||||
Assert.Equal(Data.Models.Metadata.SupportStatus.Good, driver.Status);
|
||||
Assert.True(driver.Unofficial);
|
||||
}
|
||||
|
||||
@@ -1393,9 +1393,9 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
{
|
||||
Assert.NotNull(feature);
|
||||
Assert.Equal("name", feature.GetName());
|
||||
Assert.Equal("imperfect", feature.ReadString(Data.Models.Metadata.Feature.OverallKey));
|
||||
Assert.Equal("imperfect", feature.ReadString(Data.Models.Metadata.Feature.StatusKey));
|
||||
Assert.Equal("protection", feature.ReadString(Data.Models.Metadata.Feature.FeatureTypeKey));
|
||||
Assert.Equal(Data.Models.Metadata.FeatureStatus.Imperfect, feature.Overall);
|
||||
Assert.Equal(Data.Models.Metadata.FeatureStatus.Imperfect, feature.Status);
|
||||
Assert.Equal(Data.Models.Metadata.FeatureType.Protection, feature.FeatureType);
|
||||
Assert.Equal("value", feature.ReadString(Data.Models.Metadata.Feature.ValueKey));
|
||||
}
|
||||
|
||||
@@ -1449,9 +1449,9 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
{
|
||||
Assert.NotNull(partFeature);
|
||||
Assert.Equal("name", partFeature.GetName());
|
||||
Assert.Equal("imperfect", partFeature.ReadString(Data.Models.Metadata.Feature.OverallKey));
|
||||
Assert.Equal("imperfect", partFeature.ReadString(Data.Models.Metadata.Feature.StatusKey));
|
||||
Assert.Equal("protection", partFeature.ReadString(Data.Models.Metadata.Feature.FeatureTypeKey));
|
||||
Assert.Equal(Data.Models.Metadata.FeatureStatus.Imperfect, partFeature.Overall);
|
||||
Assert.Equal(Data.Models.Metadata.FeatureStatus.Imperfect, partFeature.Status);
|
||||
Assert.Equal(Data.Models.Metadata.FeatureType.Protection, partFeature.FeatureType);
|
||||
Assert.Equal("value", partFeature.ReadString(Data.Models.Metadata.Feature.ValueKey));
|
||||
|
||||
Part? part = partFeature.Read<Part>(PartFeature.PartKey);
|
||||
@@ -1525,12 +1525,12 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
Assert.True(rom.Inverted);
|
||||
Assert.Equal("mtime", rom.ReadString(Data.Models.Metadata.Rom.LastModifiedTimeKey));
|
||||
Assert.Equal("length", rom.ReadString(Data.Models.Metadata.Rom.LengthKey));
|
||||
Assert.Equal("load16_byte", rom.ReadString(Data.Models.Metadata.Rom.LoadFlagKey));
|
||||
Assert.Equal(Data.Models.Metadata.LoadFlag.Load16Byte, rom.LoadFlag);
|
||||
Assert.Equal("matrix_number", rom.ReadString(Data.Models.Metadata.Rom.MatrixNumberKey));
|
||||
Assert.Equal(HashType.MD2.ZeroString, rom.ReadString(Data.Models.Metadata.Rom.MD2Key));
|
||||
Assert.Equal(HashType.MD4.ZeroString, rom.ReadString(Data.Models.Metadata.Rom.MD4Key));
|
||||
Assert.Equal(HashType.MD5.ZeroString, rom.ReadString(Data.Models.Metadata.Rom.MD5Key));
|
||||
Assert.Null(rom.ReadString(Data.Models.Metadata.Rom.OpenMSXMediaType)); // Omit due to other test
|
||||
Assert.Null(rom.OpenMSXMediaType); // Omit due to other test
|
||||
Assert.Equal("merge", rom.ReadString(Data.Models.Metadata.Rom.MergeKey));
|
||||
Assert.True(rom.MIA);
|
||||
Assert.Equal("name", rom.GetName());
|
||||
@@ -1563,7 +1563,7 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
Assert.Equal("source", rom.ReadString(Data.Models.Metadata.Rom.SourceKey));
|
||||
Assert.Equal(HashType.SpamSum.ZeroString, rom.ReadString(Data.Models.Metadata.Rom.SpamSumKey));
|
||||
Assert.Equal("start", rom.ReadString(Data.Models.Metadata.Rom.StartKey));
|
||||
Assert.Equal("good", rom.ReadString(Data.Models.Metadata.Rom.StatusKey));
|
||||
Assert.Equal(Data.Models.Metadata.ItemStatus.Good, rom.Status);
|
||||
Assert.Equal("summation", rom.ReadString(Data.Models.Metadata.Rom.SummationKey));
|
||||
Assert.Equal("title", rom.ReadString(Data.Models.Metadata.Rom.TitleKey));
|
||||
Assert.Equal("track", rom.ReadString(Data.Models.Metadata.Rom.TrackKey));
|
||||
@@ -1628,7 +1628,7 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
Assert.Equal("name", softwareList.GetName());
|
||||
Assert.Equal("notes", softwareList.ReadString(Data.Models.Metadata.SoftwareList.NotesKey));
|
||||
// TODO: Figure out why Data.Models.Metadata.SoftwareList.SoftwareKey doesn't get processed
|
||||
Assert.Equal("original", softwareList.ReadString(Data.Models.Metadata.SoftwareList.StatusKey));
|
||||
Assert.Equal(Data.Models.Metadata.SoftwareListStatus.Original, softwareList.Status);
|
||||
Assert.Equal("tag", softwareList.ReadString(Data.Models.Metadata.SoftwareList.TagKey));
|
||||
}
|
||||
|
||||
@@ -1663,7 +1663,7 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
Assert.NotNull(display);
|
||||
Assert.Equal(12345L, display.ReadLong(Data.Models.Metadata.Video.AspectXKey));
|
||||
Assert.Equal(12345L, display.ReadLong(Data.Models.Metadata.Video.AspectYKey));
|
||||
Assert.Equal("vector", display.ReadString(Data.Models.Metadata.Display.DisplayTypeKey));
|
||||
Assert.Equal(Data.Models.Metadata.DisplayType.Vector, display.DisplayType);
|
||||
Assert.Equal(12345L, display.ReadLong(Data.Models.Metadata.Display.HeightKey));
|
||||
Assert.Equal(12345L, display.ReadLong(Data.Models.Metadata.Display.RefreshKey));
|
||||
Assert.Equal(12345L, display.ReadLong(Data.Models.Metadata.Display.WidthKey));
|
||||
|
||||
@@ -374,7 +374,7 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
{
|
||||
Assert.NotNull(header);
|
||||
Assert.Equal("author", header.ReadString(Data.Models.Metadata.Header.AuthorKey));
|
||||
Assert.Equal("merged", header.ReadString(Data.Models.Metadata.Header.BiosModeKey));
|
||||
Assert.Equal(Data.Models.Metadata.MergingFlag.Merged, header.BiosMode);
|
||||
Assert.Equal("build", header.ReadString(Data.Models.Metadata.Header.BuildKey));
|
||||
Assert.NotNull(header.Read<Data.Models.OfflineList.CanOpen>(Data.Models.Metadata.Header.CanOpenKey));
|
||||
Assert.Equal("category", header.ReadString(Data.Models.Metadata.Header.CategoryKey));
|
||||
@@ -385,9 +385,9 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
Assert.Equal("description", header.ReadString(Data.Models.Metadata.Header.DescriptionKey));
|
||||
Assert.Equal("email", header.ReadString(Data.Models.Metadata.Header.EmailKey));
|
||||
Assert.Equal("emulatorversion", header.ReadString(Data.Models.Metadata.Header.EmulatorVersionKey));
|
||||
Assert.Equal("merged", header.ReadString(Data.Models.Metadata.Header.ForceMergingKey));
|
||||
Assert.Equal("required", header.ReadString(Data.Models.Metadata.Header.ForceNodumpKey));
|
||||
Assert.Equal("zip", header.ReadString(Data.Models.Metadata.Header.ForcePackingKey));
|
||||
Assert.Equal(Data.Models.Metadata.MergingFlag.Merged, header.ForceMerging);
|
||||
Assert.Equal(Data.Models.Metadata.NodumpFlag.Required, header.ForceNodump);
|
||||
Assert.Equal(Data.Models.Metadata.PackingFlag.Zip, header.ForcePacking);
|
||||
Assert.True(header.ForceZipping);
|
||||
Assert.Equal("header", header.ReadString(Data.Models.Metadata.Header.HeaderKey));
|
||||
Assert.Equal("homepage", header.ReadString(Data.Models.Metadata.Header.HomepageKey));
|
||||
@@ -404,10 +404,10 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
Assert.Equal("notes", header.ReadString(Data.Models.Metadata.Header.NotesKey));
|
||||
Assert.Equal("plugin", header.ReadString(Data.Models.Metadata.Header.PluginKey));
|
||||
Assert.Equal("refname", header.ReadString(Data.Models.Metadata.Header.RefNameKey));
|
||||
Assert.Equal("merged", header.ReadString(Data.Models.Metadata.Header.RomModeKey));
|
||||
Assert.Equal(Data.Models.Metadata.MergingFlag.Merged, header.RomMode);
|
||||
Assert.Equal("romtitle", header.ReadString(Data.Models.Metadata.Header.RomTitleKey));
|
||||
Assert.Equal("rootdir", header.ReadString(Data.Models.Metadata.Header.RootDirKey));
|
||||
Assert.Equal("merged", header.ReadString(Data.Models.Metadata.Header.SampleModeKey));
|
||||
Assert.Equal(Data.Models.Metadata.MergingFlag.Merged, header.SampleMode);
|
||||
Assert.Equal("schemalocation", header.ReadString(Data.Models.Metadata.Header.SchemaLocationKey));
|
||||
Assert.Equal("screenshotsheight", header.ReadString(Data.Models.Metadata.Header.ScreenshotsHeightKey));
|
||||
Assert.Equal("screenshotsWidth", header.ReadString(Data.Models.Metadata.Header.ScreenshotsWidthKey));
|
||||
@@ -466,7 +466,7 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
Assert.Equal("sourcefile", machine.ReadString(Data.Models.Metadata.Machine.SourceFileKey));
|
||||
Assert.Equal("sourcerom", machine.ReadString(Data.Models.Metadata.Machine.SourceRomKey));
|
||||
Assert.Equal("status", machine.ReadString(Data.Models.Metadata.Machine.StatusKey));
|
||||
Assert.Equal("yes", machine.ReadString(Data.Models.Metadata.Machine.SupportedKey));
|
||||
Assert.Equal(Data.Models.Metadata.Supported.Yes, machine.Supported);
|
||||
Assert.Equal("system", machine.ReadString(Data.Models.Metadata.Machine.SystemKey));
|
||||
Assert.Equal("tags", machine.ReadString(Data.Models.Metadata.Machine.TagsKey));
|
||||
Assert.Equal("year", machine.ReadString(Data.Models.Metadata.Machine.YearKey));
|
||||
@@ -686,7 +686,7 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
Assert.Equal("name", chip.Name);
|
||||
Assert.True(chip.SoundOnly);
|
||||
Assert.Equal("tag", chip.ReadString(Data.Models.Metadata.Chip.TagKey));
|
||||
Assert.Equal("cpu", chip.ReadString(Data.Models.Metadata.Chip.ChipTypeKey));
|
||||
Assert.Equal(Data.Models.Metadata.ChipType.CPU, chip.ChipType);
|
||||
}
|
||||
|
||||
private static void ValidateMetadataCondition(Data.Models.Metadata.Condition? condition)
|
||||
@@ -694,7 +694,7 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
Assert.NotNull(condition);
|
||||
Assert.Equal("value", condition.ReadString(Data.Models.Metadata.Condition.ValueKey));
|
||||
Assert.Equal("mask", condition.ReadString(Data.Models.Metadata.Condition.MaskKey));
|
||||
Assert.Equal("eq", condition.ReadString(Data.Models.Metadata.Condition.RelationKey));
|
||||
Assert.Equal(Data.Models.Metadata.Relation.Equal, condition.Relation);
|
||||
Assert.Equal("tag", condition.ReadString(Data.Models.Metadata.Condition.TagKey));
|
||||
}
|
||||
|
||||
@@ -749,7 +749,7 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
Assert.Equal(12345, control.ReadLong(Data.Models.Metadata.Control.ReqButtonsKey));
|
||||
Assert.True(control.Reverse);
|
||||
Assert.Equal(12345, control.ReadLong(Data.Models.Metadata.Control.SensitivityKey));
|
||||
Assert.Equal("lightgun", control.ReadString(Data.Models.Metadata.Control.ControlTypeKey));
|
||||
Assert.Equal(Data.Models.Metadata.ControlType.Lightgun, control.ControlType);
|
||||
Assert.Equal("ways", control.ReadString(Data.Models.Metadata.Control.WaysKey));
|
||||
Assert.Equal("ways2", control.ReadString(Data.Models.Metadata.Control.Ways2Key));
|
||||
Assert.Equal("ways3", control.ReadString(Data.Models.Metadata.Control.Ways3Key));
|
||||
@@ -758,7 +758,7 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
private static void ValidateMetadataDataArea(Data.Models.Metadata.DataArea? dataArea)
|
||||
{
|
||||
Assert.NotNull(dataArea);
|
||||
Assert.Equal("big", dataArea.ReadString(Data.Models.Metadata.DataArea.EndiannessKey));
|
||||
Assert.Equal(Data.Models.Metadata.Endianness.Big, dataArea.Endianness);
|
||||
Assert.Equal("name", dataArea.Name);
|
||||
Assert.Equal(12345, dataArea.ReadLong(Data.Models.Metadata.DataArea.SizeKey));
|
||||
Assert.Equal(64, dataArea.ReadLong(Data.Models.Metadata.DataArea.WidthKey));
|
||||
@@ -776,7 +776,7 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
Assert.Equal("interface", device.ReadString(Data.Models.Metadata.Device.InterfaceKey));
|
||||
Assert.Equal(1, device.ReadLong(Data.Models.Metadata.Device.MandatoryKey));
|
||||
Assert.Equal("tag", device.ReadString(Data.Models.Metadata.Device.TagKey));
|
||||
Assert.Equal("punchtape", device.ReadString(Data.Models.Metadata.Device.DeviceTypeKey));
|
||||
Assert.Equal(Data.Models.Metadata.DeviceType.PunchTape, device.DeviceType);
|
||||
|
||||
Data.Models.Metadata.Extension[]? extensions = device.ReadArray<Data.Models.Metadata.Extension>(Data.Models.Metadata.Device.ExtensionKey);
|
||||
Assert.NotNull(extensions);
|
||||
@@ -876,7 +876,7 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
Assert.Equal(12345, display.ReadLong(Data.Models.Metadata.Display.RefreshKey));
|
||||
Assert.Equal(90, display.ReadLong(Data.Models.Metadata.Display.RotateKey));
|
||||
Assert.Equal("tag", display.ReadString(Data.Models.Metadata.Display.TagKey));
|
||||
Assert.Equal("vector", display.ReadString(Data.Models.Metadata.Display.DisplayTypeKey));
|
||||
Assert.Equal(Data.Models.Metadata.DisplayType.Vector, display.DisplayType);
|
||||
Assert.Equal(12345, display.ReadLong(Data.Models.Metadata.Display.VBEndKey));
|
||||
Assert.Equal(12345, display.ReadLong(Data.Models.Metadata.Display.VBStartKey));
|
||||
Assert.Equal(12345, display.ReadLong(Data.Models.Metadata.Display.VTotalKey));
|
||||
@@ -886,17 +886,17 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
private static void ValidateMetadataDriver(Data.Models.Metadata.Driver? driver)
|
||||
{
|
||||
Assert.NotNull(driver);
|
||||
Assert.Equal("plain", driver.ReadString(Data.Models.Metadata.Driver.BlitKey));
|
||||
Assert.Equal("good", driver.ReadString(Data.Models.Metadata.Driver.CocktailKey));
|
||||
Assert.Equal("good", driver.ReadString(Data.Models.Metadata.Driver.ColorKey));
|
||||
Assert.Equal("good", driver.ReadString(Data.Models.Metadata.Driver.EmulationKey));
|
||||
Assert.Equal(Data.Models.Metadata.Blit.Plain, driver.Blit);
|
||||
Assert.Equal(Data.Models.Metadata.SupportStatus.Good, driver.Cocktail);
|
||||
Assert.Equal(Data.Models.Metadata.SupportStatus.Good, driver.Color);
|
||||
Assert.Equal(Data.Models.Metadata.SupportStatus.Good, driver.Emulation);
|
||||
Assert.True(driver.Incomplete);
|
||||
Assert.True(driver.NoSoundHardware);
|
||||
Assert.Equal("pallettesize", driver.ReadString(Data.Models.Metadata.Driver.PaletteSizeKey));
|
||||
Assert.True(driver.RequiresArtwork);
|
||||
Assert.Equal("supported", driver.ReadString(Data.Models.Metadata.Driver.SaveStateKey));
|
||||
Assert.Equal("good", driver.ReadString(Data.Models.Metadata.Driver.SoundKey));
|
||||
Assert.Equal("good", driver.ReadString(Data.Models.Metadata.Driver.StatusKey));
|
||||
Assert.Equal(Data.Models.Metadata.Supported.Yes, driver.SaveState);
|
||||
Assert.Equal(Data.Models.Metadata.SupportStatus.Good, driver.Sound);
|
||||
Assert.Equal(Data.Models.Metadata.SupportStatus.Good, driver.Status);
|
||||
Assert.True(driver.Unofficial);
|
||||
}
|
||||
|
||||
@@ -910,9 +910,9 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
{
|
||||
Assert.NotNull(feature);
|
||||
Assert.Equal("name", feature.Name);
|
||||
Assert.Equal("imperfect", feature.ReadString(Data.Models.Metadata.Feature.OverallKey));
|
||||
Assert.Equal("imperfect", feature.ReadString(Data.Models.Metadata.Feature.StatusKey));
|
||||
Assert.Equal("protection", feature.ReadString(Data.Models.Metadata.Feature.FeatureTypeKey));
|
||||
Assert.Equal(Data.Models.Metadata.FeatureStatus.Imperfect, feature.Overall);
|
||||
Assert.Equal(Data.Models.Metadata.FeatureStatus.Imperfect, feature.Status);
|
||||
Assert.Equal(Data.Models.Metadata.FeatureType.Protection, feature.FeatureType);
|
||||
Assert.Equal("value", feature.ReadString(Data.Models.Metadata.Feature.ValueKey));
|
||||
}
|
||||
|
||||
@@ -1070,12 +1070,12 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
Assert.True(rom.Inverted);
|
||||
Assert.Equal("mtime", rom.ReadString(Data.Models.Metadata.Rom.LastModifiedTimeKey));
|
||||
Assert.Equal("length", rom.ReadString(Data.Models.Metadata.Rom.LengthKey));
|
||||
Assert.Equal("load16_byte", rom.ReadString(Data.Models.Metadata.Rom.LoadFlagKey));
|
||||
Assert.Equal(Data.Models.Metadata.LoadFlag.Load16Byte, rom.LoadFlag);
|
||||
Assert.Equal("matrix_number", rom.ReadString(Data.Models.Metadata.Rom.MatrixNumberKey));
|
||||
Assert.Equal(HashType.MD2.ZeroString, rom.ReadString(Data.Models.Metadata.Rom.MD2Key));
|
||||
Assert.Equal(HashType.MD4.ZeroString, rom.ReadString(Data.Models.Metadata.Rom.MD4Key));
|
||||
Assert.Equal(HashType.MD5.ZeroString, rom.ReadString(Data.Models.Metadata.Rom.MD5Key));
|
||||
Assert.Null(rom.ReadString(Data.Models.Metadata.Rom.OpenMSXMediaType)); // Omit due to other test
|
||||
Assert.Null(rom.OpenMSXMediaType); // Omit due to other test
|
||||
Assert.Equal("merge", rom.ReadString(Data.Models.Metadata.Rom.MergeKey));
|
||||
Assert.True(rom.MIA);
|
||||
Assert.Equal("name", rom.Name);
|
||||
@@ -1108,7 +1108,7 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
Assert.Equal("source", rom.ReadString(Data.Models.Metadata.Rom.SourceKey));
|
||||
Assert.Equal(HashType.SpamSum.ZeroString, rom.ReadString(Data.Models.Metadata.Rom.SpamSumKey));
|
||||
Assert.Equal("start", rom.ReadString(Data.Models.Metadata.Rom.StartKey));
|
||||
Assert.Equal("good", rom.ReadString(Data.Models.Metadata.Rom.StatusKey));
|
||||
Assert.Equal(Data.Models.Metadata.ItemStatus.Good, rom.Status);
|
||||
Assert.Equal("summation", rom.ReadString(Data.Models.Metadata.Rom.SummationKey));
|
||||
Assert.Equal("title", rom.ReadString(Data.Models.Metadata.Rom.TitleKey));
|
||||
Assert.Equal("track", rom.ReadString(Data.Models.Metadata.Rom.TrackKey));
|
||||
@@ -1191,7 +1191,7 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
Assert.Equal("filter", softwareList.ReadString(Data.Models.Metadata.SoftwareList.FilterKey));
|
||||
Assert.Equal("name", softwareList.Name);
|
||||
Assert.Equal("notes", softwareList.ReadString(Data.Models.Metadata.SoftwareList.NotesKey));
|
||||
Assert.Equal("original", softwareList.ReadString(Data.Models.Metadata.SoftwareList.StatusKey));
|
||||
Assert.Equal(Data.Models.Metadata.SoftwareListStatus.Original, softwareList.Status);
|
||||
Assert.Equal("tag", softwareList.ReadString(Data.Models.Metadata.SoftwareList.TagKey));
|
||||
|
||||
// TODO: Figure out why Data.Models.Metadata.SoftwareList.SoftwareKey doesn't get processed
|
||||
@@ -1259,7 +1259,7 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
Assert.Equal(12345, video.ReadLong(Data.Models.Metadata.Video.HeightKey));
|
||||
Assert.Equal("vertical", video.ReadString(Data.Models.Metadata.Video.OrientationKey));
|
||||
Assert.Equal(12345, video.ReadLong(Data.Models.Metadata.Video.RefreshKey));
|
||||
Assert.Equal("vector", video.ReadString(Data.Models.Metadata.Video.ScreenKey));
|
||||
Assert.Equal(Data.Models.Metadata.DisplayType.Vector, video.Screen);
|
||||
Assert.Equal(12345, video.ReadLong(Data.Models.Metadata.Video.WidthKey));
|
||||
}
|
||||
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
using SabreTools.Data.Extensions;
|
||||
using SabreTools.Hashing;
|
||||
using SabreTools.Metadata.DatItems;
|
||||
using SabreTools.Metadata.DatItems.Formats;
|
||||
using Xunit;
|
||||
using ItemStatus = SabreTools.Data.Models.Metadata.ItemStatus;
|
||||
@@ -255,7 +253,7 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
{
|
||||
var disk = new Disk();
|
||||
|
||||
disk.Write<string?>(Data.Models.Metadata.Disk.StatusKey, ItemStatus.Good.AsStringValue());
|
||||
disk.Status = ItemStatus.Good;
|
||||
disk.Write<string?>(Data.Models.Metadata.Disk.MD5Key, HashType.MD5.ZeroString);
|
||||
disk.Write<string?>(Data.Models.Metadata.Disk.SHA1Key, HashType.SHA1.ZeroString);
|
||||
|
||||
@@ -301,7 +299,7 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
{
|
||||
var rom = new Rom();
|
||||
|
||||
rom.Write<string?>(Data.Models.Metadata.Rom.StatusKey, ItemStatus.Good.AsStringValue());
|
||||
rom.Status = ItemStatus.Good;
|
||||
rom.Write<long>(Data.Models.Metadata.Rom.SizeKey, 1);
|
||||
rom.Write<string?>(Data.Models.Metadata.Rom.CRC16Key, HashType.CRC16.ZeroString);
|
||||
rom.Write<string?>(Data.Models.Metadata.Rom.CRCKey, HashType.CRC32.ZeroString);
|
||||
|
||||
@@ -185,7 +185,7 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
|
||||
Assert.NotNull(actual);
|
||||
Assert.True(actual.SequenceEqual([
|
||||
Data.Models.Metadata.Chip.ChipTypeKey,
|
||||
nameof(Data.Models.Metadata.Chip.ChipType),
|
||||
nameof(Data.Models.Metadata.Chip.Name),
|
||||
]));
|
||||
}
|
||||
@@ -200,7 +200,7 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
|
||||
Assert.NotNull(actual);
|
||||
Assert.True(actual.SequenceEqual([
|
||||
Data.Models.Metadata.Display.DisplayTypeKey,
|
||||
nameof(Data.Models.Metadata.Display.DisplayType),
|
||||
Data.Models.Metadata.Display.RotateKey,
|
||||
]));
|
||||
}
|
||||
@@ -258,8 +258,8 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
|
||||
Assert.NotNull(actual);
|
||||
Assert.True(actual.SequenceEqual([
|
||||
Data.Models.Metadata.Driver.StatusKey,
|
||||
Data.Models.Metadata.Driver.EmulationKey,
|
||||
nameof(Data.Models.Metadata.Driver.Status),
|
||||
nameof(Data.Models.Metadata.Driver.Emulation),
|
||||
]));
|
||||
}
|
||||
|
||||
@@ -865,7 +865,7 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
Assert.NotNull(actual);
|
||||
Assert.True(actual.SequenceEqual([
|
||||
nameof(Data.Models.Metadata.Chip.Name),
|
||||
Data.Models.Metadata.Chip.ChipTypeKey,
|
||||
nameof(Data.Models.Metadata.Chip.ChipType),
|
||||
]));
|
||||
}
|
||||
|
||||
@@ -879,7 +879,7 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
|
||||
Assert.NotNull(actual);
|
||||
Assert.True(actual.SequenceEqual([
|
||||
Data.Models.Metadata.Display.DisplayTypeKey,
|
||||
nameof(Data.Models.Metadata.Display.DisplayType),
|
||||
Data.Models.Metadata.Display.RefreshKey,
|
||||
]));
|
||||
}
|
||||
@@ -980,10 +980,10 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
|
||||
Assert.NotNull(actual);
|
||||
Assert.True(actual.SequenceEqual([
|
||||
Data.Models.Metadata.Driver.StatusKey,
|
||||
Data.Models.Metadata.Driver.EmulationKey,
|
||||
Data.Models.Metadata.Driver.CocktailKey,
|
||||
Data.Models.Metadata.Driver.SaveStateKey,
|
||||
nameof(Data.Models.Metadata.Driver.Status),
|
||||
nameof(Data.Models.Metadata.Driver.Emulation),
|
||||
nameof(Data.Models.Metadata.Driver.Cocktail),
|
||||
nameof(Data.Models.Metadata.Driver.SaveState),
|
||||
]));
|
||||
}
|
||||
|
||||
@@ -997,7 +997,7 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
|
||||
Assert.NotNull(actual);
|
||||
Assert.True(actual.SequenceEqual([
|
||||
Data.Models.Metadata.Feature.FeatureTypeKey,
|
||||
nameof(Data.Models.Metadata.Feature.FeatureType),
|
||||
]));
|
||||
}
|
||||
|
||||
@@ -1011,7 +1011,7 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
|
||||
Assert.NotNull(actual);
|
||||
Assert.True(actual.SequenceEqual([
|
||||
Data.Models.Metadata.Device.DeviceTypeKey,
|
||||
nameof(Data.Models.Metadata.Device.DeviceType),
|
||||
]));
|
||||
}
|
||||
|
||||
@@ -1041,7 +1041,7 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
Assert.True(actual.SequenceEqual([
|
||||
Data.Models.Metadata.SoftwareList.TagKey,
|
||||
nameof(Data.Models.Metadata.SoftwareList.Name),
|
||||
Data.Models.Metadata.SoftwareList.StatusKey,
|
||||
nameof(Data.Models.Metadata.SoftwareList.Status),
|
||||
]));
|
||||
}
|
||||
|
||||
@@ -1210,10 +1210,10 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
|
||||
Assert.NotNull(actual);
|
||||
Assert.True(actual.SequenceEqual([
|
||||
Data.Models.Metadata.Driver.StatusKey,
|
||||
Data.Models.Metadata.Driver.EmulationKey,
|
||||
Data.Models.Metadata.Driver.CocktailKey,
|
||||
Data.Models.Metadata.Driver.SaveStateKey,
|
||||
nameof(Data.Models.Metadata.Driver.Status),
|
||||
nameof(Data.Models.Metadata.Driver.Emulation),
|
||||
nameof(Data.Models.Metadata.Driver.Cocktail),
|
||||
nameof(Data.Models.Metadata.Driver.SaveState),
|
||||
]));
|
||||
}
|
||||
|
||||
@@ -1229,7 +1229,7 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
Assert.True(actual.SequenceEqual([
|
||||
Data.Models.Metadata.SoftwareList.TagKey,
|
||||
nameof(Data.Models.Metadata.SoftwareList.Name),
|
||||
Data.Models.Metadata.SoftwareList.StatusKey,
|
||||
nameof(Data.Models.Metadata.SoftwareList.Status),
|
||||
]));
|
||||
}
|
||||
|
||||
|
||||
@@ -26,8 +26,9 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
_ = dict.AddItem(disk, machineIndex, sourceIndex, statsOnly: false);
|
||||
|
||||
DatItem actual = Assert.Single(dict.GetItemsForBucket("default")).Value;
|
||||
Assert.True(actual is Disk);
|
||||
Assert.Equal("none", actual.ReadString(Data.Models.Metadata.Disk.StatusKey));
|
||||
Disk? actualDisk = actual as Disk;
|
||||
Assert.NotNull(actualDisk);
|
||||
Assert.Equal(Data.Models.Metadata.ItemStatus.None, actualDisk.Status);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
@@ -45,8 +46,9 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
_ = dict.AddItem(disk, machineIndex, sourceIndex, statsOnly: false);
|
||||
|
||||
DatItem actual = Assert.Single(dict.GetItemsForBucket("default")).Value;
|
||||
Assert.True(actual is Disk);
|
||||
Assert.Equal("nodump", actual.ReadString(Data.Models.Metadata.Disk.StatusKey));
|
||||
Disk? actualDisk = actual as Disk;
|
||||
Assert.NotNull(actualDisk);
|
||||
Assert.Equal(Data.Models.Metadata.ItemStatus.Nodump, actualDisk.Status);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
@@ -144,10 +146,11 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
_ = dict.AddItem(rom, machineIndex, sourceIndex, statsOnly: false);
|
||||
|
||||
DatItem actual = Assert.Single(dict.GetItemsForBucket("default")).Value;
|
||||
Assert.True(actual is Rom);
|
||||
Rom? actualRom = actual as Rom;
|
||||
Assert.NotNull(actualRom);
|
||||
Assert.Equal(12345, actual.ReadLong(Data.Models.Metadata.Rom.SizeKey));
|
||||
Assert.Equal("deadbeef", actual.ReadString(Data.Models.Metadata.Rom.SHA1Key));
|
||||
Assert.Equal("none", actual.ReadString(Data.Models.Metadata.Rom.StatusKey));
|
||||
Assert.Equal(Data.Models.Metadata.ItemStatus.None, actualRom.Status);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
@@ -166,10 +169,11 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
_ = dict.AddItem(rom, machineIndex, sourceIndex, statsOnly: false);
|
||||
|
||||
DatItem actual = Assert.Single(dict.GetItemsForBucket("default")).Value;
|
||||
Assert.True(actual is Rom);
|
||||
Rom? actualRom = actual as Rom;
|
||||
Assert.NotNull(actualRom);
|
||||
Assert.Equal(12345, actual.ReadLong(Data.Models.Metadata.Rom.SizeKey));
|
||||
Assert.Null(actual.ReadString(Data.Models.Metadata.Rom.SHA1Key));
|
||||
Assert.Equal("nodump", actual.ReadString(Data.Models.Metadata.Rom.StatusKey));
|
||||
Assert.Equal(Data.Models.Metadata.ItemStatus.Nodump, actualRom.Status);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
@@ -188,10 +192,11 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
_ = dict.AddItem(rom, machineIndex, sourceIndex, statsOnly: false);
|
||||
|
||||
DatItem actual = Assert.Single(dict.GetItemsForBucket("default")).Value;
|
||||
Assert.True(actual is Rom);
|
||||
Rom? actualRom = actual as Rom;
|
||||
Assert.NotNull(actualRom);
|
||||
Assert.Null(actual.ReadLong(Data.Models.Metadata.Rom.SizeKey));
|
||||
Assert.Equal("deadbeef", actual.ReadString(Data.Models.Metadata.Rom.SHA1Key));
|
||||
Assert.Equal("none", actual.ReadString(Data.Models.Metadata.Rom.StatusKey));
|
||||
Assert.Equal(Data.Models.Metadata.ItemStatus.None, actualRom.Status);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
@@ -209,10 +214,11 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
_ = dict.AddItem(rom, machineIndex, sourceIndex, statsOnly: false);
|
||||
|
||||
DatItem actual = Assert.Single(dict.GetItemsForBucket("default")).Value;
|
||||
Assert.True(actual is Rom);
|
||||
Rom? actualRom = actual as Rom;
|
||||
Assert.NotNull(actualRom);
|
||||
Assert.Equal(0, actual.ReadLong(Data.Models.Metadata.Rom.SizeKey));
|
||||
Assert.Equal(HashType.SHA1.ZeroString, actual.ReadString(Data.Models.Metadata.Rom.SHA1Key));
|
||||
Assert.Equal("none", actual.ReadString(Data.Models.Metadata.Rom.StatusKey));
|
||||
Assert.Equal(Data.Models.Metadata.ItemStatus.None, actualRom.Status);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
|
||||
@@ -26,8 +26,9 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
_ = dict.AddItem(disk, statsOnly: false);
|
||||
|
||||
DatItem actual = Assert.Single(dict.GetItemsForBucket("default"));
|
||||
Assert.True(actual is Disk);
|
||||
Assert.Equal("none", actual.ReadString(Data.Models.Metadata.Disk.StatusKey));
|
||||
Disk? actualDisk = actual as Disk;
|
||||
Assert.NotNull(actualDisk);
|
||||
Assert.Equal(Data.Models.Metadata.ItemStatus.None, actualDisk.Status);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
@@ -45,8 +46,9 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
_ = dict.AddItem(disk, statsOnly: false);
|
||||
|
||||
DatItem actual = Assert.Single(dict.GetItemsForBucket("default"));
|
||||
Assert.True(actual is Disk);
|
||||
Assert.Equal("nodump", actual.ReadString(Data.Models.Metadata.Disk.StatusKey));
|
||||
Disk? actualDisk = actual as Disk;
|
||||
Assert.NotNull(actualDisk);
|
||||
Assert.Equal(Data.Models.Metadata.ItemStatus.Nodump, actualDisk.Status);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
@@ -66,7 +68,7 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
|
||||
DatItem actual = Assert.Single(dict.GetItemsForBucket("default"));
|
||||
Assert.True(actual is File);
|
||||
//Assert.Equal("none", actual.GetStringFieldValue(File.StatusKey));
|
||||
//Assert.Equal(ItemStatus.None, actual.GetStringFieldValue(File.StatusKey));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
@@ -85,7 +87,7 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
|
||||
DatItem actual = Assert.Single(dict.GetItemsForBucket("default"));
|
||||
Assert.True(actual is File);
|
||||
//Assert.Equal("nodump", actual.GetStringFieldValue(File.StatusKey));
|
||||
//Assert.Equal(Data.Models.Metadata.ItemStatus.Nodump, actual.GetStringFieldValue(File.StatusKey));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
@@ -105,7 +107,7 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
|
||||
DatItem actual = Assert.Single(dict.GetItemsForBucket("default"));
|
||||
Assert.True(actual is Media);
|
||||
//Assert.Equal("none", actual.GetStringFieldValue(Data.Models.Metadata.Media.StatusKey));
|
||||
//Assert.Equal(ItemStatus.None, actual.GetStringFieldValue(Data.Models.Metadata.Media.StatusKey));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
@@ -124,7 +126,7 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
|
||||
DatItem actual = Assert.Single(dict.GetItemsForBucket("default"));
|
||||
Assert.True(actual is Media);
|
||||
//Assert.Equal("nodump", actual.GetStringFieldValue(Data.Models.Metadata.Media.StatusKey));
|
||||
//Assert.Equal(Data.Models.Metadata.ItemStatus.Nodump, actual.GetStringFieldValue(Data.Models.Metadata.Media.StatusKey));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
@@ -144,10 +146,11 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
_ = dict.AddItem(rom, statsOnly: false);
|
||||
|
||||
DatItem actual = Assert.Single(dict.GetItemsForBucket("default"));
|
||||
Assert.True(actual is Rom);
|
||||
Rom? actualRom = actual as Rom;
|
||||
Assert.NotNull(actualRom);
|
||||
Assert.Equal(12345, actual.ReadLong(Data.Models.Metadata.Rom.SizeKey));
|
||||
Assert.Equal("deadbeef", actual.ReadString(Data.Models.Metadata.Rom.SHA1Key));
|
||||
Assert.Equal("none", actual.ReadString(Data.Models.Metadata.Rom.StatusKey));
|
||||
Assert.Equal(Data.Models.Metadata.ItemStatus.None, actualRom.Status);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
@@ -166,10 +169,11 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
_ = dict.AddItem(rom, statsOnly: false);
|
||||
|
||||
DatItem actual = Assert.Single(dict.GetItemsForBucket("default"));
|
||||
Assert.True(actual is Rom);
|
||||
Rom? actualRom = actual as Rom;
|
||||
Assert.NotNull(actualRom);
|
||||
Assert.Equal(12345, actual.ReadLong(Data.Models.Metadata.Rom.SizeKey));
|
||||
Assert.Null(actual.ReadString(Data.Models.Metadata.Rom.SHA1Key));
|
||||
Assert.Equal("nodump", actual.ReadString(Data.Models.Metadata.Rom.StatusKey));
|
||||
Assert.Equal(Data.Models.Metadata.ItemStatus.Nodump, actualRom.Status);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
@@ -188,10 +192,11 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
_ = dict.AddItem(rom, statsOnly: false);
|
||||
|
||||
DatItem actual = Assert.Single(dict.GetItemsForBucket("default"));
|
||||
Assert.True(actual is Rom);
|
||||
Rom? actualRom = actual as Rom;
|
||||
Assert.NotNull(actualRom);
|
||||
Assert.Null(actual.ReadLong(Data.Models.Metadata.Rom.SizeKey));
|
||||
Assert.Equal("deadbeef", actual.ReadString(Data.Models.Metadata.Rom.SHA1Key));
|
||||
Assert.Equal("none", actual.ReadString(Data.Models.Metadata.Rom.StatusKey));
|
||||
Assert.Equal(Data.Models.Metadata.ItemStatus.None, actualRom.Status);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
@@ -209,10 +214,11 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
_ = dict.AddItem(rom, statsOnly: false);
|
||||
|
||||
DatItem actual = Assert.Single(dict.GetItemsForBucket("default"));
|
||||
Assert.True(actual is Rom);
|
||||
Rom? actualRom = actual as Rom;
|
||||
Assert.NotNull(actualRom);
|
||||
Assert.Equal(0, actual.ReadLong(Data.Models.Metadata.Rom.SizeKey));
|
||||
Assert.Equal(HashType.SHA1.ZeroString, actual.ReadString(Data.Models.Metadata.Rom.SHA1Key));
|
||||
Assert.Equal("none", actual.ReadString(Data.Models.Metadata.Rom.StatusKey));
|
||||
Assert.Equal(Data.Models.Metadata.ItemStatus.None, actualRom.Status);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
|
||||
@@ -6,7 +6,6 @@ using System.Threading.Tasks;
|
||||
using SabreTools.Metadata.Filter;
|
||||
using SabreTools.Metadata.DatItems;
|
||||
using SabreTools.Metadata.DatItems.Formats;
|
||||
using SabreTools.Data.Extensions;
|
||||
using MergingFlag = SabreTools.Data.Models.Metadata.MergingFlag;
|
||||
using NodumpFlag = SabreTools.Data.Models.Metadata.NodumpFlag;
|
||||
using PackingFlag = SabreTools.Data.Models.Metadata.PackingFlag;
|
||||
@@ -93,8 +92,8 @@ namespace SabreTools.Metadata.DatFiles
|
||||
// Selectively set all possible fields -- TODO: Figure out how to make this less manual
|
||||
if (Header.ReadString(Data.Models.Metadata.Header.AuthorKey) is null)
|
||||
Header.Write<string?>(Data.Models.Metadata.Header.AuthorKey, header.ReadString(Data.Models.Metadata.Header.AuthorKey));
|
||||
if (Header.ReadString(Data.Models.Metadata.Header.BiosModeKey).AsMergingFlag() == MergingFlag.None)
|
||||
Header.Write<string?>(Data.Models.Metadata.Header.BiosModeKey, header.ReadString(Data.Models.Metadata.Header.BiosModeKey).AsMergingFlag().AsStringValue());
|
||||
if (Header.BiosMode == MergingFlag.None)
|
||||
Header.BiosMode = header.BiosMode;
|
||||
if (Header.ReadString(Data.Models.Metadata.Header.BuildKey) is null)
|
||||
Header.Write<string?>(Data.Models.Metadata.Header.BuildKey, header.ReadString(Data.Models.Metadata.Header.BuildKey));
|
||||
if (Header.ReadString(Data.Models.Metadata.Header.CategoryKey) is null)
|
||||
@@ -113,12 +112,12 @@ namespace SabreTools.Metadata.DatFiles
|
||||
Header.Write<string?>(Data.Models.Metadata.Header.EmailKey, header.ReadString(Data.Models.Metadata.Header.EmailKey));
|
||||
if (Header.ReadString(Data.Models.Metadata.Header.EmulatorVersionKey) is null)
|
||||
Header.Write<string?>(Data.Models.Metadata.Header.EmulatorVersionKey, header.ReadString(Data.Models.Metadata.Header.EmulatorVersionKey));
|
||||
if (Header.ReadString(Data.Models.Metadata.Header.ForceMergingKey).AsMergingFlag() == MergingFlag.None)
|
||||
Header.Write<string?>(Data.Models.Metadata.Header.ForceMergingKey, header.ReadString(Data.Models.Metadata.Header.ForceMergingKey).AsMergingFlag().AsStringValue());
|
||||
if (Header.ReadString(Data.Models.Metadata.Header.ForceNodumpKey).AsNodumpFlag() == NodumpFlag.None)
|
||||
Header.Write<string?>(Data.Models.Metadata.Header.ForceNodumpKey, header.ReadString(Data.Models.Metadata.Header.ForceNodumpKey).AsNodumpFlag().AsStringValue());
|
||||
if (Header.ReadString(Data.Models.Metadata.Header.ForcePackingKey).AsPackingFlag() == PackingFlag.None)
|
||||
Header.Write<string?>(Data.Models.Metadata.Header.ForcePackingKey, header.ReadString(Data.Models.Metadata.Header.ForcePackingKey).AsPackingFlag().AsStringValue());
|
||||
if (Header.ForceMerging == MergingFlag.None)
|
||||
Header.ForceMerging = header.ForceMerging;
|
||||
if (Header.ForceNodump == NodumpFlag.None)
|
||||
Header.ForceNodump = header.ForceNodump;
|
||||
if (Header.ForcePacking == PackingFlag.None)
|
||||
Header.ForcePacking = header.ForcePacking;
|
||||
if (Header.ForceZipping is null)
|
||||
Header.ForceZipping = header.ForceZipping;
|
||||
if (Header.ReadString(Data.Models.Metadata.Header.HeaderKey) is null)
|
||||
@@ -145,14 +144,14 @@ namespace SabreTools.Metadata.DatFiles
|
||||
Header.Write<string?>(Data.Models.Metadata.Header.PluginKey, header.ReadString(Data.Models.Metadata.Header.PluginKey));
|
||||
if (Header.ReadString(Data.Models.Metadata.Header.RefNameKey) is null)
|
||||
Header.Write<string?>(Data.Models.Metadata.Header.RefNameKey, header.ReadString(Data.Models.Metadata.Header.RefNameKey));
|
||||
if (Header.ReadString(Data.Models.Metadata.Header.RomModeKey).AsMergingFlag() == MergingFlag.None)
|
||||
Header.Write<string?>(Data.Models.Metadata.Header.RomModeKey, header.ReadString(Data.Models.Metadata.Header.RomModeKey).AsMergingFlag().AsStringValue());
|
||||
if (Header.RomMode == MergingFlag.None)
|
||||
Header.RomMode = header.RomMode;
|
||||
if (Header.ReadString(Data.Models.Metadata.Header.RomTitleKey) is null)
|
||||
Header.Write<string?>(Data.Models.Metadata.Header.RomTitleKey, header.ReadString(Data.Models.Metadata.Header.RomTitleKey));
|
||||
if (Header.ReadString(Data.Models.Metadata.Header.RootDirKey) is null)
|
||||
Header.Write<string?>(Data.Models.Metadata.Header.RootDirKey, header.ReadString(Data.Models.Metadata.Header.RootDirKey));
|
||||
if (Header.ReadString(Data.Models.Metadata.Header.SampleModeKey).AsMergingFlag() == MergingFlag.None)
|
||||
Header.Write<string?>(Data.Models.Metadata.Header.SampleModeKey, header.ReadString(Data.Models.Metadata.Header.SampleModeKey).AsMergingFlag().AsStringValue());
|
||||
if (Header.SampleMode == MergingFlag.None)
|
||||
Header.SampleMode = header.SampleMode;
|
||||
if (Header.ReadString(Data.Models.Metadata.Header.SchemaLocationKey) is null)
|
||||
Header.Write<string?>(Data.Models.Metadata.Header.SchemaLocationKey, header.ReadString(Data.Models.Metadata.Header.SchemaLocationKey));
|
||||
if (Header.ReadString(Data.Models.Metadata.Header.ScreenshotsHeightKey) is null)
|
||||
@@ -613,10 +612,10 @@ namespace SabreTools.Metadata.DatFiles
|
||||
long? size = romItem.ReadLong(Data.Models.Metadata.Rom.SizeKey);
|
||||
|
||||
// If the rom is a continue or ignore
|
||||
string? loadFlag = rom.ReadString(Data.Models.Metadata.Rom.LoadFlagKey);
|
||||
Data.Models.Metadata.LoadFlag? loadFlag = rom.LoadFlag;
|
||||
if (loadFlag is not null
|
||||
&& (loadFlag.Equals("continue", StringComparison.OrdinalIgnoreCase)
|
||||
|| loadFlag.Equals("ignore", StringComparison.OrdinalIgnoreCase)))
|
||||
&& (loadFlag == Data.Models.Metadata.LoadFlag.Continue
|
||||
|| loadFlag == Data.Models.Metadata.LoadFlag.Ignore))
|
||||
{
|
||||
var lastRom = addRoms[addRoms.Count - 1];
|
||||
long? lastSize = lastRom.ReadLong(Data.Models.Metadata.Rom.SizeKey);
|
||||
|
||||
@@ -358,7 +358,7 @@ namespace SabreTools.Metadata.DatFiles
|
||||
else
|
||||
{
|
||||
aggregateDataArea = [];
|
||||
aggregateDataArea[Data.Models.Metadata.DataArea.EndiannessKey] = dataArea.ReadString(Data.Models.Metadata.DataArea.EndiannessKey);
|
||||
aggregateDataArea.Endianness = dataArea.Endianness;
|
||||
aggregateDataArea.Name = dataArea.Name;
|
||||
aggregateDataArea[Data.Models.Metadata.DataArea.SizeKey] = dataArea.ReadString(Data.Models.Metadata.DataArea.SizeKey);
|
||||
aggregateDataArea[Data.Models.Metadata.DataArea.WidthKey] = dataArea.ReadString(Data.Models.Metadata.DataArea.WidthKey);
|
||||
@@ -784,7 +784,7 @@ namespace SabreTools.Metadata.DatFiles
|
||||
else
|
||||
{
|
||||
aggregateDataArea = [];
|
||||
aggregateDataArea[Data.Models.Metadata.DataArea.EndiannessKey] = dataArea.ReadString(Data.Models.Metadata.DataArea.EndiannessKey);
|
||||
aggregateDataArea.Endianness = dataArea.Endianness;
|
||||
aggregateDataArea.Name = dataArea.Name;
|
||||
aggregateDataArea[Data.Models.Metadata.DataArea.SizeKey] = dataArea.ReadString(Data.Models.Metadata.DataArea.SizeKey);
|
||||
aggregateDataArea[Data.Models.Metadata.DataArea.WidthKey] = dataArea.ReadString(Data.Models.Metadata.DataArea.WidthKey);
|
||||
@@ -937,7 +937,7 @@ namespace SabreTools.Metadata.DatFiles
|
||||
[Data.Models.Metadata.Video.AspectYKey] = displayItem.ReadLong(Data.Models.Metadata.Video.AspectYKey).ToString(),
|
||||
[Data.Models.Metadata.Video.HeightKey] = displayItem.ReadLong(Data.Models.Metadata.Display.HeightKey).ToString(),
|
||||
[Data.Models.Metadata.Video.RefreshKey] = displayItem.ReadDouble(Data.Models.Metadata.Display.RefreshKey).ToString(),
|
||||
[Data.Models.Metadata.Video.ScreenKey] = displayItem.ReadString(Data.Models.Metadata.Display.DisplayTypeKey).AsDisplayType()?.AsStringValue(),
|
||||
Screen = displayItem.DisplayType,
|
||||
[Data.Models.Metadata.Video.WidthKey] = displayItem.ReadLong(Data.Models.Metadata.Display.WidthKey).ToString()
|
||||
};
|
||||
|
||||
@@ -977,7 +977,7 @@ namespace SabreTools.Metadata.DatFiles
|
||||
var romItem = item.GetInternalClone();
|
||||
|
||||
// Create a Dump for every Rom that has a subtype
|
||||
switch (romItem.ReadString(Data.Models.Metadata.Rom.OpenMSXMediaType).AsOpenMSXSubType())
|
||||
switch (romItem.OpenMSXMediaType)
|
||||
{
|
||||
case OpenMSXSubType.Rom:
|
||||
var dumpRom = new Data.Models.Metadata.Dump();
|
||||
|
||||
@@ -37,6 +37,12 @@ namespace SabreTools.Metadata.DatFiles
|
||||
set => _internal.Name = value;
|
||||
}
|
||||
|
||||
public MergingFlag BiosMode
|
||||
{
|
||||
get => _internal.BiosMode;
|
||||
set => _internal.BiosMode = value;
|
||||
}
|
||||
|
||||
[JsonIgnore]
|
||||
public bool CanOpenSpecified
|
||||
{
|
||||
@@ -53,6 +59,24 @@ namespace SabreTools.Metadata.DatFiles
|
||||
set => _internal.Debug = value;
|
||||
}
|
||||
|
||||
public MergingFlag ForceMerging
|
||||
{
|
||||
get => _internal.ForceMerging;
|
||||
set => _internal.ForceMerging = value;
|
||||
}
|
||||
|
||||
public NodumpFlag ForceNodump
|
||||
{
|
||||
get => _internal.ForceNodump;
|
||||
set => _internal.ForceNodump = value;
|
||||
}
|
||||
|
||||
public PackingFlag ForcePacking
|
||||
{
|
||||
get => _internal.ForcePacking;
|
||||
set => _internal.ForcePacking = value;
|
||||
}
|
||||
|
||||
public bool? ForceZipping
|
||||
{
|
||||
get => _internal.ForceZipping;
|
||||
@@ -104,6 +128,18 @@ namespace SabreTools.Metadata.DatFiles
|
||||
}
|
||||
}
|
||||
|
||||
public MergingFlag RomMode
|
||||
{
|
||||
get => _internal.RomMode;
|
||||
set => _internal.RomMode = value;
|
||||
}
|
||||
|
||||
public MergingFlag SampleMode
|
||||
{
|
||||
get => _internal.SampleMode;
|
||||
set => _internal.SampleMode = value;
|
||||
}
|
||||
|
||||
[JsonIgnore]
|
||||
public bool SearchSpecified
|
||||
{
|
||||
@@ -152,20 +188,6 @@ namespace SabreTools.Metadata.DatFiles
|
||||
{
|
||||
var header = (_internal.Clone() as Data.Models.Metadata.Header)!;
|
||||
|
||||
// Remove fields with default values
|
||||
if (header.ReadString(Data.Models.Metadata.Header.ForceMergingKey).AsMergingFlag() == MergingFlag.None)
|
||||
header.Remove(Data.Models.Metadata.Header.ForceMergingKey);
|
||||
if (header.ReadString(Data.Models.Metadata.Header.ForceNodumpKey).AsNodumpFlag() == NodumpFlag.None)
|
||||
header.Remove(Data.Models.Metadata.Header.ForceNodumpKey);
|
||||
if (header.ReadString(Data.Models.Metadata.Header.ForcePackingKey).AsPackingFlag() == PackingFlag.None)
|
||||
header.Remove(Data.Models.Metadata.Header.ForcePackingKey);
|
||||
if (header.ReadString(Data.Models.Metadata.Header.BiosModeKey).AsMergingFlag() == MergingFlag.None)
|
||||
header.Remove(Data.Models.Metadata.Header.BiosModeKey);
|
||||
if (header.ReadString(Data.Models.Metadata.Header.RomModeKey).AsMergingFlag() == MergingFlag.None)
|
||||
header.Remove(Data.Models.Metadata.Header.RomModeKey);
|
||||
if (header.ReadString(Data.Models.Metadata.Header.SampleModeKey).AsMergingFlag() == MergingFlag.None)
|
||||
header.Remove(Data.Models.Metadata.Header.SampleModeKey);
|
||||
|
||||
// Convert subheader values
|
||||
if (CanOpenSpecified)
|
||||
header[Data.Models.Metadata.Header.CanOpenKey] = new Data.Models.OfflineList.CanOpen { Extension = ReadStringArray(Data.Models.Metadata.Header.CanOpenKey) };
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
using System.Collections.Generic;
|
||||
using SabreTools.Data.Extensions;
|
||||
using SabreTools.Hashing;
|
||||
using SabreTools.Metadata.DatItems;
|
||||
using SabreTools.Metadata.DatItems.Formats;
|
||||
@@ -408,7 +407,7 @@ namespace SabreTools.Metadata.DatFiles
|
||||
/// <param name="disk">Item to add info from</param>
|
||||
private void AddItemStatistics(Disk disk)
|
||||
{
|
||||
ItemStatus? status = disk.ReadString(Data.Models.Metadata.Disk.StatusKey).AsItemStatus();
|
||||
ItemStatus? status = disk.Status;
|
||||
if (status != ItemStatus.Nodump)
|
||||
{
|
||||
AddHashCount(HashType.MD5, string.IsNullOrEmpty(disk.ReadString(Data.Models.Metadata.Disk.MD5Key)) ? 0 : 1);
|
||||
@@ -427,7 +426,7 @@ namespace SabreTools.Metadata.DatFiles
|
||||
/// <param name="disk">Item to add info from</param>
|
||||
private void AddItemStatistics(Data.Models.Metadata.Disk disk)
|
||||
{
|
||||
ItemStatus? status = disk.ReadString(Data.Models.Metadata.Disk.StatusKey).AsItemStatus();
|
||||
ItemStatus? status = disk.Status;
|
||||
if (status != ItemStatus.Nodump)
|
||||
{
|
||||
AddHashCount(HashType.MD5, string.IsNullOrEmpty(disk.ReadString(Data.Models.Metadata.Disk.MD5Key)) ? 0 : 1);
|
||||
@@ -483,7 +482,7 @@ namespace SabreTools.Metadata.DatFiles
|
||||
/// <param name="rom">Item to add info from</param>
|
||||
private void AddItemStatistics(Rom rom)
|
||||
{
|
||||
ItemStatus? status = rom.ReadString(Data.Models.Metadata.Rom.StatusKey).AsItemStatus();
|
||||
ItemStatus? status = rom.Status;
|
||||
if (status != ItemStatus.Nodump)
|
||||
{
|
||||
TotalSize += rom.ReadLong(Data.Models.Metadata.Rom.SizeKey) ?? 0;
|
||||
@@ -514,7 +513,7 @@ namespace SabreTools.Metadata.DatFiles
|
||||
/// <param name="rom">Item to add info from</param>
|
||||
private void AddItemStatistics(Data.Models.Metadata.Rom rom)
|
||||
{
|
||||
ItemStatus? status = rom.ReadString(Data.Models.Metadata.Rom.StatusKey).AsItemStatus();
|
||||
ItemStatus? status = rom.Status;
|
||||
if (status != ItemStatus.Nodump)
|
||||
{
|
||||
TotalSize += rom.ReadLong(Data.Models.Metadata.Rom.SizeKey) ?? 0;
|
||||
@@ -599,7 +598,7 @@ namespace SabreTools.Metadata.DatFiles
|
||||
/// <param name="disk">Item to remove info for</param>
|
||||
private void RemoveItemStatistics(Disk disk)
|
||||
{
|
||||
ItemStatus? status = disk.ReadString(Data.Models.Metadata.Disk.StatusKey).AsItemStatus();
|
||||
ItemStatus? status = disk.Status;
|
||||
if (status != ItemStatus.Nodump)
|
||||
{
|
||||
RemoveHashCount(HashType.MD5, string.IsNullOrEmpty(disk.ReadString(Data.Models.Metadata.Disk.MD5Key)) ? 0 : 1);
|
||||
@@ -618,7 +617,7 @@ namespace SabreTools.Metadata.DatFiles
|
||||
/// <param name="disk">Item to remove info for</param>
|
||||
private void RemoveItemStatistics(Data.Models.Metadata.Disk disk)
|
||||
{
|
||||
ItemStatus? status = disk.ReadString(Data.Models.Metadata.Disk.StatusKey).AsItemStatus();
|
||||
ItemStatus? status = disk.Status;
|
||||
if (status != ItemStatus.Nodump)
|
||||
{
|
||||
RemoveHashCount(HashType.MD5, string.IsNullOrEmpty(disk.ReadString(Data.Models.Metadata.Disk.MD5Key)) ? 0 : 1);
|
||||
@@ -674,7 +673,7 @@ namespace SabreTools.Metadata.DatFiles
|
||||
/// <param name="rom">Item to remove info for</param>
|
||||
private void RemoveItemStatistics(Rom rom)
|
||||
{
|
||||
ItemStatus? status = rom.ReadString(Data.Models.Metadata.Rom.StatusKey).AsItemStatus();
|
||||
ItemStatus? status = rom.Status;
|
||||
if (status != ItemStatus.Nodump)
|
||||
{
|
||||
TotalSize -= rom.ReadLong(Data.Models.Metadata.Rom.SizeKey) ?? 0;
|
||||
@@ -705,7 +704,7 @@ namespace SabreTools.Metadata.DatFiles
|
||||
/// <param name="rom">Item to remove info for</param>
|
||||
private void RemoveItemStatistics(Data.Models.Metadata.Rom rom)
|
||||
{
|
||||
ItemStatus? status = rom.ReadString(Data.Models.Metadata.Rom.StatusKey).AsItemStatus();
|
||||
ItemStatus? status = rom.Status;
|
||||
if (status != ItemStatus.Nodump)
|
||||
{
|
||||
TotalSize -= rom.ReadLong(Data.Models.Metadata.Rom.SizeKey) ?? 0;
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
using System;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using SabreTools.Data.Extensions;
|
||||
using SabreTools.Metadata.DatItems;
|
||||
using SabreTools.Metadata.DatItems.Formats;
|
||||
using SabreTools.Metadata.Filter;
|
||||
@@ -134,15 +133,15 @@ namespace SabreTools.Metadata.DatFiles.Formats
|
||||
break;
|
||||
|
||||
case Chip chip:
|
||||
if (chip.ReadString(Data.Models.Metadata.Chip.ChipTypeKey).AsChipType() is null)
|
||||
missingFields.Add(Data.Models.Metadata.Chip.ChipTypeKey);
|
||||
if (chip.ChipType is null)
|
||||
missingFields.Add(nameof(Data.Models.Metadata.Chip.ChipType));
|
||||
if (string.IsNullOrEmpty(chip.GetName()))
|
||||
missingFields.Add(nameof(Data.Models.Metadata.Chip.Name));
|
||||
break;
|
||||
|
||||
case Display display:
|
||||
if (display.ReadString(Data.Models.Metadata.Display.DisplayTypeKey).AsDisplayType() is null)
|
||||
missingFields.Add(Data.Models.Metadata.Display.DisplayTypeKey);
|
||||
if (display.DisplayType is null)
|
||||
missingFields.Add(nameof(Data.Models.Metadata.Display.DisplayType));
|
||||
if (display.ReadLong(Data.Models.Metadata.Display.RotateKey) is null)
|
||||
missingFields.Add(Data.Models.Metadata.Display.RotateKey);
|
||||
break;
|
||||
@@ -165,10 +164,10 @@ namespace SabreTools.Metadata.DatFiles.Formats
|
||||
break;
|
||||
|
||||
case Driver driver:
|
||||
if (driver.ReadString(Data.Models.Metadata.Driver.StatusKey).AsSupportStatus() is null)
|
||||
missingFields.Add(Data.Models.Metadata.Driver.StatusKey);
|
||||
if (driver.ReadString(Data.Models.Metadata.Driver.EmulationKey).AsSupportStatus() is null)
|
||||
missingFields.Add(Data.Models.Metadata.Driver.EmulationKey);
|
||||
if (driver.Status is null)
|
||||
missingFields.Add(nameof(Data.Models.Metadata.Driver.Status));
|
||||
if (driver.Emulation is null)
|
||||
missingFields.Add(nameof(Data.Models.Metadata.Driver.Emulation));
|
||||
break;
|
||||
|
||||
default:
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using SabreTools.Data.Extensions;
|
||||
using SabreTools.Metadata.DatItems;
|
||||
using SabreTools.Metadata.DatItems.Formats;
|
||||
using SabreTools.Metadata.Filter;
|
||||
@@ -304,13 +303,13 @@ namespace SabreTools.Metadata.DatFiles.Formats
|
||||
case Chip chip:
|
||||
if (string.IsNullOrEmpty(chip.GetName()))
|
||||
missingFields.Add(nameof(Data.Models.Metadata.Chip.Name));
|
||||
if (chip.ReadString(Data.Models.Metadata.Chip.ChipTypeKey).AsChipType() is null)
|
||||
missingFields.Add(Data.Models.Metadata.Chip.ChipTypeKey);
|
||||
if (chip.ChipType is null)
|
||||
missingFields.Add(nameof(Data.Models.Metadata.Chip.ChipType));
|
||||
break;
|
||||
|
||||
case Display display:
|
||||
if (display.ReadString(Data.Models.Metadata.Display.DisplayTypeKey).AsDisplayType() is null)
|
||||
missingFields.Add(Data.Models.Metadata.Display.DisplayTypeKey);
|
||||
if (display.DisplayType is null)
|
||||
missingFields.Add(nameof(Data.Models.Metadata.Display.DisplayType));
|
||||
if (display.ReadDouble(Data.Models.Metadata.Display.RefreshKey) is null)
|
||||
missingFields.Add(Data.Models.Metadata.Display.RefreshKey);
|
||||
break;
|
||||
@@ -350,24 +349,24 @@ namespace SabreTools.Metadata.DatFiles.Formats
|
||||
break;
|
||||
|
||||
case Driver driver:
|
||||
if (driver.ReadString(Data.Models.Metadata.Driver.StatusKey).AsSupportStatus() is null)
|
||||
missingFields.Add(Data.Models.Metadata.Driver.StatusKey);
|
||||
if (driver.ReadString(Data.Models.Metadata.Driver.EmulationKey).AsSupportStatus() is null)
|
||||
missingFields.Add(Data.Models.Metadata.Driver.EmulationKey);
|
||||
if (driver.ReadString(Data.Models.Metadata.Driver.CocktailKey).AsSupportStatus() is null)
|
||||
missingFields.Add(Data.Models.Metadata.Driver.CocktailKey);
|
||||
if (driver.ReadString(Data.Models.Metadata.Driver.SaveStateKey).AsSupportStatus() is null)
|
||||
missingFields.Add(Data.Models.Metadata.Driver.SaveStateKey);
|
||||
if (driver.Status is null)
|
||||
missingFields.Add(nameof(Data.Models.Metadata.Driver.Status));
|
||||
if (driver.Emulation is null)
|
||||
missingFields.Add(nameof(Data.Models.Metadata.Driver.Emulation));
|
||||
if (driver.Cocktail is null)
|
||||
missingFields.Add(nameof(Data.Models.Metadata.Driver.Cocktail));
|
||||
if (driver.SaveState is null)
|
||||
missingFields.Add(nameof(Data.Models.Metadata.Driver.SaveState));
|
||||
break;
|
||||
|
||||
case Feature feature:
|
||||
if (feature.ReadString(Data.Models.Metadata.Feature.FeatureTypeKey).AsFeatureType() is null)
|
||||
missingFields.Add(Data.Models.Metadata.Feature.FeatureTypeKey);
|
||||
if (feature.FeatureType is null)
|
||||
missingFields.Add(nameof(Data.Models.Metadata.Feature.FeatureType));
|
||||
break;
|
||||
|
||||
case Device device:
|
||||
if (device.ReadString(Data.Models.Metadata.Device.DeviceTypeKey).AsDeviceType() is null)
|
||||
missingFields.Add(Data.Models.Metadata.Device.DeviceTypeKey);
|
||||
if (device.DeviceType is null)
|
||||
missingFields.Add(nameof(Data.Models.Metadata.Device.DeviceType));
|
||||
break;
|
||||
|
||||
case Slot slot:
|
||||
@@ -380,8 +379,8 @@ namespace SabreTools.Metadata.DatFiles.Formats
|
||||
missingFields.Add(Data.Models.Metadata.SoftwareList.TagKey);
|
||||
if (string.IsNullOrEmpty(softwarelist.GetName()))
|
||||
missingFields.Add(nameof(Data.Models.Metadata.SoftwareList.Name));
|
||||
if (softwarelist.ReadString(Data.Models.Metadata.SoftwareList.StatusKey).AsSoftwareListStatus() == null)
|
||||
missingFields.Add(Data.Models.Metadata.SoftwareList.StatusKey);
|
||||
if (softwarelist.Status == null)
|
||||
missingFields.Add(nameof(Data.Models.Metadata.SoftwareList.Status));
|
||||
break;
|
||||
|
||||
case RamOption ramoption:
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using SabreTools.Data.Extensions;
|
||||
using SabreTools.Metadata.DatItems;
|
||||
using SabreTools.Metadata.DatItems.Formats;
|
||||
|
||||
@@ -344,14 +343,14 @@ namespace SabreTools.Metadata.DatFiles.Formats
|
||||
break;
|
||||
|
||||
case Driver driver:
|
||||
if (driver.ReadString(Data.Models.Metadata.Driver.StatusKey).AsSupportStatus() is null)
|
||||
missingFields.Add(Data.Models.Metadata.Driver.StatusKey);
|
||||
if (driver.ReadString(Data.Models.Metadata.Driver.EmulationKey).AsSupportStatus() is null)
|
||||
missingFields.Add(Data.Models.Metadata.Driver.EmulationKey);
|
||||
if (driver.ReadString(Data.Models.Metadata.Driver.CocktailKey).AsSupportStatus() is null)
|
||||
missingFields.Add(Data.Models.Metadata.Driver.CocktailKey);
|
||||
if (driver.ReadString(Data.Models.Metadata.Driver.SaveStateKey).AsSupportStatus() is null)
|
||||
missingFields.Add(Data.Models.Metadata.Driver.SaveStateKey);
|
||||
if (driver.Status is null)
|
||||
missingFields.Add(nameof(Data.Models.Metadata.Driver.Status));
|
||||
if (driver.Emulation is null)
|
||||
missingFields.Add(nameof(Data.Models.Metadata.Driver.Emulation));
|
||||
if (driver.Cocktail is null)
|
||||
missingFields.Add(nameof(Data.Models.Metadata.Driver.Cocktail));
|
||||
if (driver.SaveState is null)
|
||||
missingFields.Add(nameof(Data.Models.Metadata.Driver.SaveState));
|
||||
break;
|
||||
|
||||
case DatItems.Formats.SoftwareList softwarelist:
|
||||
@@ -359,8 +358,8 @@ namespace SabreTools.Metadata.DatFiles.Formats
|
||||
missingFields.Add(Data.Models.Metadata.SoftwareList.TagKey);
|
||||
if (string.IsNullOrEmpty(softwarelist.GetName()))
|
||||
missingFields.Add(nameof(Data.Models.Metadata.SoftwareList.Name));
|
||||
if (softwarelist.ReadString(Data.Models.Metadata.SoftwareList.StatusKey).AsSoftwareListStatus() == null)
|
||||
missingFields.Add(Data.Models.Metadata.SoftwareList.StatusKey);
|
||||
if (softwarelist.Status == null)
|
||||
missingFields.Add(nameof(Data.Models.Metadata.SoftwareList.Status));
|
||||
break;
|
||||
|
||||
default:
|
||||
|
||||
@@ -14,7 +14,6 @@ using SabreTools.Hashing;
|
||||
using SabreTools.Logging;
|
||||
using SabreTools.Text.Compare;
|
||||
using SabreTools.Text.Extensions;
|
||||
using SabreTools.Data.Extensions;
|
||||
using ItemStatus = SabreTools.Data.Models.Metadata.ItemStatus;
|
||||
|
||||
namespace SabreTools.Metadata.DatFiles
|
||||
@@ -99,12 +98,12 @@ namespace SabreTools.Metadata.DatFiles
|
||||
if (item is Disk disk)
|
||||
{
|
||||
// If the file has aboslutely no hashes, skip and log
|
||||
if (disk.ReadString(Data.Models.Metadata.Disk.StatusKey).AsItemStatus() != ItemStatus.Nodump
|
||||
if (disk.Status != ItemStatus.Nodump
|
||||
&& string.IsNullOrEmpty(disk.ReadString(Data.Models.Metadata.Disk.MD5Key))
|
||||
&& string.IsNullOrEmpty(disk.ReadString(Data.Models.Metadata.Disk.SHA1Key)))
|
||||
{
|
||||
_logger.Verbose($"Incomplete entry for '{disk.GetName()}' will be output as nodump");
|
||||
disk.Write<string?>(Data.Models.Metadata.Disk.StatusKey, ItemStatus.Nodump.AsStringValue());
|
||||
disk.Status = ItemStatus.Nodump;
|
||||
}
|
||||
|
||||
item = disk;
|
||||
@@ -167,19 +166,19 @@ namespace SabreTools.Metadata.DatFiles
|
||||
}
|
||||
|
||||
// If the file has no size and it's not the above case, skip and log
|
||||
else if (rom.ReadString(Data.Models.Metadata.Rom.StatusKey).AsItemStatus() != ItemStatus.Nodump && (size == 0 || size is null))
|
||||
else if (rom.Status != ItemStatus.Nodump && (size == 0 || size is null))
|
||||
{
|
||||
//logger.Verbose($"{Header.GetStringFieldValue(DatHeader.FileNameKey)}: Incomplete entry for '{rom.GetName()}' will be output as nodump");
|
||||
rom.Write<string?>(Data.Models.Metadata.Rom.StatusKey, ItemStatus.Nodump.AsStringValue());
|
||||
rom.Status = ItemStatus.Nodump;
|
||||
}
|
||||
|
||||
// If the file has a size but aboslutely no hashes, skip and log
|
||||
else if (rom.ReadString(Data.Models.Metadata.Rom.StatusKey).AsItemStatus() != ItemStatus.Nodump
|
||||
else if (rom.Status != ItemStatus.Nodump
|
||||
&& size is not null && size > 0
|
||||
&& !rom.HasHashes())
|
||||
{
|
||||
//logger.Verbose($"{Header.GetStringFieldValue(DatHeader.FileNameKey)}: Incomplete entry for '{rom.GetName()}' will be output as nodump");
|
||||
rom.Write<string?>(Data.Models.Metadata.Rom.StatusKey, ItemStatus.Nodump.AsStringValue());
|
||||
rom.Status = ItemStatus.Nodump;
|
||||
}
|
||||
|
||||
item = rom;
|
||||
@@ -497,13 +496,13 @@ namespace SabreTools.Metadata.DatFiles
|
||||
continue;
|
||||
|
||||
// If it's a nodump, add and skip
|
||||
if (datItem is Rom rom && rom.ReadString(Data.Models.Metadata.Rom.StatusKey).AsItemStatus() == ItemStatus.Nodump)
|
||||
if (datItem is Rom rom && rom.Status == ItemStatus.Nodump)
|
||||
{
|
||||
output.Add(datItem);
|
||||
nodumpCount++;
|
||||
continue;
|
||||
}
|
||||
else if (datItem is Disk disk && disk.ReadString(Data.Models.Metadata.Disk.StatusKey).AsItemStatus() == ItemStatus.Nodump)
|
||||
else if (datItem is Disk disk && disk.Status == ItemStatus.Nodump)
|
||||
{
|
||||
output.Add(datItem);
|
||||
nodumpCount++;
|
||||
|
||||
@@ -16,7 +16,6 @@ using SabreTools.Hashing;
|
||||
using SabreTools.Logging;
|
||||
using SabreTools.Text.Compare;
|
||||
using SabreTools.Text.Extensions;
|
||||
using SabreTools.Data.Extensions;
|
||||
using ItemStatus = SabreTools.Data.Models.Metadata.ItemStatus;
|
||||
|
||||
/*
|
||||
@@ -188,12 +187,12 @@ namespace SabreTools.Metadata.DatFiles
|
||||
if (item is Disk disk)
|
||||
{
|
||||
// If the file has aboslutely no hashes, skip and log
|
||||
if (disk.ReadString(Data.Models.Metadata.Disk.StatusKey).AsItemStatus() != ItemStatus.Nodump
|
||||
if (disk.Status != ItemStatus.Nodump
|
||||
&& string.IsNullOrEmpty(disk.ReadString(Data.Models.Metadata.Disk.MD5Key))
|
||||
&& string.IsNullOrEmpty(disk.ReadString(Data.Models.Metadata.Disk.SHA1Key)))
|
||||
{
|
||||
_logger.Verbose($"Incomplete entry for '{disk.GetName()}' will be output as nodump");
|
||||
disk.Write<string?>(Data.Models.Metadata.Disk.StatusKey, ItemStatus.Nodump.AsStringValue());
|
||||
disk.Status = ItemStatus.Nodump;
|
||||
}
|
||||
|
||||
item = disk;
|
||||
@@ -256,19 +255,19 @@ namespace SabreTools.Metadata.DatFiles
|
||||
}
|
||||
|
||||
// If the file has no size and it's not the above case, skip and log
|
||||
else if (rom.ReadString(Data.Models.Metadata.Rom.StatusKey).AsItemStatus() != ItemStatus.Nodump && (size == 0 || size is null))
|
||||
else if (rom.Status != ItemStatus.Nodump && (size == 0 || size is null))
|
||||
{
|
||||
//logger.Verbose($"{Header.GetStringFieldValue(DatHeader.FileNameKey)}: Incomplete entry for '{rom.GetName()}' will be output as nodump");
|
||||
rom.Write<string?>(Data.Models.Metadata.Rom.StatusKey, ItemStatus.Nodump.AsStringValue());
|
||||
rom.Status = ItemStatus.Nodump;
|
||||
}
|
||||
|
||||
// If the file has a size but aboslutely no hashes, skip and log
|
||||
else if (rom.ReadString(Data.Models.Metadata.Rom.StatusKey).AsItemStatus() != ItemStatus.Nodump
|
||||
else if (rom.Status != ItemStatus.Nodump
|
||||
&& size is not null && size > 0
|
||||
&& !rom.HasHashes())
|
||||
{
|
||||
//logger.Verbose($"{Header.GetStringFieldValue(DatHeader.FileNameKey)}: Incomplete entry for '{rom.GetName()}' will be output as nodump");
|
||||
rom.Write<string?>(Data.Models.Metadata.Rom.StatusKey, ItemStatus.Nodump.AsStringValue());
|
||||
rom.Status = ItemStatus.Nodump;
|
||||
}
|
||||
|
||||
item = rom;
|
||||
@@ -873,13 +872,13 @@ namespace SabreTools.Metadata.DatFiles
|
||||
continue;
|
||||
|
||||
// If it's a nodump, add and skip
|
||||
if (datItem is Rom rom && rom.ReadString(Data.Models.Metadata.Rom.StatusKey).AsItemStatus() == ItemStatus.Nodump)
|
||||
if (datItem is Rom rom && rom.Status == ItemStatus.Nodump)
|
||||
{
|
||||
output.Add(new KeyValuePair<long, DatItem>(itemIndex, datItem));
|
||||
nodumpCount++;
|
||||
continue;
|
||||
}
|
||||
else if (datItem is Disk disk && disk.ReadString(Data.Models.Metadata.Disk.StatusKey).AsItemStatus() == ItemStatus.Nodump)
|
||||
else if (datItem is Disk disk && disk.Status == ItemStatus.Nodump)
|
||||
{
|
||||
output.Add(new KeyValuePair<long, DatItem>(itemIndex, datItem));
|
||||
nodumpCount++;
|
||||
|
||||
@@ -26,7 +26,7 @@ namespace SabreTools.Metadata.DatItems.Formats.Test
|
||||
disk.Write(Disk.DiskAreaKey, diskArea);
|
||||
disk.Write(Data.Models.Metadata.Disk.MergeKey, "XXXXXX");
|
||||
disk.Write(Data.Models.Metadata.Disk.RegionKey, "XXXXXX");
|
||||
disk.Write(Data.Models.Metadata.Disk.StatusKey, "good");
|
||||
disk.Status = Data.Models.Metadata.ItemStatus.Good;
|
||||
disk.Optional = true;
|
||||
disk.Write(Data.Models.Metadata.Disk.MD5Key, HashType.MD5.ZeroString);
|
||||
disk.Write(Data.Models.Metadata.Disk.SHA1Key, HashType.SHA1.ZeroString);
|
||||
@@ -41,7 +41,7 @@ namespace SabreTools.Metadata.DatItems.Formats.Test
|
||||
Assert.Equal("XXXXXX.chd", actual.GetName());
|
||||
Assert.Equal("XXXXXX", actual.ReadString(Data.Models.Metadata.Rom.MergeKey));
|
||||
Assert.Equal("XXXXXX", actual.ReadString(Data.Models.Metadata.Rom.RegionKey));
|
||||
Assert.Equal("good", actual.ReadString(Data.Models.Metadata.Rom.StatusKey));
|
||||
Assert.Equal(Data.Models.Metadata.ItemStatus.Good, actual.Status);
|
||||
Assert.Equal(true, actual.Optional);
|
||||
Assert.Equal(HashType.MD5.ZeroString, actual.ReadString(Data.Models.Metadata.Rom.MD5Key));
|
||||
Assert.Equal(HashType.SHA1.ZeroString, actual.ReadString(Data.Models.Metadata.Rom.SHA1Key));
|
||||
|
||||
@@ -12,7 +12,12 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
{
|
||||
#region Fields
|
||||
|
||||
[JsonIgnore]
|
||||
public Data.Models.Metadata.ChipType? ChipType
|
||||
{
|
||||
get => (_internal as Data.Models.Metadata.Chip)?.ChipType;
|
||||
set => (_internal as Data.Models.Metadata.Chip)?.ChipType = value;
|
||||
}
|
||||
|
||||
public bool? SoundOnly
|
||||
{
|
||||
get => (_internal as Data.Models.Metadata.Chip)?.SoundOnly;
|
||||
@@ -25,13 +30,7 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
|
||||
public Chip() : base() { }
|
||||
|
||||
public Chip(Data.Models.Metadata.Chip item) : base(item)
|
||||
{
|
||||
// Process flag values
|
||||
string? chipType = ReadString(Data.Models.Metadata.Chip.ChipTypeKey);
|
||||
if (chipType is not null)
|
||||
Write<string?>(Data.Models.Metadata.Chip.ChipTypeKey, chipType.AsChipType()?.AsStringValue());
|
||||
}
|
||||
public Chip(Data.Models.Metadata.Chip item) : base(item) { }
|
||||
|
||||
public Chip(Data.Models.Metadata.Chip item, Machine machine, Source source) : this(item)
|
||||
{
|
||||
|
||||
@@ -10,17 +10,21 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
[JsonObject("condition"), XmlRoot("condition")]
|
||||
public sealed class Condition : DatItem<Data.Models.Metadata.Condition>
|
||||
{
|
||||
#region Fields
|
||||
|
||||
public Data.Models.Metadata.Relation? Relation
|
||||
{
|
||||
get => (_internal as Data.Models.Metadata.Condition)?.Relation;
|
||||
set => (_internal as Data.Models.Metadata.Condition)?.Relation = value;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Constructors
|
||||
|
||||
public Condition() : base() { }
|
||||
|
||||
public Condition(Data.Models.Metadata.Condition item) : base(item)
|
||||
{
|
||||
// Process flag values
|
||||
string? condition = ReadString(Data.Models.Metadata.Condition.RelationKey);
|
||||
if (condition is not null)
|
||||
Write<string?>(Data.Models.Metadata.Condition.RelationKey, condition.AsRelation()?.AsStringValue());
|
||||
}
|
||||
public Condition(Data.Models.Metadata.Condition item) : base(item) { }
|
||||
|
||||
public Condition(Data.Models.Metadata.Condition item, Machine machine, Source source) : this(item)
|
||||
{
|
||||
|
||||
@@ -12,6 +12,12 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
{
|
||||
#region Fields
|
||||
|
||||
public Data.Models.Metadata.ControlType? ControlType
|
||||
{
|
||||
get => (_internal as Data.Models.Metadata.Control)?.ControlType;
|
||||
set => (_internal as Data.Models.Metadata.Control)?.ControlType = value;
|
||||
}
|
||||
|
||||
public bool? Reverse
|
||||
{
|
||||
get => (_internal as Data.Models.Metadata.Control)?.Reverse;
|
||||
@@ -54,10 +60,6 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
long? sensitivity = ReadLong(Data.Models.Metadata.Control.SensitivityKey);
|
||||
if (sensitivity is not null)
|
||||
Write<string?>(Data.Models.Metadata.Control.SensitivityKey, sensitivity.ToString());
|
||||
|
||||
string? controlType = ReadString(Data.Models.Metadata.Control.ControlTypeKey);
|
||||
if (controlType is not null)
|
||||
Write<string?>(Data.Models.Metadata.Control.ControlTypeKey, controlType.AsControlType()?.AsStringValue());
|
||||
}
|
||||
|
||||
public Control(Data.Models.Metadata.Control item, Machine machine, Source source) : this(item)
|
||||
|
||||
@@ -11,6 +11,16 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
[JsonObject("dataarea"), XmlRoot("dataarea")]
|
||||
public sealed class DataArea : DatItem<Data.Models.Metadata.DataArea>
|
||||
{
|
||||
#region Fields
|
||||
|
||||
public Data.Models.Metadata.Endianness? Endianness
|
||||
{
|
||||
get => (_internal as Data.Models.Metadata.DataArea)?.Endianness;
|
||||
set => (_internal as Data.Models.Metadata.DataArea)?.Endianness = value;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Constructors
|
||||
|
||||
public DataArea() : base() { }
|
||||
@@ -18,10 +28,6 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
public DataArea(Data.Models.Metadata.DataArea item) : base(item)
|
||||
{
|
||||
// Process flag values
|
||||
string? endianness = ReadString(Data.Models.Metadata.DataArea.EndiannessKey);
|
||||
if (endianness is not null)
|
||||
Write<string?>(Data.Models.Metadata.DataArea.EndiannessKey, endianness.AsEndianness()?.AsStringValue());
|
||||
|
||||
long? size = ReadLong(Data.Models.Metadata.DataArea.SizeKey);
|
||||
if (size is not null)
|
||||
Write<string?>(Data.Models.Metadata.DataArea.SizeKey, size.ToString());
|
||||
|
||||
@@ -13,6 +13,12 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
{
|
||||
#region Fields
|
||||
|
||||
public Data.Models.Metadata.DeviceType? DeviceType
|
||||
{
|
||||
get => (_internal as Data.Models.Metadata.Device)?.DeviceType;
|
||||
set => (_internal as Data.Models.Metadata.Device)?.DeviceType = value;
|
||||
}
|
||||
|
||||
[JsonIgnore]
|
||||
public bool InstancesSpecified
|
||||
{
|
||||
@@ -46,10 +52,6 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
if (mandatory is not null)
|
||||
Write<string?>(Data.Models.Metadata.Device.MandatoryKey, mandatory.FromYesNo());
|
||||
|
||||
string? deviceType = ReadString(Data.Models.Metadata.Device.DeviceTypeKey);
|
||||
if (deviceType is not null)
|
||||
Write<string?>(Data.Models.Metadata.Device.DeviceTypeKey, deviceType.AsDeviceType()?.AsStringValue());
|
||||
|
||||
// Handle subitems
|
||||
var instance = item.Read<Data.Models.Metadata.Instance>(Data.Models.Metadata.Device.InstanceKey);
|
||||
if (instance is not null)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
using System.Xml.Serialization;
|
||||
using System.Xml.Serialization;
|
||||
using Newtonsoft.Json;
|
||||
using SabreTools.Data.Extensions;
|
||||
using SabreTools.Data.Models.Metadata;
|
||||
@@ -56,6 +56,12 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
}
|
||||
}
|
||||
|
||||
public ItemStatus? Status
|
||||
{
|
||||
get => (_internal as Data.Models.Metadata.Disk)?.Status;
|
||||
set => (_internal as Data.Models.Metadata.Disk)?.Status = value;
|
||||
}
|
||||
|
||||
public bool? Writable
|
||||
{
|
||||
get => (_internal as Data.Models.Metadata.Disk)?.Writable;
|
||||
@@ -69,18 +75,13 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
public Disk() : base()
|
||||
{
|
||||
Write<DupeType>(DupeTypeKey, 0x00);
|
||||
Write<string?>(Data.Models.Metadata.Disk.StatusKey, ItemStatus.None.AsStringValue());
|
||||
Status = ItemStatus.None;
|
||||
}
|
||||
|
||||
public Disk(Data.Models.Metadata.Disk item) : base(item)
|
||||
{
|
||||
Write<DupeType>(DupeTypeKey, 0x00);
|
||||
|
||||
// Process flag values
|
||||
string? status = ReadString(Data.Models.Metadata.Disk.StatusKey);
|
||||
if (status is not null)
|
||||
Write<string?>(Data.Models.Metadata.Disk.StatusKey, status.AsItemStatus()?.AsStringValue());
|
||||
|
||||
// Process hash values
|
||||
string? md5 = ReadString(Data.Models.Metadata.Disk.MD5Key);
|
||||
if (md5 is not null)
|
||||
|
||||
@@ -13,6 +13,12 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
{
|
||||
#region Fields
|
||||
|
||||
public Data.Models.Metadata.DisplayType? DisplayType
|
||||
{
|
||||
get => (_internal as Data.Models.Metadata.Display)?.DisplayType;
|
||||
set => (_internal as Data.Models.Metadata.Display)?.DisplayType = value;
|
||||
}
|
||||
|
||||
public bool? FlipX
|
||||
{
|
||||
get => (_internal as Data.Models.Metadata.Display)?.FlipX;
|
||||
@@ -56,10 +62,6 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
if (rotate is not null)
|
||||
Write<string?>(Data.Models.Metadata.Display.RotateKey, rotate.ToString());
|
||||
|
||||
string? displayType = ReadString(Data.Models.Metadata.Display.DisplayTypeKey);
|
||||
if (displayType is not null)
|
||||
Write<string?>(Data.Models.Metadata.Display.DisplayTypeKey, displayType.AsDisplayType()?.AsStringValue());
|
||||
|
||||
long? vbEnd = ReadLong(Data.Models.Metadata.Display.VBEndKey);
|
||||
if (vbEnd is not null)
|
||||
Write<string?>(Data.Models.Metadata.Display.VBEndKey, vbEnd.ToString());
|
||||
@@ -88,7 +90,7 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
// TODO: Convert this block to more traditional set of if/then
|
||||
Write(Data.Models.Metadata.Video.AspectXKey, NumberHelper.ConvertToInt64(item.ReadString(Data.Models.Metadata.Video.AspectXKey)));
|
||||
Write(Data.Models.Metadata.Video.AspectYKey, NumberHelper.ConvertToInt64(item.ReadString(Data.Models.Metadata.Video.AspectYKey)));
|
||||
Write<string?>(Data.Models.Metadata.Display.DisplayTypeKey, item.ReadString(Data.Models.Metadata.Video.ScreenKey).AsDisplayType()?.AsStringValue());
|
||||
DisplayType = item.Screen;
|
||||
Write(Data.Models.Metadata.Display.HeightKey, NumberHelper.ConvertToInt64(item.ReadString(Data.Models.Metadata.Video.HeightKey)));
|
||||
Write(Data.Models.Metadata.Display.RefreshKey, NumberHelper.ConvertToDouble(item.ReadString(Data.Models.Metadata.Video.RefreshKey)));
|
||||
Write(Data.Models.Metadata.Display.WidthKey, NumberHelper.ConvertToInt64(item.ReadString(Data.Models.Metadata.Video.WidthKey)));
|
||||
@@ -123,10 +125,6 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
if (refresh is not null)
|
||||
Write<string?>(Data.Models.Metadata.Display.RefreshKey, refresh.ToString());
|
||||
|
||||
string? screen = ReadString(Data.Models.Metadata.Video.ScreenKey);
|
||||
if (screen is not null)
|
||||
Write<string?>(Data.Models.Metadata.Display.DisplayTypeKey, screen.AsDisplayType()?.AsStringValue());
|
||||
|
||||
long? width = ReadLong(Data.Models.Metadata.Video.WidthKey);
|
||||
if (width is not null)
|
||||
Write<string?>(Data.Models.Metadata.Display.WidthKey, width.ToString());
|
||||
|
||||
@@ -12,6 +12,30 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
{
|
||||
#region Fields
|
||||
|
||||
public Data.Models.Metadata.Blit? Blit
|
||||
{
|
||||
get => (_internal as Data.Models.Metadata.Driver)?.Blit;
|
||||
set => (_internal as Data.Models.Metadata.Driver)?.Blit = value;
|
||||
}
|
||||
|
||||
public Data.Models.Metadata.SupportStatus? Cocktail
|
||||
{
|
||||
get => (_internal as Data.Models.Metadata.Driver)?.Cocktail;
|
||||
set => (_internal as Data.Models.Metadata.Driver)?.Cocktail = value;
|
||||
}
|
||||
|
||||
public Data.Models.Metadata.SupportStatus? Color
|
||||
{
|
||||
get => (_internal as Data.Models.Metadata.Driver)?.Color;
|
||||
set => (_internal as Data.Models.Metadata.Driver)?.Color = value;
|
||||
}
|
||||
|
||||
public Data.Models.Metadata.SupportStatus? Emulation
|
||||
{
|
||||
get => (_internal as Data.Models.Metadata.Driver)?.Emulation;
|
||||
set => (_internal as Data.Models.Metadata.Driver)?.Emulation = value;
|
||||
}
|
||||
|
||||
public bool? Incomplete
|
||||
{
|
||||
get => (_internal as Data.Models.Metadata.Driver)?.Incomplete;
|
||||
@@ -30,6 +54,24 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
set => (_internal as Data.Models.Metadata.Driver)?.RequiresArtwork = value;
|
||||
}
|
||||
|
||||
public Data.Models.Metadata.Supported? SaveState
|
||||
{
|
||||
get => (_internal as Data.Models.Metadata.Driver)?.SaveState;
|
||||
set => (_internal as Data.Models.Metadata.Driver)?.SaveState = value;
|
||||
}
|
||||
|
||||
public Data.Models.Metadata.SupportStatus? Sound
|
||||
{
|
||||
get => (_internal as Data.Models.Metadata.Driver)?.Sound;
|
||||
set => (_internal as Data.Models.Metadata.Driver)?.Sound = value;
|
||||
}
|
||||
|
||||
public Data.Models.Metadata.SupportStatus? Status
|
||||
{
|
||||
get => (_internal as Data.Models.Metadata.Driver)?.Status;
|
||||
set => (_internal as Data.Models.Metadata.Driver)?.Status = value;
|
||||
}
|
||||
|
||||
public bool? Unofficial
|
||||
{
|
||||
get => (_internal as Data.Models.Metadata.Driver)?.Unofficial;
|
||||
@@ -45,33 +87,9 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
public Driver(Data.Models.Metadata.Driver item) : base(item)
|
||||
{
|
||||
// Process flag values
|
||||
string? cocktail = ReadString(Data.Models.Metadata.Driver.CocktailKey);
|
||||
if (cocktail is not null)
|
||||
Write<string?>(Data.Models.Metadata.Driver.CocktailKey, cocktail.AsSupportStatus()?.AsStringValue());
|
||||
|
||||
string? color = ReadString(Data.Models.Metadata.Driver.ColorKey);
|
||||
if (color is not null)
|
||||
Write<string?>(Data.Models.Metadata.Driver.ColorKey, color.AsSupportStatus()?.AsStringValue());
|
||||
|
||||
string? emulation = ReadString(Data.Models.Metadata.Driver.EmulationKey);
|
||||
if (emulation is not null)
|
||||
Write<string?>(Data.Models.Metadata.Driver.EmulationKey, emulation.AsSupportStatus()?.AsStringValue());
|
||||
|
||||
long? paletteSize = ReadLong(Data.Models.Metadata.Driver.PaletteSizeKey);
|
||||
if (paletteSize is not null)
|
||||
Write<string?>(Data.Models.Metadata.Driver.PaletteSizeKey, paletteSize.ToString());
|
||||
|
||||
string? saveState = ReadString(Data.Models.Metadata.Driver.SaveStateKey);
|
||||
if (saveState is not null)
|
||||
Write<string?>(Data.Models.Metadata.Driver.SaveStateKey, saveState.AsSupported()?.AsStringValue(useSecond: true));
|
||||
|
||||
string? sound = ReadString(Data.Models.Metadata.Driver.SoundKey);
|
||||
if (sound is not null)
|
||||
Write<string?>(Data.Models.Metadata.Driver.SoundKey, sound.AsSupportStatus()?.AsStringValue());
|
||||
|
||||
string? status = ReadString(Data.Models.Metadata.Driver.StatusKey);
|
||||
if (status is not null)
|
||||
Write<string?>(Data.Models.Metadata.Driver.StatusKey, status.AsSupportStatus()?.AsStringValue());
|
||||
}
|
||||
|
||||
public Driver(Data.Models.Metadata.Driver item, Machine machine, Source source) : this(item)
|
||||
|
||||
@@ -10,25 +10,33 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
[JsonObject("feature"), XmlRoot("feature")]
|
||||
public sealed class Feature : DatItem<Data.Models.Metadata.Feature>
|
||||
{
|
||||
#region Fields
|
||||
|
||||
public Data.Models.Metadata.FeatureType? FeatureType
|
||||
{
|
||||
get => (_internal as Data.Models.Metadata.Feature)?.FeatureType;
|
||||
set => (_internal as Data.Models.Metadata.Feature)?.FeatureType = value;
|
||||
}
|
||||
|
||||
public Data.Models.Metadata.FeatureStatus? Overall
|
||||
{
|
||||
get => (_internal as Data.Models.Metadata.Feature)?.Overall;
|
||||
set => (_internal as Data.Models.Metadata.Feature)?.Overall = value;
|
||||
}
|
||||
|
||||
public Data.Models.Metadata.FeatureStatus? Status
|
||||
{
|
||||
get => (_internal as Data.Models.Metadata.Feature)?.Status;
|
||||
set => (_internal as Data.Models.Metadata.Feature)?.Status = value;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Constructors
|
||||
|
||||
public Feature() : base() { }
|
||||
|
||||
public Feature(Data.Models.Metadata.Feature item) : base(item)
|
||||
{
|
||||
// Process flag values
|
||||
string? overall = ReadString(Data.Models.Metadata.Feature.OverallKey);
|
||||
if (overall is not null)
|
||||
Write<string?>(Data.Models.Metadata.Feature.OverallKey, overall.AsFeatureStatus()?.AsStringValue());
|
||||
|
||||
string? status = ReadString(Data.Models.Metadata.Feature.StatusKey);
|
||||
if (status is not null)
|
||||
Write<string?>(Data.Models.Metadata.Feature.StatusKey, status.AsFeatureStatus()?.AsStringValue());
|
||||
|
||||
string? featureType = ReadString(Data.Models.Metadata.Feature.FeatureTypeKey);
|
||||
if (featureType is not null)
|
||||
Write<string?>(Data.Models.Metadata.Feature.FeatureTypeKey, featureType.AsFeatureType()?.AsStringValue());
|
||||
}
|
||||
public Feature(Data.Models.Metadata.Feature item) : base(item) { }
|
||||
|
||||
public Feature(Data.Models.Metadata.Feature item, Machine machine, Source source) : this(item)
|
||||
{
|
||||
|
||||
@@ -21,6 +21,24 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
|
||||
#region Fields
|
||||
|
||||
public Data.Models.Metadata.FeatureType? FeatureType
|
||||
{
|
||||
get => (_internal as Data.Models.Metadata.Feature)?.FeatureType;
|
||||
set => (_internal as Data.Models.Metadata.Feature)?.FeatureType = value;
|
||||
}
|
||||
|
||||
public Data.Models.Metadata.FeatureStatus? Overall
|
||||
{
|
||||
get => (_internal as Data.Models.Metadata.Feature)?.Overall;
|
||||
set => (_internal as Data.Models.Metadata.Feature)?.Overall = value;
|
||||
}
|
||||
|
||||
public Data.Models.Metadata.FeatureStatus? Status
|
||||
{
|
||||
get => (_internal as Data.Models.Metadata.Feature)?.Status;
|
||||
set => (_internal as Data.Models.Metadata.Feature)?.Status = value;
|
||||
}
|
||||
|
||||
/// <inheritdoc>/>
|
||||
/// <remarks>This needs to be set to PartFeature because internally it uses Feature</remarks>
|
||||
public override Data.Models.Metadata.ItemType ItemType => Data.Models.Metadata.ItemType.PartFeature;
|
||||
@@ -31,21 +49,7 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
|
||||
public PartFeature() : base() { }
|
||||
|
||||
public PartFeature(Data.Models.Metadata.Feature item) : base(item)
|
||||
{
|
||||
// Process flag values
|
||||
string? overall = ReadString(Data.Models.Metadata.Feature.OverallKey);
|
||||
if (overall is not null)
|
||||
Write<string?>(Data.Models.Metadata.Feature.OverallKey, overall.AsFeatureStatus()?.AsStringValue());
|
||||
|
||||
string? status = ReadString(Data.Models.Metadata.Feature.StatusKey);
|
||||
if (status is not null)
|
||||
Write<string?>(Data.Models.Metadata.Feature.StatusKey, status.AsFeatureStatus()?.AsStringValue());
|
||||
|
||||
string? featureType = ReadString(Data.Models.Metadata.Feature.FeatureTypeKey);
|
||||
if (featureType is not null)
|
||||
Write<string?>(Data.Models.Metadata.Feature.FeatureTypeKey, featureType.AsFeatureType()?.AsStringValue());
|
||||
}
|
||||
public PartFeature(Data.Models.Metadata.Feature item) : base(item) { }
|
||||
|
||||
public PartFeature(Data.Models.Metadata.Feature item, Machine machine, Source source) : this(item)
|
||||
{
|
||||
|
||||
@@ -38,7 +38,7 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
&& (!string.IsNullOrEmpty(dataArea.GetName())
|
||||
|| dataArea.ReadLong(Data.Models.Metadata.DataArea.SizeKey) is not null
|
||||
|| dataArea.ReadLong(Data.Models.Metadata.DataArea.WidthKey) is not null
|
||||
|| dataArea.ReadString(Data.Models.Metadata.DataArea.EndiannessKey).AsEndianness() is not null);
|
||||
|| dataArea.Endianness is not null);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -60,14 +60,10 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
set => (_internal as Data.Models.Metadata.Rom)?.Inverted = value;
|
||||
}
|
||||
|
||||
[JsonIgnore]
|
||||
public bool ItemStatusSpecified
|
||||
public LoadFlag? LoadFlag
|
||||
{
|
||||
get
|
||||
{
|
||||
var status = ReadString(Data.Models.Metadata.Rom.StatusKey).AsItemStatus();
|
||||
return status is not null && status != ItemStatus.None;
|
||||
}
|
||||
get => (_internal as Data.Models.Metadata.Rom)?.LoadFlag;
|
||||
set => (_internal as Data.Models.Metadata.Rom)?.LoadFlag = value;
|
||||
}
|
||||
|
||||
public bool? MIA
|
||||
@@ -76,6 +72,12 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
set => (_internal as Data.Models.Metadata.Rom)?.MIA = value;
|
||||
}
|
||||
|
||||
public OpenMSXSubType? OpenMSXMediaType
|
||||
{
|
||||
get => (_internal as Data.Models.Metadata.Rom)?.OpenMSXMediaType;
|
||||
set => (_internal as Data.Models.Metadata.Rom)?.OpenMSXMediaType = value;
|
||||
}
|
||||
|
||||
public bool? Optional
|
||||
{
|
||||
get => (_internal as Data.Models.Metadata.Rom)?.Optional;
|
||||
@@ -110,6 +112,12 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
set => (_internal as Data.Models.Metadata.Rom)?.SoundOnly = value;
|
||||
}
|
||||
|
||||
public ItemStatus? Status
|
||||
{
|
||||
get => (_internal as Data.Models.Metadata.Rom)?.Status;
|
||||
set => (_internal as Data.Models.Metadata.Rom)?.Status = value;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Constructors
|
||||
@@ -117,7 +125,7 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
public Rom() : base()
|
||||
{
|
||||
Write<DupeType>(DupeTypeKey, 0x00);
|
||||
Write<string?>(Data.Models.Metadata.Rom.StatusKey, ItemStatus.None.AsStringValue());
|
||||
Status = ItemStatus.None;
|
||||
}
|
||||
|
||||
public Rom(Dump item, Machine machine, Source source, int index)
|
||||
@@ -150,7 +158,7 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
|
||||
SetName(name);
|
||||
Write<string?>(Data.Models.Metadata.Rom.OffsetKey, rom.ReadString(Data.Models.Metadata.Rom.StartKey));
|
||||
Write<string?>(Data.Models.Metadata.Rom.OpenMSXMediaType, subType?.AsStringValue());
|
||||
OpenMSXMediaType = subType;
|
||||
Write<string?>(Data.Models.Metadata.Rom.OpenMSXType, rom.ReadString(Data.Models.Metadata.Rom.OpenMSXType) ?? rom.ItemType.ToString());
|
||||
Write<string?>(Data.Models.Metadata.Rom.RemarkKey, rom.ReadString(Data.Models.Metadata.Rom.RemarkKey));
|
||||
Write<string?>(Data.Models.Metadata.Rom.SHA1Key, rom.ReadString(Data.Models.Metadata.Rom.SHA1Key));
|
||||
@@ -229,19 +237,6 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
{
|
||||
Write<DupeType>(DupeTypeKey, 0x00);
|
||||
|
||||
// Process flag values
|
||||
string? loadFlag = ReadString(Data.Models.Metadata.Rom.LoadFlagKey);
|
||||
if (loadFlag is not null)
|
||||
Write<string?>(Data.Models.Metadata.Rom.LoadFlagKey, loadFlag.AsLoadFlag()?.AsStringValue());
|
||||
|
||||
string? openMSXMediaType = ReadString(Data.Models.Metadata.Rom.OpenMSXMediaType);
|
||||
if (openMSXMediaType is not null)
|
||||
Write<string?>(Data.Models.Metadata.Rom.OpenMSXMediaType, openMSXMediaType.AsOpenMSXSubType()?.AsStringValue());
|
||||
|
||||
string? status = ReadString(Data.Models.Metadata.Rom.StatusKey);
|
||||
if (status is not null)
|
||||
Write<string?>(Data.Models.Metadata.Rom.StatusKey, status.AsItemStatus()?.AsStringValue());
|
||||
|
||||
// Process hash values
|
||||
long? size = ReadLong(Data.Models.Metadata.Rom.SizeKey);
|
||||
if (size is not null)
|
||||
|
||||
@@ -10,17 +10,22 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
[JsonObject("softwarelist"), XmlRoot("softwarelist")]
|
||||
public sealed class SoftwareList : DatItem<Data.Models.Metadata.SoftwareList>
|
||||
{
|
||||
#region Fields
|
||||
|
||||
public Data.Models.Metadata.SoftwareListStatus? Status
|
||||
{
|
||||
get => (_internal as Data.Models.Metadata.SoftwareList)?.Status;
|
||||
set => (_internal as Data.Models.Metadata.SoftwareList)?.Status = value;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Constructors
|
||||
|
||||
public SoftwareList() : base() { }
|
||||
|
||||
public SoftwareList(Data.Models.Metadata.SoftwareList item) : base(item)
|
||||
{
|
||||
// Process flag values
|
||||
string? status = ReadString(Data.Models.Metadata.SoftwareList.StatusKey);
|
||||
if (status is not null)
|
||||
Write<string?>(Data.Models.Metadata.SoftwareList.StatusKey, status.AsSoftwareListStatus()?.AsStringValue());
|
||||
|
||||
// Handle subitems
|
||||
// TODO: Handle the Software subitem
|
||||
}
|
||||
|
||||
@@ -39,6 +39,12 @@ namespace SabreTools.Metadata.DatItems
|
||||
set => _internal.Runnable = value;
|
||||
}
|
||||
|
||||
public Data.Models.Metadata.Supported? Supported
|
||||
{
|
||||
get => _internal.Supported;
|
||||
set => _internal.Supported = value;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Constructors
|
||||
@@ -91,10 +97,6 @@ namespace SabreTools.Metadata.DatItems
|
||||
if (im2Crc is not null)
|
||||
Write<string?>(Data.Models.Metadata.Machine.Im2CRCKey, TextHelper.NormalizeCRC32(im2Crc));
|
||||
|
||||
string? supported = ReadString(Data.Models.Metadata.Machine.SupportedKey);
|
||||
if (supported is not null)
|
||||
Write<string?>(Data.Models.Metadata.Machine.SupportedKey, supported.AsSupported()?.AsStringValue());
|
||||
|
||||
// Handle Trurip object, if it exists
|
||||
var truripItem = machine.Read<Data.Models.Logiqx.Trurip>(Data.Models.Metadata.Machine.TruripKey);
|
||||
if (truripItem is not null)
|
||||
|
||||
@@ -356,10 +356,17 @@ namespace SabreTools.Metadata.Filter
|
||||
checkValue = item.Default.FromYesNo();
|
||||
return true;
|
||||
|
||||
case Chip item when Key.FieldName == "type":
|
||||
checkValue = item.ChipType?.AsStringValue();
|
||||
return true;
|
||||
case Chip item when Key.FieldName == "soundonly":
|
||||
checkValue = item.SoundOnly.FromYesNo();
|
||||
return true;
|
||||
|
||||
case Condition item when Key.FieldName == "relation":
|
||||
checkValue = item.Relation?.AsStringValue();
|
||||
return true;
|
||||
|
||||
case ConfLocation item when Key.FieldName == "inverted":
|
||||
checkValue = item.Inverted.FromYesNo();
|
||||
return true;
|
||||
@@ -368,10 +375,21 @@ namespace SabreTools.Metadata.Filter
|
||||
checkValue = item.Default.FromYesNo();
|
||||
return true;
|
||||
|
||||
case Control item when Key.FieldName == "type":
|
||||
checkValue = item.ControlType?.AsStringValue();
|
||||
return true;
|
||||
case Control item when Key.FieldName == "reverse":
|
||||
checkValue = item.Reverse.FromYesNo();
|
||||
return true;
|
||||
|
||||
case DataArea item when Key.FieldName == "endianness":
|
||||
checkValue = item.Endianness?.AsStringValue();
|
||||
return true;
|
||||
|
||||
case Device item when Key.FieldName == "type":
|
||||
checkValue = item.DeviceType?.AsStringValue();
|
||||
return true;
|
||||
|
||||
case DipLocation item when Key.FieldName == "inverted":
|
||||
checkValue = item.Inverted.FromYesNo();
|
||||
return true;
|
||||
@@ -391,6 +409,9 @@ namespace SabreTools.Metadata.Filter
|
||||
case Disk item when Key.FieldName == "optional":
|
||||
checkValue = item.Optional.FromYesNo();
|
||||
return true;
|
||||
case Disk item when Key.FieldName == "status":
|
||||
checkValue = item.Status?.AsStringValue();
|
||||
return true;
|
||||
case Disk item when Key.FieldName == "writable":
|
||||
checkValue = item.Writable.FromYesNo();
|
||||
return true;
|
||||
@@ -398,7 +419,22 @@ namespace SabreTools.Metadata.Filter
|
||||
case Display item when Key.FieldName == "flipx":
|
||||
checkValue = item.FlipX.FromYesNo();
|
||||
return true;
|
||||
case Display item when Key.FieldName == "type":
|
||||
checkValue = item.DisplayType?.AsStringValue();
|
||||
return true;
|
||||
|
||||
case Driver item when Key.FieldName == "blit":
|
||||
checkValue = item.Blit?.AsStringValue();
|
||||
return true;
|
||||
case Driver item when Key.FieldName == "cocktail":
|
||||
checkValue = item.Cocktail?.AsStringValue();
|
||||
return true;
|
||||
case Driver item when Key.FieldName == "color":
|
||||
checkValue = item.Color?.AsStringValue();
|
||||
return true;
|
||||
case Driver item when Key.FieldName == "emulation":
|
||||
checkValue = item.Emulation?.AsStringValue();
|
||||
return true;
|
||||
case Driver item when Key.FieldName == "incomplete":
|
||||
checkValue = item.Incomplete.FromYesNo();
|
||||
return true;
|
||||
@@ -408,13 +444,44 @@ namespace SabreTools.Metadata.Filter
|
||||
case Driver item when Key.FieldName == "requiresartwork":
|
||||
checkValue = item.RequiresArtwork.FromYesNo();
|
||||
return true;
|
||||
case Driver item when Key.FieldName == "savestate":
|
||||
checkValue = item.SaveState?.AsStringValue();
|
||||
return true;
|
||||
case Driver item when Key.FieldName == "sound":
|
||||
checkValue = item.Sound?.AsStringValue();
|
||||
return true;
|
||||
case Driver item when Key.FieldName == "status":
|
||||
checkValue = item.Status?.AsStringValue();
|
||||
return true;
|
||||
case Driver item when Key.FieldName == "unofficial":
|
||||
checkValue = item.Unofficial.FromYesNo();
|
||||
return true;
|
||||
|
||||
case Feature item when Key.FieldName == "overall":
|
||||
checkValue = item.Overall?.AsStringValue();
|
||||
return true;
|
||||
case Feature item when Key.FieldName == "status":
|
||||
checkValue = item.Status?.AsStringValue();
|
||||
return true;
|
||||
case Feature item when Key.FieldName == "type":
|
||||
checkValue = item.FeatureType?.AsStringValue();
|
||||
return true;
|
||||
|
||||
case Header item when Key.FieldName == "biosmode":
|
||||
checkValue = item.BiosMode.AsStringValue();
|
||||
return true;
|
||||
case Header item when Key.FieldName == "debug":
|
||||
checkValue = item.Debug.FromYesNo();
|
||||
return true;
|
||||
case Header item when Key.FieldName == "forcemerging":
|
||||
checkValue = item.ForceMerging.AsStringValue();
|
||||
return true;
|
||||
case Header item when Key.FieldName == "forcenodump":
|
||||
checkValue = item.ForceNodump.AsStringValue();
|
||||
return true;
|
||||
case Header item when Key.FieldName == "forcepacking":
|
||||
checkValue = item.ForcePacking.AsStringValue();
|
||||
return true;
|
||||
case Header item when Key.FieldName == "forcezipping":
|
||||
checkValue = item.ForceZipping.FromYesNo();
|
||||
return true;
|
||||
@@ -427,6 +494,12 @@ namespace SabreTools.Metadata.Filter
|
||||
case Header item when Key.FieldName == "locksamplemode":
|
||||
checkValue = item.LockSampleMode.FromYesNo();
|
||||
return true;
|
||||
case Header item when Key.FieldName == "rommode":
|
||||
checkValue = item.RomMode.AsStringValue();
|
||||
return true;
|
||||
case Header item when Key.FieldName == "samplemode":
|
||||
checkValue = item.SampleMode.AsStringValue();
|
||||
return true;
|
||||
|
||||
case Input item when Key.FieldName == "service":
|
||||
checkValue = item.Service.FromYesNo();
|
||||
@@ -447,6 +520,9 @@ namespace SabreTools.Metadata.Filter
|
||||
case Machine item when Key.FieldName == "runnable":
|
||||
checkValue = item.Runnable?.AsStringValue();
|
||||
return true;
|
||||
case Machine item when Key.FieldName == "supported":
|
||||
checkValue = item.Supported?.AsStringValue();
|
||||
return true;
|
||||
|
||||
case RamOption item when Key.FieldName == "default":
|
||||
checkValue = item.Default.FromYesNo();
|
||||
@@ -465,6 +541,12 @@ namespace SabreTools.Metadata.Filter
|
||||
case Rom item when Key.FieldName == "inverted":
|
||||
checkValue = item.Inverted.FromYesNo();
|
||||
return true;
|
||||
case Rom item when Key.FieldName == "loadflag":
|
||||
checkValue = item.LoadFlag?.AsStringValue();
|
||||
return true;
|
||||
case Rom item when Key.FieldName == "mediatype":
|
||||
checkValue = item.OpenMSXMediaType?.AsStringValue();
|
||||
return true;
|
||||
case Rom item when Key.FieldName == "mia":
|
||||
checkValue = item.MIA.FromYesNo();
|
||||
return true;
|
||||
@@ -474,11 +556,26 @@ namespace SabreTools.Metadata.Filter
|
||||
case Rom item when Key.FieldName == "soundonly":
|
||||
checkValue = item.SoundOnly.FromYesNo();
|
||||
return true;
|
||||
case Rom item when Key.FieldName == "status":
|
||||
checkValue = item.Status?.AsStringValue();
|
||||
return true;
|
||||
|
||||
case SlotOption item when Key.FieldName == "default":
|
||||
checkValue = item.Default.FromYesNo();
|
||||
return true;
|
||||
|
||||
case Software item when Key.FieldName == "supported":
|
||||
checkValue = item.Supported?.AsStringValue();
|
||||
return true;
|
||||
|
||||
case SoftwareList item when Key.FieldName == "status":
|
||||
checkValue = item.Status?.AsStringValue();
|
||||
return true;
|
||||
|
||||
case Video item when Key.FieldName == "screen":
|
||||
checkValue = item.Screen?.AsStringValue();
|
||||
return true;
|
||||
|
||||
// Fallthrough to Dictionary-based checking
|
||||
default: break;
|
||||
}
|
||||
|
||||
@@ -22,14 +22,14 @@ namespace SabreTools.Metadata.Test
|
||||
{
|
||||
DictionaryBase self = new Disk
|
||||
{
|
||||
[Disk.StatusKey] = "nodump",
|
||||
Status = ItemStatus.Nodump,
|
||||
Name = "XXXXXX",
|
||||
[Disk.MD5Key] = string.Empty,
|
||||
[Disk.SHA1Key] = string.Empty,
|
||||
};
|
||||
DictionaryBase other = new Disk
|
||||
{
|
||||
[Disk.StatusKey] = "NODUMP",
|
||||
Status = ItemStatus.Nodump,
|
||||
Name = "XXXXXX",
|
||||
[Disk.MD5Key] = string.Empty,
|
||||
[Disk.SHA1Key] = string.Empty,
|
||||
@@ -268,7 +268,7 @@ namespace SabreTools.Metadata.Test
|
||||
{
|
||||
DictionaryBase self = new Rom
|
||||
{
|
||||
[Rom.StatusKey] = "nodump",
|
||||
Status = ItemStatus.Nodump,
|
||||
Name = "XXXXXX",
|
||||
[Rom.SizeKey] = 12345,
|
||||
[Rom.CRC16Key] = string.Empty,
|
||||
@@ -287,7 +287,7 @@ namespace SabreTools.Metadata.Test
|
||||
};
|
||||
DictionaryBase other = new Rom
|
||||
{
|
||||
[Rom.StatusKey] = "NODUMP",
|
||||
Status = ItemStatus.Nodump,
|
||||
Name = "XXXXXX",
|
||||
[Rom.SizeKey] = 12345,
|
||||
[Rom.CRC16Key] = string.Empty,
|
||||
|
||||
@@ -176,15 +176,15 @@ namespace SabreTools.Metadata
|
||||
/// </summary>
|
||||
private static bool EqualsImpl(this Disk self, Disk other)
|
||||
{
|
||||
string? selfStatus = self.ReadString(Disk.StatusKey);
|
||||
string? otherStatus = other.ReadString(Disk.StatusKey);
|
||||
ItemStatus? selfStatus = self.Status;
|
||||
ItemStatus? otherStatus = other.Status;
|
||||
|
||||
string? selfName = self.Name;
|
||||
string? otherName = other.Name;
|
||||
|
||||
// If all hashes are empty but they're both nodump and the names match, then they're dupes
|
||||
if (string.Equals(selfStatus, "nodump", StringComparison.OrdinalIgnoreCase)
|
||||
&& string.Equals(otherStatus, "nodump", StringComparison.OrdinalIgnoreCase)
|
||||
if (selfStatus == ItemStatus.Nodump
|
||||
&& otherStatus == ItemStatus.Nodump
|
||||
&& string.Equals(selfName, otherName, StringComparison.OrdinalIgnoreCase)
|
||||
&& !self.HasHashes()
|
||||
&& !other.HasHashes())
|
||||
@@ -218,8 +218,8 @@ namespace SabreTools.Metadata
|
||||
/// </summary>
|
||||
private static bool EqualsImpl(this Rom self, Rom other)
|
||||
{
|
||||
string? selfStatus = self.ReadString(Rom.StatusKey);
|
||||
string? otherStatus = other.ReadString(Rom.StatusKey);
|
||||
ItemStatus? selfStatus = self.Status;
|
||||
ItemStatus? otherStatus = other.Status;
|
||||
|
||||
string? selfName = self.Name;
|
||||
string? otherName = other.Name;
|
||||
@@ -228,8 +228,8 @@ namespace SabreTools.Metadata
|
||||
long? otherSize = other.ReadLong(Rom.SizeKey);
|
||||
|
||||
// If all hashes are empty but they're both nodump and the names match, then they're dupes
|
||||
if (string.Equals(selfStatus, "nodump", StringComparison.OrdinalIgnoreCase)
|
||||
&& string.Equals(otherStatus, "nodump", StringComparison.OrdinalIgnoreCase)
|
||||
if (selfStatus == ItemStatus.Nodump
|
||||
&& otherStatus == ItemStatus.Nodump
|
||||
&& string.Equals(selfName, otherName, StringComparison.OrdinalIgnoreCase)
|
||||
&& !self.HasHashes()
|
||||
&& !other.HasHashes())
|
||||
|
||||
@@ -73,9 +73,9 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
Comment = "XXXXXX",
|
||||
Header = "XXXXXX",
|
||||
Type = "XXXXXX",
|
||||
ForceMerging = "XXXXXX",
|
||||
ForceMerging = Data.Models.Metadata.MergingFlag.Merged,
|
||||
ForceZipping = true,
|
||||
ForcePacking = "XXXXXX",
|
||||
ForcePacking = Data.Models.Metadata.PackingFlag.Zip,
|
||||
};
|
||||
|
||||
var release = new Data.Models.ClrMamePro.Release
|
||||
@@ -108,7 +108,7 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
RIPEMD160 = "XXXXXX",
|
||||
SHA1 = "XXXXXX",
|
||||
Merge = "XXXXXX",
|
||||
Status = "XXXXXX",
|
||||
Status = Data.Models.Metadata.ItemStatus.Good,
|
||||
Flags = "XXXXXX",
|
||||
Date = "XXXXXX",
|
||||
SHA256 = "XXXXXX",
|
||||
@@ -131,7 +131,7 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
MD5 = "XXXXXX",
|
||||
SHA1 = "XXXXXX",
|
||||
Merge = "XXXXXX",
|
||||
Status = "XXXXXX",
|
||||
Status = Data.Models.Metadata.ItemStatus.Good,
|
||||
Flags = "XXXXXX",
|
||||
};
|
||||
|
||||
@@ -156,7 +156,7 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
|
||||
var chip = new Data.Models.ClrMamePro.Chip
|
||||
{
|
||||
Type = "XXXXXX",
|
||||
Type = Data.Models.Metadata.ChipType.CPU,
|
||||
Name = "XXXXXX",
|
||||
Flags = "XXXXXX",
|
||||
Clock = "XXXXXX",
|
||||
@@ -164,7 +164,7 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
|
||||
var video = new Data.Models.ClrMamePro.Video
|
||||
{
|
||||
Screen = "XXXXXX",
|
||||
Screen = Data.Models.Metadata.DisplayType.Vector,
|
||||
Orientation = "XXXXXX",
|
||||
X = "XXXXXX",
|
||||
Y = "XXXXXX",
|
||||
@@ -197,11 +197,11 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
|
||||
var driver = new Data.Models.ClrMamePro.Driver
|
||||
{
|
||||
Status = "XXXXXX",
|
||||
Color = "XXXXXX",
|
||||
Sound = "XXXXXX",
|
||||
Status = Data.Models.Metadata.SupportStatus.Good,
|
||||
Color = Data.Models.Metadata.SupportStatus.Good,
|
||||
Sound = Data.Models.Metadata.SupportStatus.Good,
|
||||
PaletteSize = "XXXXXX",
|
||||
Blit = "XXXXXX",
|
||||
Blit = Data.Models.Metadata.Blit.Plain,
|
||||
};
|
||||
|
||||
// TODO: This omits Set, should that have a separate case?
|
||||
@@ -262,9 +262,9 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
Assert.Equal("XXXXXX", cmp.Comment);
|
||||
Assert.Equal("XXXXXX", cmp.Header);
|
||||
Assert.Equal("XXXXXX", cmp.Type);
|
||||
Assert.Equal("XXXXXX", cmp.ForceMerging);
|
||||
Assert.Equal(Data.Models.Metadata.MergingFlag.Merged, cmp.ForceMerging);
|
||||
Assert.Equal(true, cmp.ForceZipping);
|
||||
Assert.Equal("XXXXXX", cmp.ForcePacking);
|
||||
Assert.Equal(Data.Models.Metadata.PackingFlag.Zip, cmp.ForcePacking);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -371,7 +371,7 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
Assert.Equal("XXXXXX", rom.RIPEMD160);
|
||||
Assert.Equal("XXXXXX", rom.SHA1);
|
||||
Assert.Equal("XXXXXX", rom.Merge);
|
||||
Assert.Equal("XXXXXX", rom.Status);
|
||||
Assert.Equal(Data.Models.Metadata.ItemStatus.Good, rom.Status);
|
||||
Assert.Equal("XXXXXX", rom.Flags);
|
||||
Assert.Equal("XXXXXX", rom.Date);
|
||||
Assert.Equal("XXXXXX", rom.SHA256);
|
||||
@@ -398,7 +398,7 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
Assert.Equal("XXXXXX", disk.MD5);
|
||||
Assert.Equal("XXXXXX", disk.SHA1);
|
||||
Assert.Equal("XXXXXX", disk.Merge);
|
||||
Assert.Equal("XXXXXX", disk.Status);
|
||||
Assert.Equal(Data.Models.Metadata.ItemStatus.Good, disk.Status);
|
||||
Assert.Equal("XXXXXX", disk.Flags);
|
||||
}
|
||||
|
||||
@@ -439,7 +439,7 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
private static void Validate(Data.Models.ClrMamePro.Chip? chip)
|
||||
{
|
||||
Assert.NotNull(chip);
|
||||
Assert.Equal("XXXXXX", chip.Type);
|
||||
Assert.Equal(Data.Models.Metadata.ChipType.CPU, chip.Type);
|
||||
Assert.Equal("XXXXXX", chip.Name);
|
||||
Assert.Equal("XXXXXX", chip.Flags);
|
||||
Assert.Equal("XXXXXX", chip.Clock);
|
||||
@@ -451,7 +451,7 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
private static void Validate(Data.Models.ClrMamePro.Video? video)
|
||||
{
|
||||
Assert.NotNull(video);
|
||||
Assert.Equal("XXXXXX", video.Screen);
|
||||
Assert.Equal(Data.Models.Metadata.DisplayType.Vector, video.Screen);
|
||||
Assert.Equal("XXXXXX", video.Orientation);
|
||||
Assert.Equal("XXXXXX", video.X);
|
||||
Assert.Equal("XXXXXX", video.Y);
|
||||
@@ -504,11 +504,11 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
private static void Validate(Data.Models.ClrMamePro.Driver? driver)
|
||||
{
|
||||
Assert.NotNull(driver);
|
||||
Assert.Equal("XXXXXX", driver.Status);
|
||||
Assert.Equal("XXXXXX", driver.Color);
|
||||
Assert.Equal("XXXXXX", driver.Sound);
|
||||
Assert.Equal(Data.Models.Metadata.SupportStatus.Good, driver.Status);
|
||||
Assert.Equal(Data.Models.Metadata.SupportStatus.Good, driver.Color);
|
||||
Assert.Equal(Data.Models.Metadata.SupportStatus.Good, driver.Sound);
|
||||
Assert.Equal("XXXXXX", driver.PaletteSize);
|
||||
Assert.Equal("XXXXXX", driver.Blit);
|
||||
Assert.Equal(Data.Models.Metadata.Blit.Plain, driver.Blit);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -80,7 +80,7 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
Merge = "XXXXXX",
|
||||
Region = "XXXXXX",
|
||||
Offset = "XXXXXX",
|
||||
Status = "XXXXXX",
|
||||
Status = Data.Models.Metadata.ItemStatus.Good,
|
||||
Optional = true,
|
||||
Dispose = true,
|
||||
SoundOnly = true,
|
||||
@@ -95,7 +95,7 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
Region = "XXXXXX",
|
||||
Index = "XXXXXX",
|
||||
Writable = true,
|
||||
Status = "XXXXXX",
|
||||
Status = Data.Models.Metadata.ItemStatus.Good,
|
||||
Optional = true,
|
||||
};
|
||||
|
||||
@@ -113,7 +113,7 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
{
|
||||
Name = "XXXXXX",
|
||||
Tag = "XXXXXX",
|
||||
Type = "XXXXXX",
|
||||
Type = Data.Models.Metadata.ChipType.CPU,
|
||||
SoundOnly = true,
|
||||
Clock = "XXXXXX",
|
||||
};
|
||||
@@ -121,7 +121,7 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
var display = new Data.Models.Listxml.Display
|
||||
{
|
||||
Tag = "XXXXXX",
|
||||
Type = "XXXXXX",
|
||||
Type = Data.Models.Metadata.DisplayType.Vector,
|
||||
Rotate = "XXXXXX",
|
||||
FlipX = true,
|
||||
Width = "XXXXXX",
|
||||
@@ -138,7 +138,7 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
|
||||
var video = new Data.Models.Listxml.Video
|
||||
{
|
||||
Screen = "XXXXXX",
|
||||
Screen = Data.Models.Metadata.DisplayType.Vector,
|
||||
Orientation = "XXXXXX",
|
||||
Width = "XXXXXX",
|
||||
Height = "XXXXXX",
|
||||
@@ -154,7 +154,7 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
|
||||
var control = new Data.Models.Listxml.Control
|
||||
{
|
||||
Type = "XXXXXX",
|
||||
Type = Data.Models.Metadata.ControlType.Lightgun,
|
||||
Player = "XXXXXX",
|
||||
Buttons = "XXXXXX",
|
||||
ReqButtons = "XXXXXX",
|
||||
@@ -183,7 +183,7 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
{
|
||||
Tag = "XXXXXX",
|
||||
Mask = "XXXXXX",
|
||||
Relation = "XXXXXX",
|
||||
Relation = Data.Models.Metadata.Relation.Equal,
|
||||
Value = "XXXXXX",
|
||||
};
|
||||
|
||||
@@ -257,13 +257,13 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
|
||||
var driver = new Data.Models.Listxml.Driver
|
||||
{
|
||||
Status = "XXXXXX",
|
||||
Color = "XXXXXX",
|
||||
Sound = "XXXXXX",
|
||||
Status = Data.Models.Metadata.SupportStatus.Good,
|
||||
Color = Data.Models.Metadata.SupportStatus.Good,
|
||||
Sound = Data.Models.Metadata.SupportStatus.Good,
|
||||
PaletteSize = "XXXXXX",
|
||||
Emulation = "XXXXXX",
|
||||
Cocktail = "XXXXXX",
|
||||
SaveState = "XXXXXX",
|
||||
Emulation = Data.Models.Metadata.SupportStatus.Good,
|
||||
Cocktail = Data.Models.Metadata.SupportStatus.Good,
|
||||
SaveState = Data.Models.Metadata.Supported.Yes,
|
||||
RequiresArtwork = true,
|
||||
Unofficial = true,
|
||||
NoSoundHardware = true,
|
||||
@@ -272,9 +272,9 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
|
||||
var feature = new Data.Models.Listxml.Feature
|
||||
{
|
||||
Type = "XXXXXX",
|
||||
Status = "XXXXXX",
|
||||
Overall = "XXXXXX",
|
||||
Type = Data.Models.Metadata.FeatureType.Protection,
|
||||
Status = Data.Models.Metadata.FeatureStatus.Imperfect,
|
||||
Overall = Data.Models.Metadata.FeatureStatus.Imperfect,
|
||||
};
|
||||
|
||||
var instance = new Data.Models.Listxml.Instance
|
||||
@@ -290,7 +290,7 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
|
||||
var device = new Data.Models.Listxml.Device
|
||||
{
|
||||
Type = "XXXXXX",
|
||||
Type = Data.Models.Metadata.DeviceType.PunchTape,
|
||||
Tag = "XXXXXX",
|
||||
FixedImage = "XXXXXX",
|
||||
Mandatory = "XXXXXX",
|
||||
@@ -316,7 +316,7 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
{
|
||||
Tag = "XXXXXX",
|
||||
Name = "XXXXXX",
|
||||
Status = "XXXXXX",
|
||||
Status = Data.Models.Metadata.SoftwareListStatus.Original,
|
||||
Filter = "XXXXXX",
|
||||
};
|
||||
|
||||
@@ -492,7 +492,7 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
Assert.Equal("XXXXXX", rom.Merge);
|
||||
Assert.Equal("XXXXXX", rom.Region);
|
||||
Assert.Equal("XXXXXX", rom.Offset);
|
||||
Assert.Equal("XXXXXX", rom.Status);
|
||||
Assert.Equal(Data.Models.Metadata.ItemStatus.Good, rom.Status);
|
||||
Assert.Equal(true, rom.Optional);
|
||||
Assert.Equal(true, rom.Dispose);
|
||||
Assert.Equal(true, rom.SoundOnly);
|
||||
@@ -511,7 +511,7 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
Assert.Equal("XXXXXX", disk.Region);
|
||||
Assert.Equal("XXXXXX", disk.Index);
|
||||
Assert.Equal(true, disk.Writable);
|
||||
Assert.Equal("XXXXXX", disk.Status);
|
||||
Assert.Equal(Data.Models.Metadata.ItemStatus.Good, disk.Status);
|
||||
Assert.Equal(true, disk.Optional);
|
||||
}
|
||||
|
||||
@@ -541,7 +541,7 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
Assert.NotNull(chip);
|
||||
Assert.Equal("XXXXXX", chip.Name);
|
||||
Assert.Equal("XXXXXX", chip.Tag);
|
||||
Assert.Equal("XXXXXX", chip.Type);
|
||||
Assert.Equal(Data.Models.Metadata.ChipType.CPU, chip.Type);
|
||||
Assert.Equal(true, chip.SoundOnly);
|
||||
Assert.Equal("XXXXXX", chip.Clock);
|
||||
}
|
||||
@@ -553,7 +553,7 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
{
|
||||
Assert.NotNull(display);
|
||||
Assert.Equal("XXXXXX", display.Tag);
|
||||
Assert.Equal("XXXXXX", display.Type);
|
||||
Assert.Equal(Data.Models.Metadata.DisplayType.Vector, display.Type);
|
||||
Assert.Equal("XXXXXX", display.Rotate);
|
||||
Assert.Equal(true, display.FlipX);
|
||||
Assert.Equal("XXXXXX", display.Width);
|
||||
@@ -574,7 +574,7 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
private static void Validate(Data.Models.Listxml.Video? video)
|
||||
{
|
||||
Assert.NotNull(video);
|
||||
Assert.Equal("XXXXXX", video.Screen);
|
||||
Assert.Equal(Data.Models.Metadata.DisplayType.Vector, video.Screen);
|
||||
Assert.Equal("XXXXXX", video.Orientation);
|
||||
Assert.Equal("XXXXXX", video.Width);
|
||||
Assert.Equal("XXXXXX", video.Height);
|
||||
@@ -616,7 +616,7 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
private static void Validate(Data.Models.Listxml.Control? control)
|
||||
{
|
||||
Assert.NotNull(control);
|
||||
Assert.Equal("XXXXXX", control.Type);
|
||||
Assert.Equal(Data.Models.Metadata.ControlType.Lightgun, control.Type);
|
||||
Assert.Equal("XXXXXX", control.Player);
|
||||
Assert.Equal("XXXXXX", control.Buttons);
|
||||
Assert.Equal("XXXXXX", control.ReqButtons);
|
||||
@@ -658,7 +658,7 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
Assert.NotNull(condition);
|
||||
Assert.Equal("XXXXXX", condition.Tag);
|
||||
Assert.Equal("XXXXXX", condition.Mask);
|
||||
Assert.Equal("XXXXXX", condition.Relation);
|
||||
Assert.Equal(Data.Models.Metadata.Relation.Equal, condition.Relation);
|
||||
Assert.Equal("XXXXXX", condition.Value);
|
||||
}
|
||||
|
||||
@@ -767,13 +767,13 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
private static void Validate(Data.Models.Listxml.Driver? driver)
|
||||
{
|
||||
Assert.NotNull(driver);
|
||||
Assert.Equal("XXXXXX", driver.Status);
|
||||
Assert.Equal("XXXXXX", driver.Color);
|
||||
Assert.Equal("XXXXXX", driver.Sound);
|
||||
Assert.Equal(Data.Models.Metadata.SupportStatus.Good, driver.Status);
|
||||
Assert.Equal(Data.Models.Metadata.SupportStatus.Good, driver.Color);
|
||||
Assert.Equal(Data.Models.Metadata.SupportStatus.Good, driver.Sound);
|
||||
Assert.Equal("XXXXXX", driver.PaletteSize);
|
||||
Assert.Equal("XXXXXX", driver.Emulation);
|
||||
Assert.Equal("XXXXXX", driver.Cocktail);
|
||||
Assert.Equal("XXXXXX", driver.SaveState);
|
||||
Assert.Equal(Data.Models.Metadata.SupportStatus.Good, driver.Emulation);
|
||||
Assert.Equal(Data.Models.Metadata.SupportStatus.Good, driver.Cocktail);
|
||||
Assert.Equal(Data.Models.Metadata.Supported.Yes, driver.SaveState);
|
||||
Assert.Equal(true, driver.RequiresArtwork);
|
||||
Assert.Equal(true, driver.Unofficial);
|
||||
Assert.Equal(true, driver.NoSoundHardware);
|
||||
@@ -786,9 +786,9 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
private static void Validate(Data.Models.Listxml.Feature? feature)
|
||||
{
|
||||
Assert.NotNull(feature);
|
||||
Assert.Equal("XXXXXX", feature.Type);
|
||||
Assert.Equal("XXXXXX", feature.Status);
|
||||
Assert.Equal("XXXXXX", feature.Overall);
|
||||
Assert.Equal(Data.Models.Metadata.FeatureType.Protection, feature.Type);
|
||||
Assert.Equal(Data.Models.Metadata.FeatureStatus.Imperfect, feature.Status);
|
||||
Assert.Equal(Data.Models.Metadata.FeatureStatus.Imperfect, feature.Overall);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -797,7 +797,7 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
private static void Validate(Data.Models.Listxml.Device? device)
|
||||
{
|
||||
Assert.NotNull(device);
|
||||
Assert.Equal("XXXXXX", device.Type);
|
||||
Assert.Equal(Data.Models.Metadata.DeviceType.PunchTape, device.Type);
|
||||
Assert.Equal("XXXXXX", device.Tag);
|
||||
Assert.Equal("XXXXXX", device.FixedImage);
|
||||
Assert.Equal("XXXXXX", device.Mandatory);
|
||||
@@ -860,7 +860,7 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
Assert.NotNull(softwarelist);
|
||||
Assert.Equal("XXXXXX", softwarelist.Tag);
|
||||
Assert.Equal("XXXXXX", softwarelist.Name);
|
||||
Assert.Equal("XXXXXX", softwarelist.Status);
|
||||
Assert.Equal(Data.Models.Metadata.SoftwareListStatus.Original, softwarelist.Status);
|
||||
Assert.Equal("XXXXXX", softwarelist.Filter);
|
||||
}
|
||||
|
||||
|
||||
@@ -76,17 +76,17 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
var clrmamepro = new Data.Models.Logiqx.ClrMamePro
|
||||
{
|
||||
Header = "XXXXXX",
|
||||
ForceMerging = "XXXXXX",
|
||||
ForceNodump = "XXXXXX",
|
||||
ForcePacking = "XXXXXX",
|
||||
ForceMerging = Data.Models.Metadata.MergingFlag.Merged,
|
||||
ForceNodump = Data.Models.Metadata.NodumpFlag.Required,
|
||||
ForcePacking = Data.Models.Metadata.PackingFlag.Zip,
|
||||
};
|
||||
|
||||
var romcenter = new Data.Models.Logiqx.RomCenter
|
||||
{
|
||||
Plugin = "XXXXXX",
|
||||
RomMode = "XXXXXX",
|
||||
BiosMode = "XXXXXX",
|
||||
SampleMode = "XXXXXX",
|
||||
RomMode = Data.Models.Metadata.MergingFlag.Merged,
|
||||
BiosMode = Data.Models.Metadata.MergingFlag.Merged,
|
||||
SampleMode = Data.Models.Metadata.MergingFlag.Merged,
|
||||
LockRomMode = true,
|
||||
LockBiosMode = true,
|
||||
LockSampleMode = true,
|
||||
@@ -165,7 +165,7 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
xxHash364 = "XXXXXX",
|
||||
xxHash3128 = "XXXXXX",
|
||||
Merge = "XXXXXX",
|
||||
Status = "XXXXXX",
|
||||
Status = Data.Models.Metadata.ItemStatus.Good,
|
||||
Serial = "XXXXXX",
|
||||
Header = "XXXXXX",
|
||||
Date = "XXXXXX",
|
||||
@@ -179,7 +179,7 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
MD5 = "XXXXXX",
|
||||
SHA1 = "XXXXXX",
|
||||
Merge = "XXXXXX",
|
||||
Status = "XXXXXX",
|
||||
Status = Data.Models.Metadata.ItemStatus.Good,
|
||||
Region = "XXXXXX",
|
||||
};
|
||||
|
||||
@@ -209,10 +209,10 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
|
||||
var driver = new Data.Models.Logiqx.Driver
|
||||
{
|
||||
Status = "XXXXXX",
|
||||
Emulation = "XXXXXX",
|
||||
Cocktail = "XXXXXX",
|
||||
SaveState = "XXXXXX",
|
||||
Status = Data.Models.Metadata.SupportStatus.Good,
|
||||
Emulation = Data.Models.Metadata.SupportStatus.Good,
|
||||
Cocktail = Data.Models.Metadata.SupportStatus.Good,
|
||||
SaveState = Data.Models.Metadata.Supported.Yes,
|
||||
RequiresArtwork = true,
|
||||
Unofficial = true,
|
||||
NoSoundHardware = true,
|
||||
@@ -223,7 +223,7 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
{
|
||||
Tag = "XXXXXX",
|
||||
Name = "XXXXXX",
|
||||
Status = "XXXXXX",
|
||||
Status = Data.Models.Metadata.SoftwareListStatus.Original,
|
||||
Filter = "XXXXXX",
|
||||
};
|
||||
|
||||
@@ -314,9 +314,9 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
{
|
||||
Assert.NotNull(cmp);
|
||||
Assert.Equal("XXXXXX", cmp.Header);
|
||||
Assert.Equal("XXXXXX", cmp.ForceMerging);
|
||||
Assert.Equal("XXXXXX", cmp.ForceNodump);
|
||||
Assert.Equal("XXXXXX", cmp.ForcePacking);
|
||||
Assert.Equal(Data.Models.Metadata.MergingFlag.Merged, cmp.ForceMerging);
|
||||
Assert.Equal(Data.Models.Metadata.NodumpFlag.Required, cmp.ForceNodump);
|
||||
Assert.Equal(Data.Models.Metadata.PackingFlag.Zip, cmp.ForcePacking);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -326,9 +326,9 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
{
|
||||
Assert.NotNull(rc);
|
||||
Assert.Equal("XXXXXX", rc.Plugin);
|
||||
Assert.Equal("XXXXXX", rc.RomMode);
|
||||
Assert.Equal("XXXXXX", rc.BiosMode);
|
||||
Assert.Equal("XXXXXX", rc.SampleMode);
|
||||
Assert.Equal(Data.Models.Metadata.MergingFlag.Merged, rc.RomMode);
|
||||
Assert.Equal(Data.Models.Metadata.MergingFlag.Merged, rc.BiosMode);
|
||||
Assert.Equal(Data.Models.Metadata.MergingFlag.Merged, rc.SampleMode);
|
||||
Assert.Equal(true, rc.LockRomMode);
|
||||
Assert.Equal(true, rc.LockBiosMode);
|
||||
Assert.Equal(true, rc.LockSampleMode);
|
||||
@@ -481,7 +481,7 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
Assert.Equal("XXXXXX", rom.xxHash364);
|
||||
Assert.Equal("XXXXXX", rom.xxHash3128);
|
||||
Assert.Equal("XXXXXX", rom.Merge);
|
||||
Assert.Equal("XXXXXX", rom.Status);
|
||||
Assert.Equal(Data.Models.Metadata.ItemStatus.Good, rom.Status);
|
||||
Assert.Equal("XXXXXX", rom.Serial);
|
||||
Assert.Equal("XXXXXX", rom.Header);
|
||||
Assert.Equal("XXXXXX", rom.Date);
|
||||
@@ -499,7 +499,7 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
Assert.Equal("XXXXXX", disk.MD5);
|
||||
Assert.Equal("XXXXXX", disk.SHA1);
|
||||
Assert.Equal("XXXXXX", disk.Merge);
|
||||
Assert.Equal("XXXXXX", disk.Status);
|
||||
Assert.Equal(Data.Models.Metadata.ItemStatus.Good, disk.Status);
|
||||
Assert.Equal("XXXXXX", disk.Region);
|
||||
}
|
||||
|
||||
@@ -549,10 +549,10 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
private static void Validate(Data.Models.Logiqx.Driver? driver)
|
||||
{
|
||||
Assert.NotNull(driver);
|
||||
Assert.Equal("XXXXXX", driver.Status);
|
||||
Assert.Equal("XXXXXX", driver.Emulation);
|
||||
Assert.Equal("XXXXXX", driver.Cocktail);
|
||||
Assert.Equal("XXXXXX", driver.SaveState);
|
||||
Assert.Equal(Data.Models.Metadata.SupportStatus.Good, driver.Status);
|
||||
Assert.Equal(Data.Models.Metadata.SupportStatus.Good, driver.Emulation);
|
||||
Assert.Equal(Data.Models.Metadata.SupportStatus.Good, driver.Cocktail);
|
||||
Assert.Equal(Data.Models.Metadata.Supported.Yes, driver.SaveState);
|
||||
Assert.Equal(true, driver.RequiresArtwork);
|
||||
Assert.Equal(true, driver.Unofficial);
|
||||
Assert.Equal(true, driver.NoSoundHardware);
|
||||
@@ -567,7 +567,7 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
Assert.NotNull(softwarelist);
|
||||
Assert.Equal("XXXXXX", softwarelist.Tag);
|
||||
Assert.Equal("XXXXXX", softwarelist.Name);
|
||||
Assert.Equal("XXXXXX", softwarelist.Status);
|
||||
Assert.Equal(Data.Models.Metadata.SoftwareListStatus.Original, softwarelist.Status);
|
||||
Assert.Equal("XXXXXX", softwarelist.Filter);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -76,7 +76,7 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
Merge = "XXXXXX",
|
||||
Region = "XXXXXX",
|
||||
Offset = "XXXXXX",
|
||||
Status = "XXXXXX",
|
||||
Status = Data.Models.Metadata.ItemStatus.Good,
|
||||
Optional = true,
|
||||
Dispose = true,
|
||||
SoundOnly = true,
|
||||
@@ -91,7 +91,7 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
Region = "XXXXXX",
|
||||
Index = "XXXXXX",
|
||||
Writable = true,
|
||||
Status = "XXXXXX",
|
||||
Status = Data.Models.Metadata.ItemStatus.Good,
|
||||
Optional = true,
|
||||
};
|
||||
|
||||
@@ -109,7 +109,7 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
{
|
||||
Name = "XXXXXX",
|
||||
Tag = "XXXXXX",
|
||||
Type = "XXXXXX",
|
||||
Type = Data.Models.Metadata.ChipType.CPU,
|
||||
SoundOnly = true,
|
||||
Clock = "XXXXXX",
|
||||
};
|
||||
@@ -117,7 +117,7 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
var display = new Data.Models.Listxml.Display
|
||||
{
|
||||
Tag = "XXXXXX",
|
||||
Type = "XXXXXX",
|
||||
Type = Data.Models.Metadata.DisplayType.Vector,
|
||||
Rotate = "XXXXXX",
|
||||
FlipX = true,
|
||||
Width = "XXXXXX",
|
||||
@@ -134,7 +134,7 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
|
||||
var video = new Data.Models.Listxml.Video
|
||||
{
|
||||
Screen = "XXXXXX",
|
||||
Screen = Data.Models.Metadata.DisplayType.Vector,
|
||||
Orientation = "XXXXXX",
|
||||
Width = "XXXXXX",
|
||||
Height = "XXXXXX",
|
||||
@@ -150,7 +150,7 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
|
||||
var control = new Data.Models.Listxml.Control
|
||||
{
|
||||
Type = "XXXXXX",
|
||||
Type = Data.Models.Metadata.ControlType.Lightgun,
|
||||
Player = "XXXXXX",
|
||||
Buttons = "XXXXXX",
|
||||
ReqButtons = "XXXXXX",
|
||||
@@ -179,7 +179,7 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
{
|
||||
Tag = "XXXXXX",
|
||||
Mask = "XXXXXX",
|
||||
Relation = "XXXXXX",
|
||||
Relation = Data.Models.Metadata.Relation.Equal,
|
||||
Value = "XXXXXX",
|
||||
};
|
||||
|
||||
@@ -253,13 +253,13 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
|
||||
var driver = new Data.Models.Listxml.Driver
|
||||
{
|
||||
Status = "XXXXXX",
|
||||
Color = "XXXXXX",
|
||||
Sound = "XXXXXX",
|
||||
Status = Data.Models.Metadata.SupportStatus.Good,
|
||||
Color = Data.Models.Metadata.SupportStatus.Good,
|
||||
Sound = Data.Models.Metadata.SupportStatus.Good,
|
||||
PaletteSize = "XXXXXX",
|
||||
Emulation = "XXXXXX",
|
||||
Cocktail = "XXXXXX",
|
||||
SaveState = "XXXXXX",
|
||||
Emulation = Data.Models.Metadata.SupportStatus.Good,
|
||||
Cocktail = Data.Models.Metadata.SupportStatus.Good,
|
||||
SaveState = Data.Models.Metadata.Supported.Yes,
|
||||
RequiresArtwork = true,
|
||||
Unofficial = true,
|
||||
NoSoundHardware = true,
|
||||
@@ -268,9 +268,9 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
|
||||
var feature = new Data.Models.Listxml.Feature
|
||||
{
|
||||
Type = "XXXXXX",
|
||||
Status = "XXXXXX",
|
||||
Overall = "XXXXXX",
|
||||
Type = Data.Models.Metadata.FeatureType.Protection,
|
||||
Status = Data.Models.Metadata.FeatureStatus.Imperfect,
|
||||
Overall = Data.Models.Metadata.FeatureStatus.Imperfect,
|
||||
};
|
||||
|
||||
var instance = new Data.Models.Listxml.Instance
|
||||
@@ -286,7 +286,7 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
|
||||
var device = new Data.Models.Listxml.Device
|
||||
{
|
||||
Type = "XXXXXX",
|
||||
Type = Data.Models.Metadata.DeviceType.PunchTape,
|
||||
Tag = "XXXXXX",
|
||||
FixedImage = "XXXXXX",
|
||||
Mandatory = "XXXXXX",
|
||||
@@ -312,7 +312,7 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
{
|
||||
Tag = "XXXXXX",
|
||||
Name = "XXXXXX",
|
||||
Status = "XXXXXX",
|
||||
Status = Data.Models.Metadata.SoftwareListStatus.Original,
|
||||
Filter = "XXXXXX",
|
||||
};
|
||||
|
||||
@@ -486,7 +486,7 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
Assert.Equal("XXXXXX", rom.Merge);
|
||||
Assert.Equal("XXXXXX", rom.Region);
|
||||
Assert.Equal("XXXXXX", rom.Offset);
|
||||
Assert.Equal("XXXXXX", rom.Status);
|
||||
Assert.Equal(Data.Models.Metadata.ItemStatus.Good, rom.Status);
|
||||
Assert.Equal(true, rom.Optional);
|
||||
Assert.Equal(true, rom.Dispose);
|
||||
Assert.Equal(true, rom.SoundOnly);
|
||||
@@ -505,7 +505,7 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
Assert.Equal("XXXXXX", disk.Region);
|
||||
Assert.Equal("XXXXXX", disk.Index);
|
||||
Assert.Equal(true, disk.Writable);
|
||||
Assert.Equal("XXXXXX", disk.Status);
|
||||
Assert.Equal(Data.Models.Metadata.ItemStatus.Good, disk.Status);
|
||||
Assert.Equal(true, disk.Optional);
|
||||
}
|
||||
|
||||
@@ -535,7 +535,7 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
Assert.NotNull(chip);
|
||||
Assert.Equal("XXXXXX", chip.Name);
|
||||
Assert.Equal("XXXXXX", chip.Tag);
|
||||
Assert.Equal("XXXXXX", chip.Type);
|
||||
Assert.Equal(Data.Models.Metadata.ChipType.CPU, chip.Type);
|
||||
Assert.Equal(true, chip.SoundOnly);
|
||||
Assert.Equal("XXXXXX", chip.Clock);
|
||||
}
|
||||
@@ -547,7 +547,7 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
{
|
||||
Assert.NotNull(display);
|
||||
Assert.Equal("XXXXXX", display.Tag);
|
||||
Assert.Equal("XXXXXX", display.Type);
|
||||
Assert.Equal(Data.Models.Metadata.DisplayType.Vector, display.Type);
|
||||
Assert.Equal("XXXXXX", display.Rotate);
|
||||
Assert.Equal(true, display.FlipX);
|
||||
Assert.Equal("XXXXXX", display.Width);
|
||||
@@ -568,7 +568,7 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
private static void Validate(Data.Models.Listxml.Video? video)
|
||||
{
|
||||
Assert.NotNull(video);
|
||||
Assert.Equal("XXXXXX", video.Screen);
|
||||
Assert.Equal(Data.Models.Metadata.DisplayType.Vector, video.Screen);
|
||||
Assert.Equal("XXXXXX", video.Orientation);
|
||||
Assert.Equal("XXXXXX", video.Width);
|
||||
Assert.Equal("XXXXXX", video.Height);
|
||||
@@ -610,7 +610,7 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
private static void Validate(Data.Models.Listxml.Control? control)
|
||||
{
|
||||
Assert.NotNull(control);
|
||||
Assert.Equal("XXXXXX", control.Type);
|
||||
Assert.Equal(Data.Models.Metadata.ControlType.Lightgun, control.Type);
|
||||
Assert.Equal("XXXXXX", control.Player);
|
||||
Assert.Equal("XXXXXX", control.Buttons);
|
||||
Assert.Equal("XXXXXX", control.ReqButtons);
|
||||
@@ -652,7 +652,7 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
Assert.NotNull(condition);
|
||||
Assert.Equal("XXXXXX", condition.Tag);
|
||||
Assert.Equal("XXXXXX", condition.Mask);
|
||||
Assert.Equal("XXXXXX", condition.Relation);
|
||||
Assert.Equal(Data.Models.Metadata.Relation.Equal, condition.Relation);
|
||||
Assert.Equal("XXXXXX", condition.Value);
|
||||
}
|
||||
|
||||
@@ -761,13 +761,13 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
private static void Validate(Data.Models.Listxml.Driver? driver)
|
||||
{
|
||||
Assert.NotNull(driver);
|
||||
Assert.Equal("XXXXXX", driver.Status);
|
||||
Assert.Equal("XXXXXX", driver.Color);
|
||||
Assert.Equal("XXXXXX", driver.Sound);
|
||||
Assert.Equal(Data.Models.Metadata.SupportStatus.Good, driver.Status);
|
||||
Assert.Equal(Data.Models.Metadata.SupportStatus.Good, driver.Color);
|
||||
Assert.Equal(Data.Models.Metadata.SupportStatus.Good, driver.Sound);
|
||||
Assert.Equal("XXXXXX", driver.PaletteSize);
|
||||
Assert.Equal("XXXXXX", driver.Emulation);
|
||||
Assert.Equal("XXXXXX", driver.Cocktail);
|
||||
Assert.Equal("XXXXXX", driver.SaveState);
|
||||
Assert.Equal(Data.Models.Metadata.SupportStatus.Good, driver.Emulation);
|
||||
Assert.Equal(Data.Models.Metadata.SupportStatus.Good, driver.Cocktail);
|
||||
Assert.Equal(Data.Models.Metadata.Supported.Yes, driver.SaveState);
|
||||
Assert.Equal(true, driver.RequiresArtwork);
|
||||
Assert.Equal(true, driver.Unofficial);
|
||||
Assert.Equal(true, driver.NoSoundHardware);
|
||||
@@ -780,9 +780,9 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
private static void Validate(Data.Models.Listxml.Feature? feature)
|
||||
{
|
||||
Assert.NotNull(feature);
|
||||
Assert.Equal("XXXXXX", feature.Type);
|
||||
Assert.Equal("XXXXXX", feature.Status);
|
||||
Assert.Equal("XXXXXX", feature.Overall);
|
||||
Assert.Equal(Data.Models.Metadata.FeatureType.Protection, feature.Type);
|
||||
Assert.Equal(Data.Models.Metadata.FeatureStatus.Imperfect, feature.Status);
|
||||
Assert.Equal(Data.Models.Metadata.FeatureStatus.Imperfect, feature.Overall);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -791,7 +791,7 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
private static void Validate(Data.Models.Listxml.Device? device)
|
||||
{
|
||||
Assert.NotNull(device);
|
||||
Assert.Equal("XXXXXX", device.Type);
|
||||
Assert.Equal(Data.Models.Metadata.DeviceType.PunchTape, device.Type);
|
||||
Assert.Equal("XXXXXX", device.Tag);
|
||||
Assert.Equal("XXXXXX", device.FixedImage);
|
||||
Assert.Equal("XXXXXX", device.Mandatory);
|
||||
@@ -854,7 +854,7 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
Assert.NotNull(softwarelist);
|
||||
Assert.Equal("XXXXXX", softwarelist.Tag);
|
||||
Assert.Equal("XXXXXX", softwarelist.Name);
|
||||
Assert.Equal("XXXXXX", softwarelist.Status);
|
||||
Assert.Equal(Data.Models.Metadata.SoftwareListStatus.Original, softwarelist.Status);
|
||||
Assert.Equal("XXXXXX", softwarelist.Filter);
|
||||
}
|
||||
|
||||
|
||||
@@ -76,7 +76,7 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
Merge = "XXXXXX",
|
||||
Region = "XXXXXX",
|
||||
Offset = "XXXXXX",
|
||||
Status = "XXXXXX",
|
||||
Status = Data.Models.Metadata.ItemStatus.Good,
|
||||
Optional = true,
|
||||
Dispose = true,
|
||||
SoundOnly = true,
|
||||
@@ -91,7 +91,7 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
Region = "XXXXXX",
|
||||
Index = "XXXXXX",
|
||||
Writable = true,
|
||||
Status = "XXXXXX",
|
||||
Status = Data.Models.Metadata.ItemStatus.Good,
|
||||
Optional = true,
|
||||
};
|
||||
|
||||
@@ -109,7 +109,7 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
{
|
||||
Name = "XXXXXX",
|
||||
Tag = "XXXXXX",
|
||||
Type = "XXXXXX",
|
||||
Type = Data.Models.Metadata.ChipType.CPU,
|
||||
SoundOnly = true,
|
||||
Clock = "XXXXXX",
|
||||
};
|
||||
@@ -117,7 +117,7 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
var display = new Data.Models.Listxml.Display
|
||||
{
|
||||
Tag = "XXXXXX",
|
||||
Type = "XXXXXX",
|
||||
Type = Data.Models.Metadata.DisplayType.Vector,
|
||||
Rotate = "XXXXXX",
|
||||
FlipX = true,
|
||||
Width = "XXXXXX",
|
||||
@@ -134,7 +134,7 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
|
||||
var video = new Data.Models.Listxml.Video
|
||||
{
|
||||
Screen = "XXXXXX",
|
||||
Screen = Data.Models.Metadata.DisplayType.Vector,
|
||||
Orientation = "XXXXXX",
|
||||
Width = "XXXXXX",
|
||||
Height = "XXXXXX",
|
||||
@@ -150,7 +150,7 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
|
||||
var control = new Data.Models.Listxml.Control
|
||||
{
|
||||
Type = "XXXXXX",
|
||||
Type = Data.Models.Metadata.ControlType.Lightgun,
|
||||
Player = "XXXXXX",
|
||||
Buttons = "XXXXXX",
|
||||
ReqButtons = "XXXXXX",
|
||||
@@ -179,7 +179,7 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
{
|
||||
Tag = "XXXXXX",
|
||||
Mask = "XXXXXX",
|
||||
Relation = "XXXXXX",
|
||||
Relation = Data.Models.Metadata.Relation.Equal,
|
||||
Value = "XXXXXX",
|
||||
};
|
||||
|
||||
@@ -253,13 +253,13 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
|
||||
var driver = new Data.Models.Listxml.Driver
|
||||
{
|
||||
Status = "XXXXXX",
|
||||
Color = "XXXXXX",
|
||||
Sound = "XXXXXX",
|
||||
Status = Data.Models.Metadata.SupportStatus.Good,
|
||||
Color = Data.Models.Metadata.SupportStatus.Good,
|
||||
Sound = Data.Models.Metadata.SupportStatus.Good,
|
||||
PaletteSize = "XXXXXX",
|
||||
Emulation = "XXXXXX",
|
||||
Cocktail = "XXXXXX",
|
||||
SaveState = "XXXXXX",
|
||||
Emulation = Data.Models.Metadata.SupportStatus.Good,
|
||||
Cocktail = Data.Models.Metadata.SupportStatus.Good,
|
||||
SaveState = Data.Models.Metadata.Supported.Yes,
|
||||
RequiresArtwork = true,
|
||||
Unofficial = true,
|
||||
NoSoundHardware = true,
|
||||
@@ -268,9 +268,9 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
|
||||
var feature = new Data.Models.Listxml.Feature
|
||||
{
|
||||
Type = "XXXXXX",
|
||||
Status = "XXXXXX",
|
||||
Overall = "XXXXXX",
|
||||
Type = Data.Models.Metadata.FeatureType.Protection,
|
||||
Status = Data.Models.Metadata.FeatureStatus.Imperfect,
|
||||
Overall = Data.Models.Metadata.FeatureStatus.Imperfect,
|
||||
};
|
||||
|
||||
var instance = new Data.Models.Listxml.Instance
|
||||
@@ -286,7 +286,7 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
|
||||
var device = new Data.Models.Listxml.Device
|
||||
{
|
||||
Type = "XXXXXX",
|
||||
Type = Data.Models.Metadata.DeviceType.PunchTape,
|
||||
Tag = "XXXXXX",
|
||||
FixedImage = "XXXXXX",
|
||||
Mandatory = "XXXXXX",
|
||||
@@ -312,7 +312,7 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
{
|
||||
Tag = "XXXXXX",
|
||||
Name = "XXXXXX",
|
||||
Status = "XXXXXX",
|
||||
Status = Data.Models.Metadata.SoftwareListStatus.Original,
|
||||
Filter = "XXXXXX",
|
||||
};
|
||||
|
||||
@@ -486,7 +486,7 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
Assert.Equal("XXXXXX", rom.Merge);
|
||||
Assert.Equal("XXXXXX", rom.Region);
|
||||
Assert.Equal("XXXXXX", rom.Offset);
|
||||
Assert.Equal("XXXXXX", rom.Status);
|
||||
Assert.Equal(Data.Models.Metadata.ItemStatus.Good, rom.Status);
|
||||
Assert.Equal(true, rom.Optional);
|
||||
Assert.Equal(true, rom.Dispose);
|
||||
Assert.Equal(true, rom.SoundOnly);
|
||||
@@ -505,7 +505,7 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
Assert.Equal("XXXXXX", disk.Region);
|
||||
Assert.Equal("XXXXXX", disk.Index);
|
||||
Assert.Equal(true, disk.Writable);
|
||||
Assert.Equal("XXXXXX", disk.Status);
|
||||
Assert.Equal(Data.Models.Metadata.ItemStatus.Good, disk.Status);
|
||||
Assert.Equal(true, disk.Optional);
|
||||
}
|
||||
|
||||
@@ -535,7 +535,7 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
Assert.NotNull(chip);
|
||||
Assert.Equal("XXXXXX", chip.Name);
|
||||
Assert.Equal("XXXXXX", chip.Tag);
|
||||
Assert.Equal("XXXXXX", chip.Type);
|
||||
Assert.Equal(Data.Models.Metadata.ChipType.CPU, chip.Type);
|
||||
Assert.Equal(true, chip.SoundOnly);
|
||||
Assert.Equal("XXXXXX", chip.Clock);
|
||||
}
|
||||
@@ -547,7 +547,7 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
{
|
||||
Assert.NotNull(display);
|
||||
Assert.Equal("XXXXXX", display.Tag);
|
||||
Assert.Equal("XXXXXX", display.Type);
|
||||
Assert.Equal(Data.Models.Metadata.DisplayType.Vector, display.Type);
|
||||
Assert.Equal("XXXXXX", display.Rotate);
|
||||
Assert.Equal(true, display.FlipX);
|
||||
Assert.Equal("XXXXXX", display.Width);
|
||||
@@ -568,7 +568,7 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
private static void Validate(Data.Models.Listxml.Video? video)
|
||||
{
|
||||
Assert.NotNull(video);
|
||||
Assert.Equal("XXXXXX", video.Screen);
|
||||
Assert.Equal(Data.Models.Metadata.DisplayType.Vector, video.Screen);
|
||||
Assert.Equal("XXXXXX", video.Orientation);
|
||||
Assert.Equal("XXXXXX", video.Width);
|
||||
Assert.Equal("XXXXXX", video.Height);
|
||||
@@ -610,7 +610,7 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
private static void Validate(Data.Models.Listxml.Control? control)
|
||||
{
|
||||
Assert.NotNull(control);
|
||||
Assert.Equal("XXXXXX", control.Type);
|
||||
Assert.Equal(Data.Models.Metadata.ControlType.Lightgun, control.Type);
|
||||
Assert.Equal("XXXXXX", control.Player);
|
||||
Assert.Equal("XXXXXX", control.Buttons);
|
||||
Assert.Equal("XXXXXX", control.ReqButtons);
|
||||
@@ -652,7 +652,7 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
Assert.NotNull(condition);
|
||||
Assert.Equal("XXXXXX", condition.Tag);
|
||||
Assert.Equal("XXXXXX", condition.Mask);
|
||||
Assert.Equal("XXXXXX", condition.Relation);
|
||||
Assert.Equal(Data.Models.Metadata.Relation.Equal, condition.Relation);
|
||||
Assert.Equal("XXXXXX", condition.Value);
|
||||
}
|
||||
|
||||
@@ -761,13 +761,13 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
private static void Validate(Data.Models.Listxml.Driver? driver)
|
||||
{
|
||||
Assert.NotNull(driver);
|
||||
Assert.Equal("XXXXXX", driver.Status);
|
||||
Assert.Equal("XXXXXX", driver.Color);
|
||||
Assert.Equal("XXXXXX", driver.Sound);
|
||||
Assert.Equal(Data.Models.Metadata.SupportStatus.Good, driver.Status);
|
||||
Assert.Equal(Data.Models.Metadata.SupportStatus.Good, driver.Color);
|
||||
Assert.Equal(Data.Models.Metadata.SupportStatus.Good, driver.Sound);
|
||||
Assert.Equal("XXXXXX", driver.PaletteSize);
|
||||
Assert.Equal("XXXXXX", driver.Emulation);
|
||||
Assert.Equal("XXXXXX", driver.Cocktail);
|
||||
Assert.Equal("XXXXXX", driver.SaveState);
|
||||
Assert.Equal(Data.Models.Metadata.SupportStatus.Good, driver.Emulation);
|
||||
Assert.Equal(Data.Models.Metadata.SupportStatus.Good, driver.Cocktail);
|
||||
Assert.Equal(Data.Models.Metadata.Supported.Yes, driver.SaveState);
|
||||
Assert.Equal(true, driver.RequiresArtwork);
|
||||
Assert.Equal(true, driver.Unofficial);
|
||||
Assert.Equal(true, driver.NoSoundHardware);
|
||||
@@ -780,9 +780,9 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
private static void Validate(Data.Models.Listxml.Feature? feature)
|
||||
{
|
||||
Assert.NotNull(feature);
|
||||
Assert.Equal("XXXXXX", feature.Type);
|
||||
Assert.Equal("XXXXXX", feature.Status);
|
||||
Assert.Equal("XXXXXX", feature.Overall);
|
||||
Assert.Equal(Data.Models.Metadata.FeatureType.Protection, feature.Type);
|
||||
Assert.Equal(Data.Models.Metadata.FeatureStatus.Imperfect, feature.Status);
|
||||
Assert.Equal(Data.Models.Metadata.FeatureStatus.Imperfect, feature.Overall);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -791,7 +791,7 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
private static void Validate(Data.Models.Listxml.Device? device)
|
||||
{
|
||||
Assert.NotNull(device);
|
||||
Assert.Equal("XXXXXX", device.Type);
|
||||
Assert.Equal(Data.Models.Metadata.DeviceType.PunchTape, device.Type);
|
||||
Assert.Equal("XXXXXX", device.Tag);
|
||||
Assert.Equal("XXXXXX", device.FixedImage);
|
||||
Assert.Equal("XXXXXX", device.Mandatory);
|
||||
@@ -854,7 +854,7 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
Assert.NotNull(softwarelist);
|
||||
Assert.Equal("XXXXXX", softwarelist.Tag);
|
||||
Assert.Equal("XXXXXX", softwarelist.Name);
|
||||
Assert.Equal("XXXXXX", softwarelist.Status);
|
||||
Assert.Equal(Data.Models.Metadata.SoftwareListStatus.Original, softwarelist.Status);
|
||||
Assert.Equal("XXXXXX", softwarelist.Filter);
|
||||
}
|
||||
|
||||
|
||||
@@ -49,7 +49,7 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
DiskName = "XXXXXX",
|
||||
MD5 = "XXXXXX",
|
||||
SHA1 = "XXXXXX",
|
||||
Status = "XXXXXX",
|
||||
Status = Data.Models.Metadata.ItemStatus.Good,
|
||||
};
|
||||
|
||||
var media = new Data.Models.SeparatedValue.Row
|
||||
@@ -84,7 +84,7 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
SHA384 = "XXXXXX",
|
||||
SHA512 = "XXXXXX",
|
||||
SpamSum = "XXXXXX",
|
||||
Status = "XXXXXX",
|
||||
Status = Data.Models.Metadata.ItemStatus.Good,
|
||||
};
|
||||
|
||||
return new Data.Models.SeparatedValue.MetadataFile
|
||||
@@ -126,7 +126,7 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
Assert.Null(row.SHA384);
|
||||
Assert.Null(row.SHA512);
|
||||
Assert.Null(row.SpamSum);
|
||||
Assert.Equal("XXXXXX", row.Status);
|
||||
Assert.Equal(Data.Models.Metadata.ItemStatus.Good, row.Status);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -176,7 +176,7 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
Assert.Equal("XXXXXX", row.SHA384);
|
||||
Assert.Equal("XXXXXX", row.SHA512);
|
||||
Assert.Equal("XXXXXX", row.SpamSum);
|
||||
Assert.Equal("XXXXXX", row.Status);
|
||||
Assert.Equal(Data.Models.Metadata.ItemStatus.Good, row.Status);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -63,8 +63,8 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
SHA1 = "XXXXXX",
|
||||
Offset = "XXXXXX",
|
||||
Value = "XXXXXX",
|
||||
Status = "XXXXXX",
|
||||
LoadFlag = "XXXXXX",
|
||||
Status = Data.Models.Metadata.ItemStatus.Good,
|
||||
LoadFlag = Data.Models.Metadata.LoadFlag.Load16Byte,
|
||||
};
|
||||
|
||||
var dataarea = new Data.Models.SoftwareList.DataArea
|
||||
@@ -72,7 +72,7 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
Name = "XXXXXX",
|
||||
Size = "XXXXXX",
|
||||
Width = "XXXXXX",
|
||||
Endianness = "XXXXXX",
|
||||
Endianness = Data.Models.Metadata.Endianness.Big,
|
||||
Rom = [rom],
|
||||
};
|
||||
|
||||
@@ -81,7 +81,7 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
Name = "XXXXXX",
|
||||
MD5 = "XXXXXX",
|
||||
SHA1 = "XXXXXX",
|
||||
Status = "XXXXXX",
|
||||
Status = Data.Models.Metadata.ItemStatus.Good,
|
||||
Writeable = true,
|
||||
};
|
||||
|
||||
@@ -120,7 +120,7 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
{
|
||||
Name = "XXXXXX",
|
||||
CloneOf = "XXXXXX",
|
||||
Supported = "XXXXXX",
|
||||
Supported = Data.Models.Metadata.Supported.Yes,
|
||||
Description = "XXXXXX",
|
||||
Year = "XXXXXX",
|
||||
Publisher = "XXXXXX",
|
||||
@@ -147,7 +147,7 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
Assert.NotNull(software);
|
||||
Assert.Equal("XXXXXX", software.Name);
|
||||
Assert.Equal("XXXXXX", software.CloneOf);
|
||||
Assert.Equal("XXXXXX", software.Supported);
|
||||
Assert.Equal(Data.Models.Metadata.Supported.Yes, software.Supported);
|
||||
Assert.Equal("XXXXXX", software.Description);
|
||||
Assert.Equal("XXXXXX", software.Year);
|
||||
Assert.Equal("XXXXXX", software.Publisher);
|
||||
@@ -231,7 +231,7 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
Assert.Equal("XXXXXX", dataarea.Name);
|
||||
Assert.Equal("XXXXXX", dataarea.Size);
|
||||
Assert.Equal("XXXXXX", dataarea.Width);
|
||||
Assert.Equal("XXXXXX", dataarea.Endianness);
|
||||
Assert.Equal(Data.Models.Metadata.Endianness.Big, dataarea.Endianness);
|
||||
|
||||
Assert.NotNull(dataarea.Rom);
|
||||
var rom = Assert.Single(dataarea.Rom);
|
||||
@@ -251,8 +251,8 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
Assert.Equal("XXXXXX", rom.SHA1);
|
||||
Assert.Equal("XXXXXX", rom.Offset);
|
||||
Assert.Equal("XXXXXX", rom.Value);
|
||||
Assert.Equal("XXXXXX", rom.Status);
|
||||
Assert.Equal("XXXXXX", rom.LoadFlag);
|
||||
Assert.Equal(Data.Models.Metadata.ItemStatus.Good, rom.Status);
|
||||
Assert.Equal(Data.Models.Metadata.LoadFlag.Load16Byte, rom.LoadFlag);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -277,7 +277,7 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
Assert.Equal("XXXXXX", disk.Name);
|
||||
Assert.Equal("XXXXXX", disk.MD5);
|
||||
Assert.Equal("XXXXXX", disk.SHA1);
|
||||
Assert.Equal("XXXXXX", disk.Status);
|
||||
Assert.Equal(Data.Models.Metadata.ItemStatus.Good, disk.Status);
|
||||
Assert.Equal(true, disk.Writeable);
|
||||
}
|
||||
|
||||
|
||||
@@ -55,9 +55,9 @@ namespace SabreTools.Serialization.CrossModel
|
||||
Comment = item.ReadString(Data.Models.Metadata.Header.CommentKey),
|
||||
Header = item.ReadString(Data.Models.Metadata.Header.HeaderKey),
|
||||
Type = item.ReadString(Data.Models.Metadata.Header.TypeKey),
|
||||
ForceMerging = item.ReadString(Data.Models.Metadata.Header.ForceMergingKey),
|
||||
ForceMerging = item.ForceMerging,
|
||||
ForceZipping = item.ForceZipping,
|
||||
ForcePacking = item.ReadString(Data.Models.Metadata.Header.ForcePackingKey),
|
||||
ForcePacking = item.ForcePacking,
|
||||
};
|
||||
return clrMamePro;
|
||||
}
|
||||
@@ -167,7 +167,7 @@ namespace SabreTools.Serialization.CrossModel
|
||||
{
|
||||
var chip = new Chip
|
||||
{
|
||||
Type = item.ReadString(Data.Models.Metadata.Chip.ChipTypeKey),
|
||||
Type = item.ChipType,
|
||||
Name = item.Name,
|
||||
Flags = item.ReadString(Data.Models.Metadata.Chip.FlagsKey),
|
||||
Clock = item.ReadString(Data.Models.Metadata.Chip.ClockKey),
|
||||
@@ -200,7 +200,7 @@ namespace SabreTools.Serialization.CrossModel
|
||||
MD5 = item.ReadString(Data.Models.Metadata.Disk.MD5Key),
|
||||
SHA1 = item.ReadString(Data.Models.Metadata.Disk.SHA1Key),
|
||||
Merge = item.ReadString(Data.Models.Metadata.Disk.MergeKey),
|
||||
Status = item.ReadString(Data.Models.Metadata.Disk.StatusKey),
|
||||
Status = item.Status,
|
||||
Flags = item.ReadString(Data.Models.Metadata.Disk.FlagsKey),
|
||||
};
|
||||
return disk;
|
||||
@@ -213,11 +213,11 @@ namespace SabreTools.Serialization.CrossModel
|
||||
{
|
||||
var driver = new Driver
|
||||
{
|
||||
Status = item.ReadString(Data.Models.Metadata.Driver.StatusKey),
|
||||
Color = item.ReadString(Data.Models.Metadata.Driver.ColorKey),
|
||||
Sound = item.ReadString(Data.Models.Metadata.Driver.SoundKey),
|
||||
Status = item.Status,
|
||||
Color = item.Color,
|
||||
Sound = item.Sound,
|
||||
PaletteSize = item.ReadString(Data.Models.Metadata.Driver.PaletteSizeKey),
|
||||
Blit = item.ReadString(Data.Models.Metadata.Driver.BlitKey),
|
||||
Blit = item.Blit,
|
||||
};
|
||||
return driver;
|
||||
}
|
||||
@@ -296,7 +296,7 @@ namespace SabreTools.Serialization.CrossModel
|
||||
xxHash364 = item.ReadString(Data.Models.Metadata.Rom.xxHash364Key),
|
||||
xxHash3128 = item.ReadString(Data.Models.Metadata.Rom.xxHash3128Key),
|
||||
Merge = item.ReadString(Data.Models.Metadata.Rom.MergeKey),
|
||||
Status = item.ReadString(Data.Models.Metadata.Rom.StatusKey),
|
||||
Status = item.Status,
|
||||
Region = item.ReadString(Data.Models.Metadata.Rom.RegionKey),
|
||||
Flags = item.ReadString(Data.Models.Metadata.Rom.FlagsKey),
|
||||
Offs = item.ReadString(Data.Models.Metadata.Rom.OffsetKey),
|
||||
@@ -340,7 +340,7 @@ namespace SabreTools.Serialization.CrossModel
|
||||
{
|
||||
var video = new Video
|
||||
{
|
||||
Screen = item.ReadString(Data.Models.Metadata.Video.ScreenKey),
|
||||
Screen = item.Screen,
|
||||
Orientation = item.ReadString(Data.Models.Metadata.Video.OrientationKey),
|
||||
X = item.ReadString(Data.Models.Metadata.Video.WidthKey),
|
||||
Y = item.ReadString(Data.Models.Metadata.Video.HeightKey),
|
||||
|
||||
@@ -35,7 +35,7 @@ namespace SabreTools.Serialization.CrossModel
|
||||
{
|
||||
var header = new Data.Models.Metadata.Header
|
||||
{
|
||||
Name = item.Name,
|
||||
Name = item.Name,
|
||||
[Data.Models.Metadata.Header.DescriptionKey] = item.Description,
|
||||
[Data.Models.Metadata.Header.RootDirKey] = item.RootDir,
|
||||
[Data.Models.Metadata.Header.CategoryKey] = item.Category,
|
||||
@@ -47,9 +47,9 @@ namespace SabreTools.Serialization.CrossModel
|
||||
[Data.Models.Metadata.Header.CommentKey] = item.Comment,
|
||||
[Data.Models.Metadata.Header.HeaderKey] = item.Header,
|
||||
[Data.Models.Metadata.Header.TypeKey] = item.Type,
|
||||
[Data.Models.Metadata.Header.ForceMergingKey] = item.ForceMerging,
|
||||
ForceMerging = item.ForceMerging,
|
||||
ForceZipping = item.ForceZipping,
|
||||
[Data.Models.Metadata.Header.ForcePackingKey] = item.ForcePacking,
|
||||
ForcePacking = item.ForcePacking,
|
||||
};
|
||||
return header;
|
||||
}
|
||||
@@ -180,7 +180,7 @@ namespace SabreTools.Serialization.CrossModel
|
||||
{
|
||||
var chip = new Data.Models.Metadata.Chip
|
||||
{
|
||||
[Data.Models.Metadata.Chip.ChipTypeKey] = item.Type,
|
||||
ChipType = item.Type,
|
||||
Name = item.Name,
|
||||
[Data.Models.Metadata.Chip.FlagsKey] = item.Flags,
|
||||
[Data.Models.Metadata.Chip.ClockKey] = item.Clock,
|
||||
@@ -213,7 +213,7 @@ namespace SabreTools.Serialization.CrossModel
|
||||
[Data.Models.Metadata.Disk.MD5Key] = item.MD5,
|
||||
[Data.Models.Metadata.Disk.SHA1Key] = item.SHA1,
|
||||
[Data.Models.Metadata.Disk.MergeKey] = item.Merge,
|
||||
[Data.Models.Metadata.Disk.StatusKey] = item.Status,
|
||||
Status = item.Status,
|
||||
[Data.Models.Metadata.Disk.FlagsKey] = item.Flags,
|
||||
};
|
||||
return disk;
|
||||
@@ -226,11 +226,11 @@ namespace SabreTools.Serialization.CrossModel
|
||||
{
|
||||
var driver = new Data.Models.Metadata.Driver
|
||||
{
|
||||
[Data.Models.Metadata.Driver.StatusKey] = item.Status,
|
||||
[Data.Models.Metadata.Driver.ColorKey] = item.Color,
|
||||
[Data.Models.Metadata.Driver.SoundKey] = item.Sound,
|
||||
Status = item.Status,
|
||||
Color = item.Color,
|
||||
Sound = item.Sound,
|
||||
[Data.Models.Metadata.Driver.PaletteSizeKey] = item.PaletteSize,
|
||||
[Data.Models.Metadata.Driver.BlitKey] = item.Blit,
|
||||
Blit = item.Blit,
|
||||
};
|
||||
return driver;
|
||||
}
|
||||
@@ -309,7 +309,7 @@ namespace SabreTools.Serialization.CrossModel
|
||||
[Data.Models.Metadata.Rom.xxHash364Key] = item.xxHash364,
|
||||
[Data.Models.Metadata.Rom.xxHash3128Key] = item.xxHash3128,
|
||||
[Data.Models.Metadata.Rom.MergeKey] = item.Merge,
|
||||
[Data.Models.Metadata.Rom.StatusKey] = item.Status,
|
||||
Status = item.Status,
|
||||
[Data.Models.Metadata.Rom.RegionKey] = item.Region,
|
||||
[Data.Models.Metadata.Rom.FlagsKey] = item.Flags,
|
||||
[Data.Models.Metadata.Rom.OffsetKey] = item.Offs,
|
||||
@@ -353,7 +353,7 @@ namespace SabreTools.Serialization.CrossModel
|
||||
{
|
||||
var video = new Data.Models.Metadata.Video
|
||||
{
|
||||
[Data.Models.Metadata.Video.ScreenKey] = item.Screen,
|
||||
Screen = item.Screen,
|
||||
[Data.Models.Metadata.Video.OrientationKey] = item.Orientation,
|
||||
[Data.Models.Metadata.Video.WidthKey] = item.X,
|
||||
[Data.Models.Metadata.Video.HeightKey] = item.Y,
|
||||
|
||||
@@ -60,9 +60,9 @@ namespace SabreTools.Serialization.CrossModel
|
||||
SHA1 = item.ReadString(Data.Models.Metadata.Disk.SHA1Key),
|
||||
};
|
||||
|
||||
if ((item[Data.Models.Metadata.Disk.StatusKey] as string) == "nodump")
|
||||
if (item.Status == Data.Models.Metadata.ItemStatus.Nodump)
|
||||
row.NoGoodDumpKnown = true;
|
||||
else if ((item[Data.Models.Metadata.Disk.StatusKey] as string) == "baddump")
|
||||
else if (item.Status == Data.Models.Metadata.ItemStatus.BadDump)
|
||||
row.Bad = true;
|
||||
|
||||
return row;
|
||||
@@ -81,9 +81,9 @@ namespace SabreTools.Serialization.CrossModel
|
||||
SHA1 = item.ReadString(Data.Models.Metadata.Rom.SHA1Key),
|
||||
};
|
||||
|
||||
if ((item[Data.Models.Metadata.Rom.StatusKey] as string) == "nodump")
|
||||
if (item.Status == Data.Models.Metadata.ItemStatus.Nodump)
|
||||
row.NoGoodDumpKnown = true;
|
||||
else if ((item[Data.Models.Metadata.Rom.StatusKey] as string) == "baddump")
|
||||
else if (item.Status == Data.Models.Metadata.ItemStatus.BadDump)
|
||||
row.Bad = true;
|
||||
|
||||
return row;
|
||||
|
||||
@@ -89,9 +89,9 @@ namespace SabreTools.Serialization.CrossModel
|
||||
};
|
||||
|
||||
if (item.NoGoodDumpKnown)
|
||||
disk[Data.Models.Metadata.Disk.StatusKey] = "nodump";
|
||||
disk.Status = Data.Models.Metadata.ItemStatus.Nodump;
|
||||
else if (item.Bad)
|
||||
disk[Data.Models.Metadata.Disk.StatusKey] = "baddump";
|
||||
disk.Status = Data.Models.Metadata.ItemStatus.BadDump;
|
||||
|
||||
return disk;
|
||||
}
|
||||
@@ -106,9 +106,9 @@ namespace SabreTools.Serialization.CrossModel
|
||||
};
|
||||
|
||||
if (item.NoGoodDumpKnown)
|
||||
rom[Data.Models.Metadata.Rom.StatusKey] = "nodump";
|
||||
rom.Status = Data.Models.Metadata.ItemStatus.Nodump;
|
||||
else if (item.Bad)
|
||||
rom[Data.Models.Metadata.Rom.StatusKey] = "baddump";
|
||||
rom.Status = Data.Models.Metadata.ItemStatus.BadDump;
|
||||
|
||||
return rom;
|
||||
}
|
||||
|
||||
@@ -194,7 +194,7 @@ namespace SabreTools.Serialization.CrossModel
|
||||
{
|
||||
Name = item.Name,
|
||||
Tag = item.ReadString(Data.Models.Metadata.Chip.TagKey),
|
||||
Type = item.ReadString(Data.Models.Metadata.Chip.ChipTypeKey),
|
||||
Type = item.ChipType,
|
||||
SoundOnly = item.SoundOnly,
|
||||
Clock = item.ReadString(Data.Models.Metadata.Chip.ClockKey),
|
||||
};
|
||||
@@ -210,7 +210,7 @@ namespace SabreTools.Serialization.CrossModel
|
||||
{
|
||||
Tag = item.ReadString(Data.Models.Metadata.Condition.TagKey),
|
||||
Mask = item.ReadString(Data.Models.Metadata.Condition.MaskKey),
|
||||
Relation = item.ReadString(Data.Models.Metadata.Condition.RelationKey),
|
||||
Relation = item.Relation,
|
||||
Value = item.ReadString(Data.Models.Metadata.Condition.ValueKey),
|
||||
};
|
||||
return condition;
|
||||
@@ -283,7 +283,7 @@ namespace SabreTools.Serialization.CrossModel
|
||||
{
|
||||
var control = new Control
|
||||
{
|
||||
Type = item.ReadString(Data.Models.Metadata.Control.ControlTypeKey),
|
||||
Type = item.ControlType,
|
||||
Player = item.ReadString(Data.Models.Metadata.Control.PlayerKey),
|
||||
Buttons = item.ReadString(Data.Models.Metadata.Control.ButtonsKey),
|
||||
ReqButtons = item.ReadString(Data.Models.Metadata.Control.ReqButtonsKey),
|
||||
@@ -306,7 +306,7 @@ namespace SabreTools.Serialization.CrossModel
|
||||
{
|
||||
var device = new Device
|
||||
{
|
||||
Type = item.ReadString(Data.Models.Metadata.Device.DeviceTypeKey),
|
||||
Type = item.DeviceType,
|
||||
Tag = item.ReadString(Data.Models.Metadata.Device.TagKey),
|
||||
FixedImage = item.ReadString(Data.Models.Metadata.Device.FixedImageKey),
|
||||
Mandatory = item.ReadString(Data.Models.Metadata.Device.MandatoryKey),
|
||||
@@ -410,7 +410,7 @@ namespace SabreTools.Serialization.CrossModel
|
||||
Region = item.ReadString(Data.Models.Metadata.Disk.RegionKey),
|
||||
Index = item.ReadString(Data.Models.Metadata.Disk.IndexKey),
|
||||
Writable = item.Writable,
|
||||
Status = item.ReadString(Data.Models.Metadata.Disk.StatusKey),
|
||||
Status = item.Status,
|
||||
Optional = item.Optional,
|
||||
};
|
||||
return disk;
|
||||
@@ -424,7 +424,7 @@ namespace SabreTools.Serialization.CrossModel
|
||||
var display = new Display
|
||||
{
|
||||
Tag = item.ReadString(Data.Models.Metadata.Display.TagKey),
|
||||
Type = item.ReadString(Data.Models.Metadata.Display.DisplayTypeKey),
|
||||
Type = item.DisplayType,
|
||||
Rotate = item.ReadString(Data.Models.Metadata.Display.RotateKey),
|
||||
FlipX = item.FlipX,
|
||||
Width = item.ReadString(Data.Models.Metadata.Display.WidthKey),
|
||||
@@ -448,13 +448,13 @@ namespace SabreTools.Serialization.CrossModel
|
||||
{
|
||||
var driver = new Driver
|
||||
{
|
||||
Status = item.ReadString(Data.Models.Metadata.Driver.StatusKey),
|
||||
Color = item.ReadString(Data.Models.Metadata.Driver.ColorKey),
|
||||
Sound = item.ReadString(Data.Models.Metadata.Driver.SoundKey),
|
||||
Status = item.Status,
|
||||
Color = item.Color,
|
||||
Sound = item.Sound,
|
||||
PaletteSize = item.ReadString(Data.Models.Metadata.Driver.PaletteSizeKey),
|
||||
Emulation = item.ReadString(Data.Models.Metadata.Driver.EmulationKey),
|
||||
Cocktail = item.ReadString(Data.Models.Metadata.Driver.CocktailKey),
|
||||
SaveState = item.ReadString(Data.Models.Metadata.Driver.SaveStateKey),
|
||||
Emulation = item.Emulation,
|
||||
Cocktail = item.Cocktail,
|
||||
SaveState = item.SaveState,
|
||||
RequiresArtwork = item.RequiresArtwork,
|
||||
Unofficial = item.Unofficial,
|
||||
NoSoundHardware = item.NoSoundHardware,
|
||||
@@ -482,9 +482,9 @@ namespace SabreTools.Serialization.CrossModel
|
||||
{
|
||||
var feature = new Feature
|
||||
{
|
||||
Type = item.ReadString(Data.Models.Metadata.Feature.FeatureTypeKey),
|
||||
Status = item.ReadString(Data.Models.Metadata.Feature.StatusKey),
|
||||
Overall = item.ReadString(Data.Models.Metadata.Feature.OverallKey),
|
||||
Type = item.FeatureType,
|
||||
Status = item.Status,
|
||||
Overall = item.Overall,
|
||||
};
|
||||
return feature;
|
||||
}
|
||||
@@ -573,7 +573,7 @@ namespace SabreTools.Serialization.CrossModel
|
||||
Merge = item.ReadString(Data.Models.Metadata.Rom.MergeKey),
|
||||
Region = item.ReadString(Data.Models.Metadata.Rom.RegionKey),
|
||||
Offset = item.ReadString(Data.Models.Metadata.Rom.OffsetKey),
|
||||
Status = item.ReadString(Data.Models.Metadata.Rom.StatusKey),
|
||||
Status = item.Status,
|
||||
Optional = item.Optional,
|
||||
Dispose = item.Dispose,
|
||||
SoundOnly = item.SoundOnly,
|
||||
@@ -633,7 +633,7 @@ namespace SabreTools.Serialization.CrossModel
|
||||
{
|
||||
Tag = item.ReadString(Data.Models.Metadata.SoftwareList.TagKey),
|
||||
Name = item.Name,
|
||||
Status = item.ReadString(Data.Models.Metadata.SoftwareList.StatusKey),
|
||||
Status = item.Status,
|
||||
Filter = item.ReadString(Data.Models.Metadata.SoftwareList.FilterKey),
|
||||
};
|
||||
return softwareList;
|
||||
@@ -658,7 +658,7 @@ namespace SabreTools.Serialization.CrossModel
|
||||
{
|
||||
var video = new Video
|
||||
{
|
||||
Screen = item.ReadString(Data.Models.Metadata.Video.ScreenKey),
|
||||
Screen = item.Screen,
|
||||
Orientation = item.ReadString(Data.Models.Metadata.Video.OrientationKey),
|
||||
Width = item.ReadString(Data.Models.Metadata.Video.WidthKey),
|
||||
Height = item.ReadString(Data.Models.Metadata.Video.HeightKey),
|
||||
|
||||
@@ -227,7 +227,7 @@ namespace SabreTools.Serialization.CrossModel
|
||||
{
|
||||
Name = item.Name,
|
||||
[Data.Models.Metadata.Chip.TagKey] = item.Tag,
|
||||
[Data.Models.Metadata.Chip.ChipTypeKey] = item.Type,
|
||||
ChipType = item.Type,
|
||||
SoundOnly = item.SoundOnly,
|
||||
[Data.Models.Metadata.Chip.ClockKey] = item.Clock,
|
||||
};
|
||||
@@ -243,7 +243,7 @@ namespace SabreTools.Serialization.CrossModel
|
||||
{
|
||||
[Data.Models.Metadata.Condition.TagKey] = item.Tag,
|
||||
[Data.Models.Metadata.Condition.MaskKey] = item.Mask,
|
||||
[Data.Models.Metadata.Condition.RelationKey] = item.Relation,
|
||||
Relation = item.Relation,
|
||||
[Data.Models.Metadata.Condition.ValueKey] = item.Value,
|
||||
};
|
||||
return condition;
|
||||
@@ -318,7 +318,7 @@ namespace SabreTools.Serialization.CrossModel
|
||||
{
|
||||
var control = new Data.Models.Metadata.Control
|
||||
{
|
||||
[Data.Models.Metadata.Control.ControlTypeKey] = item.Type,
|
||||
ControlType = item.Type,
|
||||
[Data.Models.Metadata.Control.PlayerKey] = item.Player,
|
||||
[Data.Models.Metadata.Control.ButtonsKey] = item.Buttons,
|
||||
[Data.Models.Metadata.Control.ReqButtonsKey] = item.ReqButtons,
|
||||
@@ -341,7 +341,7 @@ namespace SabreTools.Serialization.CrossModel
|
||||
{
|
||||
var device = new Data.Models.Metadata.Device
|
||||
{
|
||||
[Data.Models.Metadata.Device.DeviceTypeKey] = item.Type,
|
||||
DeviceType = item.Type,
|
||||
[Data.Models.Metadata.Device.TagKey] = item.Tag,
|
||||
[Data.Models.Metadata.Device.FixedImageKey] = item.FixedImage,
|
||||
[Data.Models.Metadata.Device.MandatoryKey] = item.Mandatory,
|
||||
@@ -448,7 +448,7 @@ namespace SabreTools.Serialization.CrossModel
|
||||
[Data.Models.Metadata.Disk.RegionKey] = item.Region,
|
||||
[Data.Models.Metadata.Disk.IndexKey] = item.Index,
|
||||
Writable = item.Writable,
|
||||
[Data.Models.Metadata.Disk.StatusKey] = item.Status,
|
||||
Status = item.Status,
|
||||
Optional = item.Optional,
|
||||
};
|
||||
return disk;
|
||||
@@ -462,7 +462,7 @@ namespace SabreTools.Serialization.CrossModel
|
||||
var display = new Data.Models.Metadata.Display
|
||||
{
|
||||
[Data.Models.Metadata.Display.TagKey] = item.Tag,
|
||||
[Data.Models.Metadata.Display.DisplayTypeKey] = item.Type,
|
||||
DisplayType = item.Type,
|
||||
[Data.Models.Metadata.Display.RotateKey] = item.Rotate,
|
||||
FlipX = item.FlipX,
|
||||
[Data.Models.Metadata.Display.WidthKey] = item.Width,
|
||||
@@ -486,13 +486,13 @@ namespace SabreTools.Serialization.CrossModel
|
||||
{
|
||||
var driver = new Data.Models.Metadata.Driver
|
||||
{
|
||||
[Data.Models.Metadata.Driver.StatusKey] = item.Status,
|
||||
[Data.Models.Metadata.Driver.ColorKey] = item.Color,
|
||||
[Data.Models.Metadata.Driver.SoundKey] = item.Sound,
|
||||
Status = item.Status,
|
||||
Color = item.Color,
|
||||
Sound = item.Sound,
|
||||
[Data.Models.Metadata.Driver.PaletteSizeKey] = item.PaletteSize,
|
||||
[Data.Models.Metadata.Driver.EmulationKey] = item.Emulation,
|
||||
[Data.Models.Metadata.Driver.CocktailKey] = item.Cocktail,
|
||||
[Data.Models.Metadata.Driver.SaveStateKey] = item.SaveState,
|
||||
Emulation = item.Emulation,
|
||||
Cocktail = item.Cocktail,
|
||||
SaveState = item.SaveState,
|
||||
RequiresArtwork = item.RequiresArtwork,
|
||||
Unofficial = item.Unofficial,
|
||||
NoSoundHardware = item.NoSoundHardware,
|
||||
@@ -520,9 +520,9 @@ namespace SabreTools.Serialization.CrossModel
|
||||
{
|
||||
var feature = new Data.Models.Metadata.Feature
|
||||
{
|
||||
[Data.Models.Metadata.Feature.FeatureTypeKey] = item.Type,
|
||||
[Data.Models.Metadata.Feature.StatusKey] = item.Status,
|
||||
[Data.Models.Metadata.Feature.OverallKey] = item.Overall,
|
||||
FeatureType = item.Type,
|
||||
Status = item.Status,
|
||||
Overall = item.Overall,
|
||||
};
|
||||
return feature;
|
||||
}
|
||||
@@ -612,7 +612,7 @@ namespace SabreTools.Serialization.CrossModel
|
||||
[Data.Models.Metadata.Rom.MergeKey] = item.Merge,
|
||||
[Data.Models.Metadata.Rom.RegionKey] = item.Region,
|
||||
[Data.Models.Metadata.Rom.OffsetKey] = item.Offset,
|
||||
[Data.Models.Metadata.Rom.StatusKey] = item.Status,
|
||||
Status = item.Status,
|
||||
Optional = item.Optional,
|
||||
Dispose = item.Dispose,
|
||||
SoundOnly = item.SoundOnly,
|
||||
@@ -674,7 +674,7 @@ namespace SabreTools.Serialization.CrossModel
|
||||
{
|
||||
[Data.Models.Metadata.SoftwareList.TagKey] = item.Tag,
|
||||
Name = item.Name,
|
||||
[Data.Models.Metadata.SoftwareList.StatusKey] = item.Status,
|
||||
Status = item.Status,
|
||||
[Data.Models.Metadata.SoftwareList.FilterKey] = item.Filter,
|
||||
};
|
||||
return softwareList;
|
||||
@@ -699,7 +699,7 @@ namespace SabreTools.Serialization.CrossModel
|
||||
{
|
||||
var video = new Data.Models.Metadata.Video
|
||||
{
|
||||
[Data.Models.Metadata.Video.ScreenKey] = item.Screen,
|
||||
Screen = item.Screen,
|
||||
[Data.Models.Metadata.Video.OrientationKey] = item.Orientation,
|
||||
[Data.Models.Metadata.Video.WidthKey] = item.Width,
|
||||
[Data.Models.Metadata.Video.HeightKey] = item.Height,
|
||||
|
||||
@@ -57,38 +57,38 @@ namespace SabreTools.Serialization.CrossModel
|
||||
};
|
||||
|
||||
string? headerVal = item.ReadString(Data.Models.Metadata.Header.HeaderKey);
|
||||
string? forceMerging = item.ReadString(Data.Models.Metadata.Header.ForceMergingKey);
|
||||
string? forceNodump = item.ReadString(Data.Models.Metadata.Header.ForceNodumpKey);
|
||||
string? forceUnpacking = item.ReadString(Data.Models.Metadata.Header.ForcePackingKey);
|
||||
Data.Models.Metadata.MergingFlag forceMerging = item.ForceMerging;
|
||||
Data.Models.Metadata.NodumpFlag forceNodump = item.ForceNodump;
|
||||
Data.Models.Metadata.PackingFlag forcePacking = item.ForcePacking;
|
||||
|
||||
if (headerVal is not null
|
||||
|| forceMerging is not null
|
||||
|| forceNodump is not null
|
||||
|| forceUnpacking is not null)
|
||||
|| forceMerging is not Data.Models.Metadata.MergingFlag.None
|
||||
|| forceNodump is not Data.Models.Metadata.NodumpFlag.None
|
||||
|| forcePacking is not Data.Models.Metadata.PackingFlag.None)
|
||||
{
|
||||
header.ClrMamePro = new Data.Models.Logiqx.ClrMamePro();
|
||||
if (headerVal is not null)
|
||||
header.ClrMamePro.Header = headerVal;
|
||||
if (forceMerging is not null)
|
||||
if (forceMerging is not Data.Models.Metadata.MergingFlag.None)
|
||||
header.ClrMamePro.ForceMerging = forceMerging;
|
||||
if (forceNodump is not null)
|
||||
if (forceNodump is not Data.Models.Metadata.NodumpFlag.None)
|
||||
header.ClrMamePro.ForceNodump = forceNodump;
|
||||
if (forceUnpacking is not null)
|
||||
header.ClrMamePro.ForcePacking = forceUnpacking;
|
||||
if (forcePacking is not Data.Models.Metadata.PackingFlag.None)
|
||||
header.ClrMamePro.ForcePacking = forcePacking;
|
||||
}
|
||||
|
||||
string? plugin = item.ReadString(Data.Models.Metadata.Header.PluginKey);
|
||||
string? romMode = item.ReadString(Data.Models.Metadata.Header.RomModeKey);
|
||||
string? biosMode = item.ReadString(Data.Models.Metadata.Header.BiosModeKey);
|
||||
string? sampleMode = item.ReadString(Data.Models.Metadata.Header.SampleModeKey);
|
||||
Data.Models.Metadata.MergingFlag romMode = item.RomMode;
|
||||
Data.Models.Metadata.MergingFlag biosMode = item.BiosMode;
|
||||
Data.Models.Metadata.MergingFlag sampleMode = item.SampleMode;
|
||||
bool? lockRomMode = item.LockRomMode;
|
||||
bool? lockBiosMode = item.LockBiosMode;
|
||||
bool? lockSampleMode = item.LockSampleMode;
|
||||
|
||||
if (plugin is not null
|
||||
|| romMode is not null
|
||||
|| biosMode is not null
|
||||
|| sampleMode is not null
|
||||
|| romMode is not Data.Models.Metadata.MergingFlag.None
|
||||
|| biosMode is not Data.Models.Metadata.MergingFlag.None
|
||||
|| sampleMode is not Data.Models.Metadata.MergingFlag.None
|
||||
|| lockRomMode is not null
|
||||
|| lockBiosMode is not null
|
||||
|| lockSampleMode is not null)
|
||||
@@ -96,11 +96,11 @@ namespace SabreTools.Serialization.CrossModel
|
||||
header.RomCenter = new Data.Models.Logiqx.RomCenter();
|
||||
if (plugin is not null)
|
||||
header.RomCenter.Plugin = plugin;
|
||||
if (romMode is not null)
|
||||
if (romMode is not Data.Models.Metadata.MergingFlag.None)
|
||||
header.RomCenter.RomMode = romMode;
|
||||
if (biosMode is not null)
|
||||
if (biosMode is not Data.Models.Metadata.MergingFlag.None)
|
||||
header.RomCenter.BiosMode = biosMode;
|
||||
if (sampleMode is not null)
|
||||
if (sampleMode is not Data.Models.Metadata.MergingFlag.None)
|
||||
header.RomCenter.SampleMode = sampleMode;
|
||||
if (lockRomMode is not null)
|
||||
header.RomCenter.LockRomMode = lockRomMode;
|
||||
@@ -236,7 +236,7 @@ namespace SabreTools.Serialization.CrossModel
|
||||
MD5 = item.ReadString(Data.Models.Metadata.Disk.MD5Key),
|
||||
SHA1 = item.ReadString(Data.Models.Metadata.Disk.SHA1Key),
|
||||
Merge = item.ReadString(Data.Models.Metadata.Disk.MergeKey),
|
||||
Status = item.ReadString(Data.Models.Metadata.Disk.StatusKey),
|
||||
Status = item.Status,
|
||||
Region = item.ReadString(Data.Models.Metadata.Disk.RegionKey),
|
||||
};
|
||||
return disk;
|
||||
@@ -249,10 +249,10 @@ namespace SabreTools.Serialization.CrossModel
|
||||
{
|
||||
var driver = new Driver
|
||||
{
|
||||
Status = item.ReadString(Data.Models.Metadata.Driver.StatusKey),
|
||||
Emulation = item.ReadString(Data.Models.Metadata.Driver.EmulationKey),
|
||||
Cocktail = item.ReadString(Data.Models.Metadata.Driver.CocktailKey),
|
||||
SaveState = item.ReadString(Data.Models.Metadata.Driver.SaveStateKey),
|
||||
Status = item.Status,
|
||||
Emulation = item.Emulation,
|
||||
Cocktail = item.Cocktail,
|
||||
SaveState = item.SaveState,
|
||||
RequiresArtwork = item.RequiresArtwork,
|
||||
Unofficial = item.Unofficial,
|
||||
NoSoundHardware = item.NoSoundHardware,
|
||||
@@ -318,7 +318,7 @@ namespace SabreTools.Serialization.CrossModel
|
||||
xxHash364 = item.ReadString(Data.Models.Metadata.Rom.xxHash364Key),
|
||||
xxHash3128 = item.ReadString(Data.Models.Metadata.Rom.xxHash3128Key),
|
||||
Merge = item.ReadString(Data.Models.Metadata.Rom.MergeKey),
|
||||
Status = item.ReadString(Data.Models.Metadata.Rom.StatusKey),
|
||||
Status = item.Status,
|
||||
Serial = item.ReadString(Data.Models.Metadata.Rom.SerialKey),
|
||||
Header = item.ReadString(Data.Models.Metadata.Rom.HeaderKey),
|
||||
Date = item.ReadString(Data.Models.Metadata.Rom.DateKey),
|
||||
@@ -349,7 +349,7 @@ namespace SabreTools.Serialization.CrossModel
|
||||
{
|
||||
Tag = item.ReadString(Data.Models.Metadata.SoftwareList.TagKey),
|
||||
Name = item.Name,
|
||||
Status = item.ReadString(Data.Models.Metadata.SoftwareList.StatusKey),
|
||||
Status = item.Status,
|
||||
Filter = item.ReadString(Data.Models.Metadata.SoftwareList.FilterKey),
|
||||
};
|
||||
return softwareList;
|
||||
|
||||
@@ -54,7 +54,7 @@ namespace SabreTools.Serialization.CrossModel
|
||||
var header = new Data.Models.Metadata.Header
|
||||
{
|
||||
[Data.Models.Metadata.Header.IdKey] = item.Id,
|
||||
Name = item.Name,
|
||||
Name = item.Name,
|
||||
[Data.Models.Metadata.Header.DescriptionKey] = item.Description,
|
||||
[Data.Models.Metadata.Header.RootDirKey] = item.RootDir,
|
||||
[Data.Models.Metadata.Header.CategoryKey] = item.Category,
|
||||
@@ -71,17 +71,17 @@ namespace SabreTools.Serialization.CrossModel
|
||||
if (item.ClrMamePro is not null)
|
||||
{
|
||||
header[Data.Models.Metadata.Header.HeaderKey] = item.ClrMamePro.Header;
|
||||
header[Data.Models.Metadata.Header.ForceMergingKey] = item.ClrMamePro.ForceMerging;
|
||||
header[Data.Models.Metadata.Header.ForceNodumpKey] = item.ClrMamePro.ForceNodump;
|
||||
header[Data.Models.Metadata.Header.ForcePackingKey] = item.ClrMamePro.ForcePacking;
|
||||
header.ForceMerging = item.ClrMamePro.ForceMerging;
|
||||
header.ForceNodump = item.ClrMamePro.ForceNodump;
|
||||
header.ForcePacking = item.ClrMamePro.ForcePacking;
|
||||
}
|
||||
|
||||
if (item.RomCenter is not null)
|
||||
{
|
||||
header[Data.Models.Metadata.Header.PluginKey] = item.RomCenter.Plugin;
|
||||
header[Data.Models.Metadata.Header.RomModeKey] = item.RomCenter.RomMode;
|
||||
header[Data.Models.Metadata.Header.BiosModeKey] = item.RomCenter.BiosMode;
|
||||
header[Data.Models.Metadata.Header.SampleModeKey] = item.RomCenter.SampleMode;
|
||||
header.RomMode = item.RomCenter.RomMode;
|
||||
header.BiosMode = item.RomCenter.BiosMode;
|
||||
header.SampleMode = item.RomCenter.SampleMode;
|
||||
header.LockRomMode = item.RomCenter.LockRomMode;
|
||||
header.LockBiosMode = item.RomCenter.LockBiosMode;
|
||||
header.LockSampleMode = item.RomCenter.LockSampleMode;
|
||||
@@ -230,7 +230,7 @@ namespace SabreTools.Serialization.CrossModel
|
||||
[Data.Models.Metadata.Disk.MD5Key] = item.MD5,
|
||||
[Data.Models.Metadata.Disk.SHA1Key] = item.SHA1,
|
||||
[Data.Models.Metadata.Disk.MergeKey] = item.Merge,
|
||||
[Data.Models.Metadata.Disk.StatusKey] = item.Status,
|
||||
Status = item.Status,
|
||||
[Data.Models.Metadata.Disk.RegionKey] = item.Region,
|
||||
};
|
||||
return disk;
|
||||
@@ -243,10 +243,10 @@ namespace SabreTools.Serialization.CrossModel
|
||||
{
|
||||
var driver = new Data.Models.Metadata.Driver
|
||||
{
|
||||
[Data.Models.Metadata.Driver.StatusKey] = item.Status,
|
||||
[Data.Models.Metadata.Driver.EmulationKey] = item.Emulation,
|
||||
[Data.Models.Metadata.Driver.CocktailKey] = item.Cocktail,
|
||||
[Data.Models.Metadata.Driver.SaveStateKey] = item.SaveState,
|
||||
Status = item.Status,
|
||||
Emulation = item.Emulation,
|
||||
Cocktail = item.Cocktail,
|
||||
SaveState = item.SaveState,
|
||||
RequiresArtwork = item.RequiresArtwork,
|
||||
Unofficial = item.Unofficial,
|
||||
NoSoundHardware = item.NoSoundHardware,
|
||||
@@ -312,7 +312,7 @@ namespace SabreTools.Serialization.CrossModel
|
||||
[Data.Models.Metadata.Rom.xxHash364Key] = item.xxHash364,
|
||||
[Data.Models.Metadata.Rom.xxHash3128Key] = item.xxHash3128,
|
||||
[Data.Models.Metadata.Rom.MergeKey] = item.Merge,
|
||||
[Data.Models.Metadata.Rom.StatusKey] = item.Status,
|
||||
Status = item.Status,
|
||||
[Data.Models.Metadata.Rom.SerialKey] = item.Serial,
|
||||
[Data.Models.Metadata.Rom.HeaderKey] = item.Header,
|
||||
[Data.Models.Metadata.Rom.DateKey] = item.Date,
|
||||
@@ -343,7 +343,7 @@ namespace SabreTools.Serialization.CrossModel
|
||||
{
|
||||
[Data.Models.Metadata.SoftwareList.TagKey] = item.Tag,
|
||||
Name = item.Name,
|
||||
[Data.Models.Metadata.SoftwareList.StatusKey] = item.Status,
|
||||
Status = item.Status,
|
||||
[Data.Models.Metadata.SoftwareList.FilterKey] = item.Filter,
|
||||
};
|
||||
return softwareList;
|
||||
|
||||
@@ -55,14 +55,14 @@ namespace SabreTools.Serialization.CrossModel
|
||||
|
||||
if (item.ContainsKey(Data.Models.Metadata.Header.DatVersionKey)
|
||||
|| item.ContainsKey(Data.Models.Metadata.Header.PluginKey)
|
||||
|| item.ContainsKey(Data.Models.Metadata.Header.ForceMergingKey))
|
||||
|| item.ForceMerging != Data.Models.Metadata.MergingFlag.None)
|
||||
{
|
||||
metadataFile.Dat = new Dat
|
||||
{
|
||||
Version = item.ReadString(Data.Models.Metadata.Header.DatVersionKey),
|
||||
Plugin = item.ReadString(Data.Models.Metadata.Header.PluginKey),
|
||||
Split = item.ReadString(Data.Models.Metadata.Header.ForceMergingKey) == "split" ? "yes" : "no",
|
||||
Merge = item.ReadString(Data.Models.Metadata.Header.ForceMergingKey) == "merge" ? "yes" : "no",
|
||||
Split = item.ForceMerging == Data.Models.Metadata.MergingFlag.Split ? "yes" : "no",
|
||||
Merge = item.ForceMerging == Data.Models.Metadata.MergingFlag.Merged ? "yes" : "no",
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@@ -49,9 +49,9 @@ namespace SabreTools.Serialization.CrossModel
|
||||
header[Data.Models.Metadata.Header.PluginKey] = item.Dat.Plugin;
|
||||
|
||||
if (item.Dat.Split == "yes" || item.Dat.Split == "1")
|
||||
header[Data.Models.Metadata.Header.ForceMergingKey] = "split";
|
||||
header.ForceMerging = Data.Models.Metadata.MergingFlag.Split;
|
||||
else if (item.Dat.Merge == "yes" || item.Dat.Merge == "1")
|
||||
header[Data.Models.Metadata.Header.ForceMergingKey] = "merge";
|
||||
header.ForceMerging = Data.Models.Metadata.MergingFlag.Merged;
|
||||
}
|
||||
|
||||
if (item.Emulator is not null)
|
||||
|
||||
@@ -92,7 +92,7 @@ namespace SabreTools.Serialization.CrossModel
|
||||
SHA384 = null,
|
||||
SHA512 = null,
|
||||
SpamSum = null,
|
||||
Status = item.ReadString(Data.Models.Metadata.Disk.StatusKey),
|
||||
Status = item.Status,
|
||||
};
|
||||
return row;
|
||||
}
|
||||
@@ -147,7 +147,7 @@ namespace SabreTools.Serialization.CrossModel
|
||||
SHA384 = item.ReadString(Data.Models.Metadata.Rom.SHA384Key),
|
||||
SHA512 = item.ReadString(Data.Models.Metadata.Rom.SHA512Key),
|
||||
SpamSum = item.ReadString(Data.Models.Metadata.Rom.SpamSumKey),
|
||||
Status = item.ReadString(Data.Models.Metadata.Rom.StatusKey),
|
||||
Status = item.Status,
|
||||
};
|
||||
return row;
|
||||
}
|
||||
|
||||
@@ -92,7 +92,7 @@ namespace SabreTools.Serialization.CrossModel
|
||||
Name = item.DiskName,
|
||||
[Data.Models.Metadata.Disk.MD5Key] = item.MD5,
|
||||
[Data.Models.Metadata.Disk.SHA1Key] = item.SHA1,
|
||||
[Data.Models.Metadata.Disk.StatusKey] = item.Status,
|
||||
Status = item.Status,
|
||||
},
|
||||
"media" => new Data.Models.Metadata.Media
|
||||
{
|
||||
@@ -113,7 +113,7 @@ namespace SabreTools.Serialization.CrossModel
|
||||
[Data.Models.Metadata.Rom.SHA384Key] = item.SHA384,
|
||||
[Data.Models.Metadata.Rom.SHA512Key] = item.SHA512,
|
||||
[Data.Models.Metadata.Rom.SpamSumKey] = item.SpamSum,
|
||||
[Data.Models.Metadata.Rom.StatusKey] = item.Status,
|
||||
Status = item.Status,
|
||||
},
|
||||
_ => null,
|
||||
};
|
||||
|
||||
@@ -44,7 +44,7 @@ namespace SabreTools.Serialization.CrossModel
|
||||
{
|
||||
Name = item.Name,
|
||||
CloneOf = item.ReadString(Data.Models.Metadata.Machine.CloneOfKey),
|
||||
Supported = item.ReadString(Data.Models.Metadata.Machine.SupportedKey),
|
||||
Supported = item.Supported,
|
||||
Description = item.ReadString(Data.Models.Metadata.Machine.DescriptionKey),
|
||||
Year = item.ReadString(Data.Models.Metadata.Machine.YearKey),
|
||||
Publisher = item.ReadString(Data.Models.Metadata.Machine.PublisherKey),
|
||||
@@ -76,7 +76,7 @@ namespace SabreTools.Serialization.CrossModel
|
||||
Name = item.Name,
|
||||
Size = item.ReadString(Data.Models.Metadata.DataArea.SizeKey),
|
||||
Width = item.ReadString(Data.Models.Metadata.DataArea.WidthKey),
|
||||
Endianness = item.ReadString(Data.Models.Metadata.DataArea.EndiannessKey),
|
||||
Endianness = item.Endianness,
|
||||
};
|
||||
|
||||
var roms = item.Read<Data.Models.Metadata.Rom[]>(Data.Models.Metadata.DataArea.RomKey);
|
||||
@@ -129,7 +129,7 @@ namespace SabreTools.Serialization.CrossModel
|
||||
Name = item.Name,
|
||||
MD5 = item.ReadString(Data.Models.Metadata.Disk.MD5Key),
|
||||
SHA1 = item.ReadString(Data.Models.Metadata.Disk.SHA1Key),
|
||||
Status = item.ReadString(Data.Models.Metadata.Disk.StatusKey),
|
||||
Status = item.Status,
|
||||
Writeable = item.Writable,
|
||||
};
|
||||
return disk;
|
||||
@@ -222,8 +222,8 @@ namespace SabreTools.Serialization.CrossModel
|
||||
SHA1 = item.ReadString(Data.Models.Metadata.Rom.SHA1Key),
|
||||
Offset = item.ReadString(Data.Models.Metadata.Rom.OffsetKey),
|
||||
Value = item.ReadString(Data.Models.Metadata.Rom.ValueKey),
|
||||
Status = item.ReadString(Data.Models.Metadata.Rom.StatusKey),
|
||||
LoadFlag = item.ReadString(Data.Models.Metadata.Rom.LoadFlagKey),
|
||||
Status = item.Status,
|
||||
LoadFlag = item.LoadFlag,
|
||||
};
|
||||
return rom;
|
||||
}
|
||||
|
||||
@@ -48,7 +48,7 @@ namespace SabreTools.Serialization.CrossModel
|
||||
{
|
||||
Name = item.Name,
|
||||
[Data.Models.Metadata.Machine.CloneOfKey] = item.CloneOf,
|
||||
[Data.Models.Metadata.Machine.SupportedKey] = item.Supported,
|
||||
Supported = item.Supported,
|
||||
[Data.Models.Metadata.Machine.DescriptionKey] = item.Description,
|
||||
[Data.Models.Metadata.Machine.YearKey] = item.Year,
|
||||
[Data.Models.Metadata.Machine.PublisherKey] = item.Publisher,
|
||||
@@ -77,7 +77,7 @@ namespace SabreTools.Serialization.CrossModel
|
||||
Name = item.Name,
|
||||
[Data.Models.Metadata.DataArea.SizeKey] = item.Size,
|
||||
[Data.Models.Metadata.DataArea.WidthKey] = item.Width,
|
||||
[Data.Models.Metadata.DataArea.EndiannessKey] = item.Endianness,
|
||||
Endianness = item.Endianness,
|
||||
};
|
||||
|
||||
if (item.Rom is not null && item.Rom.Length > 0)
|
||||
@@ -128,7 +128,7 @@ namespace SabreTools.Serialization.CrossModel
|
||||
Name = item.Name,
|
||||
[Data.Models.Metadata.Disk.MD5Key] = item.MD5,
|
||||
[Data.Models.Metadata.Disk.SHA1Key] = item.SHA1,
|
||||
[Data.Models.Metadata.Disk.StatusKey] = item.Status,
|
||||
Status = item.Status,
|
||||
Writable = item.Writeable,
|
||||
};
|
||||
return disk;
|
||||
@@ -216,8 +216,8 @@ namespace SabreTools.Serialization.CrossModel
|
||||
[Data.Models.Metadata.Rom.SHA1Key] = item.SHA1,
|
||||
[Data.Models.Metadata.Rom.OffsetKey] = item.Offset,
|
||||
[Data.Models.Metadata.Rom.ValueKey] = item.Value,
|
||||
[Data.Models.Metadata.Rom.StatusKey] = item.Status,
|
||||
[Data.Models.Metadata.Rom.LoadFlagKey] = item.LoadFlag,
|
||||
Status = item.Status,
|
||||
LoadFlag = item.LoadFlag,
|
||||
};
|
||||
return rom;
|
||||
}
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user