Remove redundant helper methods

This commit is contained in:
Matt Nadareski
2024-03-05 15:24:11 -05:00
parent 3166a438a8
commit fa99e6aefb
33 changed files with 260 additions and 592 deletions

View File

@@ -449,7 +449,7 @@ Possible values are: Verbose, User, Warning, Error");
public override bool ProcessFeatures(Dictionary<string, SabreTools.Help.Feature> features) public override bool ProcessFeatures(Dictionary<string, SabreTools.Help.Feature> features)
{ {
LogLevel = GetString(features, LogLevelStringValue).AsLogLevel(); LogLevel = GetString(features, LogLevelStringValue).AsEnumValue<LogLevel>();
ScriptMode = GetBoolean(features, ScriptValue); ScriptMode = GetBoolean(features, ScriptValue);
InitializeConfiguration(); InitializeConfiguration();

View File

@@ -9,22 +9,6 @@ namespace SabreTools.Core.Tools
{ {
#region String to Enum #region String to Enum
/// <summary>
/// Get ChipType value from input string
/// </summary>
/// <param name="chipType">String to get value from</param>
/// <returns>ChipType value corresponding to the string</returns>
public static ChipType AsChipType(this string? chipType)
=> AsEnumValue<ChipType>(chipType);
/// <summary>
/// Get ControlType value from input string
/// </summary>
/// <param name="controlType">String to get value from</param>
/// <returns>ControlType value corresponding to the string</returns>
public static ControlType AsControlType(this string? controlType)
=> AsEnumValue<ControlType>(controlType);
/// <summary> /// <summary>
/// Get DatHeaderField value from input string /// Get DatHeaderField value from input string
/// </summary> /// </summary>
@@ -85,78 +69,6 @@ namespace SabreTools.Core.Tools
return AsEnumValue<DatItemField>(itemInput); return AsEnumValue<DatItemField>(itemInput);
} }
/// <summary>
/// Get DeviceType value from input string
/// </summary>
/// <param name="deviceType">String to get value from</param>
/// <returns>DeviceType value corresponding to the string</returns>
public static DeviceType AsDeviceType(this string? deviceType)
=> AsEnumValue<DeviceType>(deviceType);
/// <summary>
/// Get DisplayType value from input string
/// </summary>
/// <param name="displayType">String to get value from</param>
/// <returns>DisplayType value corresponding to the string</returns>
public static DisplayType AsDisplayType(this string? displayType)
=> AsEnumValue<DisplayType>(displayType);
/// <summary>
/// Get Endianness value from input string
/// </summary>
/// <param name="endianness">String to get value from</param>
/// <returns>Endianness value corresponding to the string</returns>
public static Endianness AsEndianness(this string? endianness)
=> AsEnumValue<Endianness>(endianness);
/// <summary>
/// Get FeatureStatus value from input string
/// </summary>
/// <param name="featureStatus">String to get value from</param>
/// <returns>FeatureStatus value corresponding to the string</returns>
public static FeatureStatus AsFeatureStatus(this string? featureStatus)
=> AsEnumValue<FeatureStatus>(featureStatus);
/// <summary>
/// Get FeatureType value from input string
/// </summary>
/// <param name="emulationStatus">String to get value from</param>
/// <returns>FeatureType value corresponding to the string</returns>
public static FeatureType AsFeatureType(this string? featureType)
=> AsEnumValue<FeatureType>(featureType);
/// <summary>
/// Get ItemStatus value from input string
/// </summary>
/// <param name="status">String to get value from</param>
/// <returns>ItemStatus value corresponding to the string</returns>
public static ItemStatus AsItemStatus(this string? status)
=> AsEnumValue<ItemStatus>(status);
/// <summary>
/// Get ItemType? value from input string
/// </summary>
/// <param name="itemType">String to get value from</param>
/// <returns>ItemType? value corresponding to the string</returns>
public static ItemType AsItemType(this string? itemType)
=> AsEnumValue<ItemType>(itemType);
/// <summary>
/// Get LoadFlag value from input string
/// </summary>
/// <param name="loadFlag">String to get value from</param>
/// <returns>LoadFlag value corresponding to the string</returns>
public static LoadFlag AsLoadFlag(this string? loadFlag)
=> AsEnumValue<LoadFlag>(loadFlag);
/// <summary>
/// Get LogLevel value from input string
/// </summary>
/// <param name="logLevel">String to get value from</param>
/// <returns>LogLevel value corresponding to the string</returns>
public static LogLevel AsLogLevel(this string? logLevel)
=> AsEnumValue<LogLevel>(logLevel);
/// <summary> /// <summary>
/// Get MachineField value from input string /// Get MachineField value from input string
/// </summary> /// </summary>
@@ -187,86 +99,6 @@ namespace SabreTools.Core.Tools
return AsEnumValue<MachineField>(machineInput); return AsEnumValue<MachineField>(machineInput);
} }
/// <summary>
/// Get MachineType value from input string
/// </summary>
/// <param name="gametype">String to get value from</param>
/// <returns>MachineType value corresponding to the string</returns>
public static MachineType AsMachineType(this string? gametype)
=> AsEnumValue<MachineType>(gametype);
/// <summary>
/// Get MergingFlag value from input string
/// </summary>
/// <param name="merging">String to get value from</param>
/// <returns>MergingFlag value corresponding to the string</returns>
public static MergingFlag AsMergingFlag(this string? merging)
=> AsEnumValue<MergingFlag>(merging);
/// <summary>
/// Get NodumpFlag value from input string
/// </summary>
/// <param name="nodump">String to get value from</param>
/// <returns>NodumpFlag value corresponding to the string</returns>
public static NodumpFlag AsNodumpFlag(this string? nodump)
=> AsEnumValue<NodumpFlag>(nodump);
/// <summary>
/// Get OpenMSXSubType value from input string
/// </summary>
/// <param name="subType">String to get value from</param>
/// <returns>OpenMSXSubType value corresponding to the string</returns>
public static OpenMSXSubType AsOpenMSXSubType(this string? subType)
=> AsEnumValue<OpenMSXSubType>(subType);
/// <summary>
/// Get PackingFlag value from input string
/// </summary>
/// <param name="packing">String to get value from</param>
/// <returns>PackingFlag value corresponding to the string</returns>
public static PackingFlag AsPackingFlag(this string? packing)
=> AsEnumValue<PackingFlag>(packing);
/// <summary>
/// Get Relation value from input string
/// </summary>
/// <param name="relation">String to get value from</param>
/// <returns>Relation value corresponding to the string</returns>
public static Relation AsRelation(this string? relation)
=> AsEnumValue<Relation>(relation);
/// <summary>
/// Get Runnable value from input string
/// </summary>
/// <param name="runnable">String to get value from</param>
/// <returns>Runnable value corresponding to the string</returns>
public static Runnable AsRunnable(this string? runnable)
=> AsEnumValue<Runnable>(runnable);
/// <summary>
/// Get SoftwareListStatus value from input string
/// </summary>
/// <param name="status">String to get value from</param>
/// <returns>SoftwareListStatus value corresponding to the string</returns>
public static SoftwareListStatus AsSoftwareListStatus(this string? status)
=> AsEnumValue<SoftwareListStatus>(status);
/// <summary>
/// Get Supported value from input string
/// </summary>
/// <param name="supported">String to get value from</param>
/// <returns>Supported value corresponding to the string</returns>
public static Supported AsSupported(this string? supported)
=> AsEnumValue<Supported>(supported);
/// <summary>
/// Get SupportStatus value from input string
/// </summary>
/// <param name="supported">String to get value from</param>
/// <returns>SupportStatus value corresponding to the string</returns>
public static SupportStatus AsSupportStatus(this string? supportStatus)
=> AsEnumValue<SupportStatus>(supportStatus);
/// <summary> /// <summary>
/// Get bool? value from input string /// Get bool? value from input string
/// </summary> /// </summary>
@@ -288,7 +120,7 @@ namespace SabreTools.Core.Tools
/// <param name="value">String value to parse/param> /// <param name="value">String value to parse/param>
/// <typeparam name="T">Enum type that is expected</typeparam> /// <typeparam name="T">Enum type that is expected</typeparam>
/// <returns>Enum value representing the input, default on error</returns> /// <returns>Enum value representing the input, default on error</returns>
internal static T? AsEnumValue<T>(string? value) public static T? AsEnumValue<T>(this string? value)
{ {
// Get the mapping dictionary // Get the mapping dictionary
var mappings = GenerateToEnum<T>(); var mappings = GenerateToEnum<T>();
@@ -353,171 +185,6 @@ namespace SabreTools.Core.Tools
#region Enum to String #region Enum to String
/// <summary>
/// Get string value from input ChipType
/// </summary>
/// <param name="chipType">ChipType to get value from</param>
/// <returns>String value corresponding to the ChipType</returns>
public static string? FromChipType(this ChipType chipType)
=> AsStringValue(chipType);
/// <summary>
/// Get string value from input ControlType
/// </summary>
/// <param name="controlType">ControlType to get value from</param>
/// <returns>String value corresponding to the ControlType</returns>
public static string? FromControlType(this ControlType controlType)
=> AsStringValue(controlType);
/// <summary>
/// Get string value from input DeviceType
/// </summary>
/// <param name="deviceType">vDeviceType to get value from</param>
/// <returns>String value corresponding to the DeviceType</returns>
public static string? FromDeviceType(this DeviceType deviceType)
=> AsStringValue(deviceType);
/// <summary>
/// Get string value from input DisplayType
/// </summary>
/// <param name="displayType">DisplayType to get value from</param>
/// <returns>String value corresponding to the DisplayType</returns>
public static string? FromDisplayType(this DisplayType displayType)
=> AsStringValue(displayType);
/// <summary>
/// Get string value from input Endianness
/// </summary>
/// <param name="endianness">Endianness to get value from</param>
/// <returns>String value corresponding to the Endianness</returns>
public static string? FromEndianness(this Endianness endianness)
=> AsStringValue(endianness);
/// <summary>
/// Get string value from input FeatureStatus
/// </summary>
/// <param name="featureStatus">FeatureStatus to get value from</param>
/// <returns>String value corresponding to the FeatureStatus</returns>
public static string? FromFeatureStatus(this FeatureStatus featureStatus)
=> AsStringValue(featureStatus);
/// <summary>
/// Get string value from input FeatureType
/// </summary>
/// <param name="featureType">FeatureType to get value from</param>
/// <returns>String value corresponding to the FeatureType</returns>
public static string? FromFeatureType(this FeatureType featureType)
=> AsStringValue(featureType);
/// <summary>
/// Get string value from input ItemStatus
/// </summary>
/// <param name="status">ItemStatus to get value from</param>
/// <param name="yesno">True to use Yes/No format instead</param>
/// <returns>String value corresponding to the ItemStatus</returns>
public static string? FromItemStatus(this ItemStatus status, bool yesno)
=> AsStringValue(status, yesno);
/// <summary>
/// Get string value from input ItemType?
/// </summary>
/// <param name="itemType">ItemType? to get value from</param>
/// <returns>String value corresponding to the ItemType?</returns>
public static string? FromItemType(this ItemType itemType)
=> AsStringValue(itemType);
/// <summary>
/// Get string value from input LoadFlag
/// </summary>
/// <param name="loadFlag">LoadFlag to get value from</param>
/// <returns>String value corresponding to the LoadFlag</returns>
public static string? FromLoadFlag(this LoadFlag loadFlag)
=> AsStringValue(loadFlag);
/// <summary>
/// Get string value from input MachineType
/// </summary>
/// <param name="gametype">MachineType to get value from</param>
/// <param name="romCenter">True to use old naming instead</param>
/// <returns>String value corresponding to the MachineType</returns>
public static string? FromMachineType(this MachineType gametype, bool old)
=> AsStringValue(gametype, old);
/// <summary>
/// Get string value from input MergingFlag
/// </summary>
/// <param name="merging">MergingFlag to get value from</param>
/// <param name="romCenter">True to use RomCenter naming instead</param>
/// <returns>String value corresponding to the MergingFlag</returns>
public static string? FromMergingFlag(this MergingFlag merging, bool romCenter)
=> AsStringValue(merging, romCenter);
/// <summary>
/// Get string value from input NodumpFlag
/// </summary>
/// <param name="nodump">NodumpFlag to get value from</param>
/// <returns>String value corresponding to the NodumpFlag</returns>
public static string? FromNodumpFlag(this NodumpFlag nodump)
=> AsStringValue(nodump);
/// <summary>
/// Get string value from input OpenMSXSubType
/// </summary>
/// <param name="subType">OpenMSXSubType to get value from</param>
/// <returns>String value corresponding to the OpenMSXSubType</returns>
public static string? FromOpenMSXSubType(this OpenMSXSubType subType)
=> AsStringValue(subType);
/// <summary>
/// Get string value from input PackingFlag
/// </summary>
/// <param name="packing">PackingFlag to get value from</param>
/// <param name="yesno">True to use Yes/No format instead</param>
/// <returns>String value corresponding to the PackingFlag</returns>
public static string? FromPackingFlag(this PackingFlag packing, bool yesno)
=> AsStringValue(packing, yesno);
/// <summary>
/// Get string value from input Relation
/// </summary>
/// <param name="relation">Relation to get value from</param>
/// <returns>String value corresponding to the Relation</returns>
public static string? FromRelation(this Relation relation)
=> AsStringValue(relation);
/// <summary>
/// Get string value from input Runnable
/// </summary>
/// <param name="runnable">Runnable to get value from</param>
/// <returns>String value corresponding to the Runnable</returns>
public static string? FromRunnable(this Runnable runnable)
=> AsStringValue(runnable);
/// <summary>
/// Get string value from input SoftwareListStatus
/// </summary>
/// <param name="status">SoftwareListStatus to get value from</param>
/// <returns>String value corresponding to the SoftwareListStatus</returns>
public static string? FromSoftwareListStatus(this SoftwareListStatus status)
=> AsStringValue(status);
/// <summary>
/// Get string value from input Supported
/// </summary>
/// <param name="supported">Supported to get value from</param>
/// <param name="verbose">True to use verbose output, false otherwise</param>
/// <returns>String value corresponding to the Supported</returns>
public static string? FromSupported(this Supported supported, bool verbose)
=> AsStringValue(supported, verbose);
/// <summary>
/// Get string value from input SupportStatus
/// </summary>
/// <param name="supportStatus">SupportStatus to get value from</param>
/// <returns>String value corresponding to the SupportStatus</returns>
public static string? FromSupportStatus(this SupportStatus supportStatus)
=> AsStringValue(supportStatus);
/// <summary> /// <summary>
/// Get string value from input bool? /// Get string value from input bool?
/// </summary> /// </summary>
@@ -540,7 +207,7 @@ namespace SabreTools.Core.Tools
/// <param name="useSecond">True to use the second mapping option, if it exists</param> /// <param name="useSecond">True to use the second mapping option, if it exists</param>
/// <typeparam name="T">Enum type that is expected</typeparam> /// <typeparam name="T">Enum type that is expected</typeparam>
/// <returns>String value representing the input, default on error</returns> /// <returns>String value representing the input, default on error</returns>
internal static string? AsStringValue<T>(T value, bool useSecond = false) where T : notnull public static string? AsStringValue<T>(this T value, bool useSecond = false) where T : notnull
{ {
// Get the mapping dictionary // Get the mapping dictionary
var mappings = GenerateToString<T>(useSecond); var mappings = GenerateToString<T>(useSecond);

View File

@@ -458,13 +458,13 @@ namespace SabreTools.DatFiles
Type = mappings[DatHeaderField.Type]; Type = mappings[DatHeaderField.Type];
if (mappings.ContainsKey(DatHeaderField.ForceMerging)) if (mappings.ContainsKey(DatHeaderField.ForceMerging))
ForceMerging = mappings[DatHeaderField.ForceMerging].AsMergingFlag(); ForceMerging = mappings[DatHeaderField.ForceMerging].AsEnumValue<MergingFlag>();
if (mappings.ContainsKey(DatHeaderField.ForceNodump)) if (mappings.ContainsKey(DatHeaderField.ForceNodump))
ForceNodump = mappings[DatHeaderField.ForceNodump].AsNodumpFlag(); ForceNodump = mappings[DatHeaderField.ForceNodump].AsEnumValue<NodumpFlag>();
if (mappings.ContainsKey(DatHeaderField.ForcePacking)) if (mappings.ContainsKey(DatHeaderField.ForcePacking))
ForcePacking = mappings[DatHeaderField.ForcePacking].AsPackingFlag(); ForcePacking = mappings[DatHeaderField.ForcePacking].AsEnumValue<PackingFlag>();
#endregion #endregion
@@ -487,13 +487,13 @@ namespace SabreTools.DatFiles
Build = mappings[DatHeaderField.Build]; Build = mappings[DatHeaderField.Build];
if (mappings.ContainsKey(DatHeaderField.RomMode)) if (mappings.ContainsKey(DatHeaderField.RomMode))
RomMode = mappings[DatHeaderField.RomMode].AsMergingFlag(); RomMode = mappings[DatHeaderField.RomMode].AsEnumValue<MergingFlag>();
if (mappings.ContainsKey(DatHeaderField.BiosMode)) if (mappings.ContainsKey(DatHeaderField.BiosMode))
BiosMode = mappings[DatHeaderField.BiosMode].AsMergingFlag(); BiosMode = mappings[DatHeaderField.BiosMode].AsEnumValue<MergingFlag>();
if (mappings.ContainsKey(DatHeaderField.SampleMode)) if (mappings.ContainsKey(DatHeaderField.SampleMode))
SampleMode = mappings[DatHeaderField.SampleMode].AsMergingFlag(); SampleMode = mappings[DatHeaderField.SampleMode].AsEnumValue<MergingFlag>();
if (mappings.ContainsKey(DatHeaderField.LockRomMode)) if (mappings.ContainsKey(DatHeaderField.LockRomMode))
LockRomMode = mappings[DatHeaderField.LockRomMode].AsYesNo(); LockRomMode = mappings[DatHeaderField.LockRomMode].AsYesNo();

View File

@@ -60,11 +60,11 @@ namespace SabreTools.DatFiles.Formats
Header.HeaderSkipper ??= cmp.Header; Header.HeaderSkipper ??= cmp.Header;
Header.Type ??= cmp.Type; Header.Type ??= cmp.Type;
if (Header.ForceMerging == MergingFlag.None) if (Header.ForceMerging == MergingFlag.None)
Header.ForceMerging = cmp.ForceMerging?.AsMergingFlag() ?? MergingFlag.None; Header.ForceMerging = cmp.ForceMerging?.AsEnumValue<MergingFlag>() ?? MergingFlag.None;
if (Header.ForcePacking == PackingFlag.None) if (Header.ForcePacking == PackingFlag.None)
Header.ForcePacking = cmp.ForceZipping?.AsPackingFlag() ?? PackingFlag.None; Header.ForcePacking = cmp.ForceZipping?.AsEnumValue<PackingFlag>() ?? PackingFlag.None;
if (Header.ForcePacking == PackingFlag.None) if (Header.ForcePacking == PackingFlag.None)
Header.ForcePacking = cmp.ForcePacking?.AsPackingFlag() ?? PackingFlag.None; Header.ForcePacking = cmp.ForcePacking?.AsEnumValue<PackingFlag>() ?? PackingFlag.None;
// Handle implied SuperDAT // Handle implied SuperDAT
if (cmp.Name?.Contains(" - SuperDAT") == true && keep) if (cmp.Name?.Contains(" - SuperDAT") == true && keep)
@@ -258,7 +258,7 @@ namespace SabreTools.DatFiles.Formats
//xxHash364 = rom.xxHash364, // TODO: Add to internal model //xxHash364 = rom.xxHash364, // TODO: Add to internal model
//xxHash3128 = rom.xxHash3128, // TODO: Add to internal model //xxHash3128 = rom.xxHash3128, // TODO: Add to internal model
MergeTag = rom.Merge, MergeTag = rom.Merge,
ItemStatus = rom.Status?.AsItemStatus() ?? ItemStatus.NULL, ItemStatus = rom.Status?.AsEnumValue<ItemStatus>() ?? ItemStatus.NULL,
Region = rom.Region, Region = rom.Region,
//Flags = rom.Flags, // TODO: Add to internal model //Flags = rom.Flags, // TODO: Add to internal model
Offset = rom.Offs, Offset = rom.Offs,
@@ -304,7 +304,7 @@ namespace SabreTools.DatFiles.Formats
MD5 = disk.MD5, MD5 = disk.MD5,
SHA1 = disk.SHA1, SHA1 = disk.SHA1,
MergeTag = disk.Merge, MergeTag = disk.Merge,
ItemStatus = disk.Status?.AsItemStatus() ?? ItemStatus.NULL, ItemStatus = disk.Status?.AsEnumValue<ItemStatus>() ?? ItemStatus.NULL,
//Flags = disk.Flags, // TODO: Add to internal model //Flags = disk.Flags, // TODO: Add to internal model
Source = new Source Source = new Source
@@ -411,7 +411,7 @@ namespace SabreTools.DatFiles.Formats
{ {
var item = new Chip var item = new Chip
{ {
ChipType = chip.Type?.AsChipType() ?? ChipType.NULL, ChipType = chip.Type?.AsEnumValue<ChipType>() ?? ChipType.NULL,
Name = chip.Name, Name = chip.Name,
//Flags = chip.Flags, // TODO: Add to internal model //Flags = chip.Flags, // TODO: Add to internal model
Clock = NumberHelper.ConvertToInt64(chip.Clock), Clock = NumberHelper.ConvertToInt64(chip.Clock),
@@ -448,7 +448,7 @@ namespace SabreTools.DatFiles.Formats
{ {
var item = new Display var item = new Display
{ {
DisplayType = video.Screen?.AsDisplayType() ?? DisplayType.NULL, DisplayType = video.Screen?.AsEnumValue<DisplayType>() ?? DisplayType.NULL,
Width = NumberHelper.ConvertToInt64(video.X), Width = NumberHelper.ConvertToInt64(video.X),
Height = NumberHelper.ConvertToInt64(video.Y), Height = NumberHelper.ConvertToInt64(video.Y),
//AspectX = video.AspectX, // TODO: Add to internal model or find mapping //AspectX = video.AspectX, // TODO: Add to internal model or find mapping
@@ -614,7 +614,7 @@ namespace SabreTools.DatFiles.Formats
containsItems = true; containsItems = true;
var item = new Driver var item = new Driver
{ {
Status = driver.Status?.AsSupportStatus() ?? SupportStatus.NULL, Status = driver.Status?.AsEnumValue<SupportStatus>() ?? SupportStatus.NULL,
//Color = driver.Color, // TODO: Add to internal model or find mapping //Color = driver.Color, // TODO: Add to internal model or find mapping
//Sound = driver.Sound, // TODO: Add to internal model or find mapping //Sound = driver.Sound, // TODO: Add to internal model or find mapping
//PaletteSize = driver.PaletteSize, // TODO: Add to internal model or find mapping //PaletteSize = driver.PaletteSize, // TODO: Add to internal model or find mapping

View File

@@ -199,9 +199,9 @@ namespace SabreTools.DatFiles.Formats
}; };
if (Header.ForceMergingSpecified) if (Header.ForceMergingSpecified)
clrMamePro.ForceMerging = Header.ForceMerging.FromMergingFlag(romCenter: false); clrMamePro.ForceMerging = Header.ForceMerging.AsStringValue<MergingFlag>(useSecond: false);
if (Header.ForcePackingSpecified) if (Header.ForcePackingSpecified)
clrMamePro.ForcePacking = Header.ForcePacking.FromPackingFlag(yesno: false); clrMamePro.ForcePacking = Header.ForcePacking.AsStringValue<PackingFlag>(useSecond: false);
return clrMamePro; return clrMamePro;
} }
@@ -394,7 +394,7 @@ namespace SabreTools.DatFiles.Formats
}; };
if (item.ItemStatusSpecified) if (item.ItemStatusSpecified)
rom.Status = item.ItemStatus.FromItemStatus(yesno: false); rom.Status = item.ItemStatus.AsStringValue<ItemStatus>(useSecond: false);
if (item.InvertedSpecified) if (item.InvertedSpecified)
rom.Inverted = item.Inverted.FromYesNo(); rom.Inverted = item.Inverted.FromYesNo();
if (item.MIASpecified) if (item.MIASpecified)
@@ -418,7 +418,7 @@ namespace SabreTools.DatFiles.Formats
}; };
if (item.ItemStatusSpecified) if (item.ItemStatusSpecified)
disk.Status = item.ItemStatus.FromItemStatus(yesno: false); disk.Status = item.ItemStatus.AsStringValue<ItemStatus>(useSecond: false);
return disk; return disk;
} }
@@ -470,7 +470,7 @@ namespace SabreTools.DatFiles.Formats
{ {
var chip = new Models.ClrMamePro.Chip var chip = new Models.ClrMamePro.Chip
{ {
Type = item.ChipType.FromChipType(), Type = item.ChipType.AsStringValue<ChipType>(),
Name = item.Name, Name = item.Name,
//Flags = item.Flags, // TODO: Add to internal model //Flags = item.Flags, // TODO: Add to internal model
Clock = item.Clock?.ToString(), Clock = item.Clock?.ToString(),
@@ -485,7 +485,7 @@ namespace SabreTools.DatFiles.Formats
{ {
var video = new Models.ClrMamePro.Video var video = new Models.ClrMamePro.Video
{ {
Screen = item.DisplayType.FromDisplayType(), Screen = item.DisplayType.AsStringValue<DisplayType>(),
X = item.Width?.ToString(), X = item.Width?.ToString(),
Y = item.Height?.ToString(), Y = item.Height?.ToString(),
//AspectX = item.AspectX, // TODO: Add to internal model or find mapping //AspectX = item.AspectX, // TODO: Add to internal model or find mapping
@@ -573,7 +573,7 @@ namespace SabreTools.DatFiles.Formats
{ {
var driver = new Models.ClrMamePro.Driver var driver = new Models.ClrMamePro.Driver
{ {
Status = item.Status.FromSupportStatus(), Status = item.Status.AsStringValue<SupportStatus>(),
//Color = item.Color, // TODO: Add to internal model or find mapping //Color = item.Color, // TODO: Add to internal model or find mapping
//Sound = item.Sound, // TODO: Add to internal model or find mapping //Sound = item.Sound, // TODO: Add to internal model or find mapping
//PaletteSize = item.PaletteSize, // TODO: Add to internal model or find mapping //PaletteSize = item.PaletteSize, // TODO: Add to internal model or find mapping

View File

@@ -97,7 +97,7 @@ namespace SabreTools.DatFiles.Formats
{ {
Name = game.Name, Name = game.Name,
SourceFile = game.SourceFile, SourceFile = game.SourceFile,
Runnable = game.Runnable.AsRunnable(), Runnable = game.Runnable.AsEnumValue<Runnable>(),
CloneOf = game.CloneOf, CloneOf = game.CloneOf,
RomOf = game.RomOf, RomOf = game.RomOf,
SampleOf = game.SampleOf, SampleOf = game.SampleOf,
@@ -220,7 +220,7 @@ namespace SabreTools.DatFiles.Formats
MergeTag = rom.Merge, MergeTag = rom.Merge,
Region = rom.Region, Region = rom.Region,
Offset = rom.Offset, Offset = rom.Offset,
ItemStatus = rom.Status.AsItemStatus(), ItemStatus = rom.Status.AsEnumValue<ItemStatus>(),
Optional = rom.Optional.AsYesNo(), Optional = rom.Optional.AsYesNo(),
//Dispose = rom.Dispose.AsYesNo(), // TODO: Add to internal model //Dispose = rom.Dispose.AsYesNo(), // TODO: Add to internal model
//SoundOnly = rom.SoundOnly.AsYesNo(), // TODO: Add to internal model //SoundOnly = rom.SoundOnly.AsYesNo(), // TODO: Add to internal model
@@ -264,7 +264,7 @@ namespace SabreTools.DatFiles.Formats
Region = disk.Region, Region = disk.Region,
Index = disk.Index, Index = disk.Index,
Writable = disk.Writable.AsYesNo(), Writable = disk.Writable.AsYesNo(),
ItemStatus = disk.Status.AsItemStatus(), ItemStatus = disk.Status.AsEnumValue<ItemStatus>(),
Optional = disk.Optional.AsYesNo(), Optional = disk.Optional.AsYesNo(),
Source = new Source Source = new Source
@@ -369,7 +369,7 @@ namespace SabreTools.DatFiles.Formats
{ {
Name = chip.Name, Name = chip.Name,
Tag = chip.Tag, Tag = chip.Tag,
ChipType = chip.Type.AsChipType(), ChipType = chip.Type.AsEnumValue<ChipType>(),
//SoundOnly = chip.SoundOnly, // TODO: Add to internal model //SoundOnly = chip.SoundOnly, // TODO: Add to internal model
Clock = NumberHelper.ConvertToInt64(chip.Clock), Clock = NumberHelper.ConvertToInt64(chip.Clock),
@@ -406,7 +406,7 @@ namespace SabreTools.DatFiles.Formats
var item = new Display var item = new Display
{ {
Tag = display.Tag, Tag = display.Tag,
DisplayType = display.Type.AsDisplayType(), DisplayType = display.Type.AsEnumValue<DisplayType>(),
Rotate = NumberHelper.ConvertToInt64(display.Rotate), Rotate = NumberHelper.ConvertToInt64(display.Rotate),
FlipX = display.FlipX.AsYesNo(), FlipX = display.FlipX.AsYesNo(),
Width = NumberHelper.ConvertToInt64(display.Width), Width = NumberHelper.ConvertToInt64(display.Width),
@@ -452,7 +452,7 @@ namespace SabreTools.DatFiles.Formats
{ {
var item = new Display var item = new Display
{ {
DisplayType = video.Screen?.AsDisplayType() ?? DisplayType.NULL, DisplayType = video.Screen?.AsEnumValue<DisplayType>() ?? DisplayType.NULL,
Width = NumberHelper.ConvertToInt64(video.Width), Width = NumberHelper.ConvertToInt64(video.Width),
Height = NumberHelper.ConvertToInt64(video.Height), Height = NumberHelper.ConvertToInt64(video.Height),
//AspectX = video.AspectX, // TODO: Add to internal model or find mapping //AspectX = video.AspectX, // TODO: Add to internal model or find mapping
@@ -549,7 +549,7 @@ namespace SabreTools.DatFiles.Formats
{ {
var controlItem = new Control var controlItem = new Control
{ {
ControlType = control.Type.AsControlType(), ControlType = control.Type.AsEnumValue<ControlType>(),
Player = NumberHelper.ConvertToInt64(control.Player), Player = NumberHelper.ConvertToInt64(control.Player),
Buttons = NumberHelper.ConvertToInt64(control.Buttons), Buttons = NumberHelper.ConvertToInt64(control.Buttons),
RequiredButtons = NumberHelper.ConvertToInt64(control.ReqButtons), RequiredButtons = NumberHelper.ConvertToInt64(control.ReqButtons),
@@ -609,7 +609,7 @@ namespace SabreTools.DatFiles.Formats
{ {
Tag = dipswitch.Condition.Tag, Tag = dipswitch.Condition.Tag,
Mask = dipswitch.Condition.Mask, Mask = dipswitch.Condition.Mask,
Relation = dipswitch.Condition.Relation.AsRelation(), Relation = dipswitch.Condition.Relation.AsEnumValue<Relation>(),
Value = dipswitch.Condition.Value, Value = dipswitch.Condition.Value,
}; };
item.Conditions = [condition]; item.Conditions = [condition];
@@ -646,7 +646,7 @@ namespace SabreTools.DatFiles.Formats
{ {
Tag = dipvalue.Condition.Tag, Tag = dipvalue.Condition.Tag,
Mask = dipvalue.Condition.Mask, Mask = dipvalue.Condition.Mask,
Relation = dipvalue.Condition.Relation.AsRelation(), Relation = dipvalue.Condition.Relation.AsEnumValue<Relation>(),
Value = dipvalue.Condition.Value, Value = dipvalue.Condition.Value,
}; };
dipValueItem.Conditions = [condition]; dipValueItem.Conditions = [condition];
@@ -700,7 +700,7 @@ namespace SabreTools.DatFiles.Formats
{ {
Tag = configuration.Condition.Tag, Tag = configuration.Condition.Tag,
Mask = configuration.Condition.Mask, Mask = configuration.Condition.Mask,
Relation = configuration.Condition.Relation.AsRelation(), Relation = configuration.Condition.Relation.AsEnumValue<Relation>(),
Value = configuration.Condition.Value, Value = configuration.Condition.Value,
}; };
item.Conditions = [condition]; item.Conditions = [condition];
@@ -737,7 +737,7 @@ namespace SabreTools.DatFiles.Formats
{ {
Tag = dipvalue.Condition.Tag, Tag = dipvalue.Condition.Tag,
Mask = dipvalue.Condition.Mask, Mask = dipvalue.Condition.Mask,
Relation = dipvalue.Condition.Relation.AsRelation(), Relation = dipvalue.Condition.Relation.AsEnumValue<Relation>(),
Value = dipvalue.Condition.Value, Value = dipvalue.Condition.Value,
}; };
settingItem.Conditions = [condition]; settingItem.Conditions = [condition];
@@ -837,7 +837,7 @@ namespace SabreTools.DatFiles.Formats
{ {
Tag = adjuster.Condition.Tag, Tag = adjuster.Condition.Tag,
Mask = adjuster.Condition.Mask, Mask = adjuster.Condition.Mask,
Relation = adjuster.Condition.Relation.AsRelation(), Relation = adjuster.Condition.Relation.AsEnumValue<Relation>(),
Value = adjuster.Condition.Value, Value = adjuster.Condition.Value,
}; };
item.Conditions = [condition]; item.Conditions = [condition];
@@ -866,13 +866,13 @@ namespace SabreTools.DatFiles.Formats
containsItems = true; containsItems = true;
var item = new Driver var item = new Driver
{ {
Status = driver.Status.AsSupportStatus(), Status = driver.Status.AsEnumValue<SupportStatus>(),
//Color = driver.Color.AsSupportStatus(), // TODO: Add to internal model //Color = driver.Color.AsEnumValue<SupportStatus>(), // TODO: Add to internal model
//Sound = driver.Sound.AsSupportStatus(), // TODO: Add to internal model //Sound = driver.Sound.AsEnumValue<SupportStatus>(), // TODO: Add to internal model
//PaletteSize = NumberHelper.ConvertToInt64(driver.PaletteSize), // TODO: Add to internal model //PaletteSize = NumberHelper.ConvertToInt64(driver.PaletteSize), // TODO: Add to internal model
Emulation = driver.Emulation.AsSupportStatus(), Emulation = driver.Emulation.AsEnumValue<SupportStatus>(),
Cocktail = driver.Cocktail.AsSupportStatus(), Cocktail = driver.Cocktail.AsEnumValue<SupportStatus>(),
SaveState = driver.SaveState.AsSupported(), SaveState = driver.SaveState.AsEnumValue<Supported>(),
RequiresArtwork = driver.RequiresArtwork.AsYesNo(), RequiresArtwork = driver.RequiresArtwork.AsYesNo(),
Unofficial = driver.Unofficial.AsYesNo(), Unofficial = driver.Unofficial.AsYesNo(),
NoSoundHardware = driver.NoSoundHardware.AsYesNo(), NoSoundHardware = driver.NoSoundHardware.AsYesNo(),
@@ -909,9 +909,9 @@ namespace SabreTools.DatFiles.Formats
{ {
var item = new Feature var item = new Feature
{ {
Type = feature.Type.AsFeatureType(), Type = feature.Type.AsEnumValue<FeatureType>(),
Status = feature.Status.AsFeatureStatus(), Status = feature.Status.AsEnumValue<FeatureStatus>(),
Overall = feature.Overall.AsFeatureStatus(), Overall = feature.Overall.AsEnumValue<FeatureStatus>(),
Source = new Source Source = new Source
{ {
@@ -945,7 +945,7 @@ namespace SabreTools.DatFiles.Formats
{ {
var item = new Device var item = new Device
{ {
DeviceType = device.Type.AsDeviceType(), DeviceType = device.Type.AsEnumValue<DeviceType>(),
Tag = device.Tag, Tag = device.Tag,
FixedImage = device.FixedImage, FixedImage = device.FixedImage,
Mandatory = NumberHelper.ConvertToInt64(device.Mandatory), Mandatory = NumberHelper.ConvertToInt64(device.Mandatory),
@@ -1057,7 +1057,7 @@ namespace SabreTools.DatFiles.Formats
{ {
Tag = softwarelist.Tag, Tag = softwarelist.Tag,
Name = softwarelist.Name, Name = softwarelist.Name,
Status = softwarelist.Status.AsSoftwareListStatus(), Status = softwarelist.Status.AsEnumValue<SoftwareListStatus>(),
Filter = softwarelist.Filter, Filter = softwarelist.Filter,
Source = new Source Source = new Source

View File

@@ -374,7 +374,7 @@ namespace SabreTools.DatFiles.Formats
{ {
Name = machine.Name, Name = machine.Name,
SourceFile = machine.SourceFile, SourceFile = machine.SourceFile,
Runnable = machine.Runnable.FromRunnable(), Runnable = machine.Runnable.AsStringValue<Runnable>(),
CloneOf = machine.CloneOf, CloneOf = machine.CloneOf,
RomOf = machine.RomOf, RomOf = machine.RomOf,
SampleOf = machine.SampleOf, SampleOf = machine.SampleOf,
@@ -435,7 +435,7 @@ namespace SabreTools.DatFiles.Formats
Merge = item.MergeTag, Merge = item.MergeTag,
Region = item.Region, Region = item.Region,
Offset = item.Offset, Offset = item.Offset,
Status = item.ItemStatus.FromItemStatus(yesno: false), Status = item.ItemStatus.AsStringValue<ItemStatus>(useSecond: false),
Optional = item.Optional.FromYesNo(), Optional = item.Optional.FromYesNo(),
//Dispose = item.Dispose.FromYesNo(), // TODO: Add to internal model //Dispose = item.Dispose.FromYesNo(), // TODO: Add to internal model
//SoundOnly = item.SoundOnly.FromYesNo(), // TODO: Add to internal model //SoundOnly = item.SoundOnly.FromYesNo(), // TODO: Add to internal model
@@ -458,7 +458,7 @@ namespace SabreTools.DatFiles.Formats
Region = item.Region, Region = item.Region,
Index = item.Index, Index = item.Index,
Writable = item.Writable.FromYesNo(), Writable = item.Writable.FromYesNo(),
Status = item.ItemStatus.FromItemStatus(yesno: false), Status = item.ItemStatus.AsStringValue<ItemStatus>(useSecond: false),
Optional = item.Optional.FromYesNo(), Optional = item.Optional.FromYesNo(),
}; };
@@ -500,7 +500,7 @@ namespace SabreTools.DatFiles.Formats
{ {
Name = item.Name, Name = item.Name,
Tag = item.Tag, Tag = item.Tag,
Type = item.ChipType.FromChipType(), Type = item.ChipType.AsStringValue<ChipType>(),
//SoundOnly = item.SoundOnly, // TODO: Add to internal model //SoundOnly = item.SoundOnly, // TODO: Add to internal model
Clock = item.Clock?.ToString(), Clock = item.Clock?.ToString(),
}; };
@@ -516,7 +516,7 @@ namespace SabreTools.DatFiles.Formats
var display = new Models.Listxml.Display var display = new Models.Listxml.Display
{ {
Tag = item.Tag, Tag = item.Tag,
Type = item.DisplayType.FromDisplayType(), Type = item.DisplayType.AsStringValue<DisplayType>(),
Rotate = item.Rotate?.ToString(), Rotate = item.Rotate?.ToString(),
FlipX = item.FlipX.FromYesNo(), FlipX = item.FlipX.FromYesNo(),
Width = item.Width?.ToString(), Width = item.Width?.ToString(),
@@ -582,7 +582,7 @@ namespace SabreTools.DatFiles.Formats
{ {
var control = new Models.Listxml.Control var control = new Models.Listxml.Control
{ {
Type = item.ControlType.FromControlType(), Type = item.ControlType.AsStringValue<ControlType>(),
Player = item.Player?.ToString(), Player = item.Player?.ToString(),
Buttons = item.Buttons?.ToString(), Buttons = item.Buttons?.ToString(),
ReqButtons = item.RequiredButtons?.ToString(), ReqButtons = item.RequiredButtons?.ToString(),
@@ -618,7 +618,7 @@ namespace SabreTools.DatFiles.Formats
{ {
Tag = conditionItem?.Tag, Tag = conditionItem?.Tag,
Mask = conditionItem?.Mask, Mask = conditionItem?.Mask,
Relation = conditionItem?.Relation.FromRelation(), Relation = conditionItem?.Relation.AsStringValue<Relation>(),
Value = conditionItem?.Value, Value = conditionItem?.Value,
}; };
dipswitch.Condition = condition; dipswitch.Condition = condition;
@@ -681,7 +681,7 @@ namespace SabreTools.DatFiles.Formats
{ {
Tag = conditionItem?.Tag, Tag = conditionItem?.Tag,
Mask = conditionItem?.Mask, Mask = conditionItem?.Mask,
Relation = conditionItem?.Relation.FromRelation(), Relation = conditionItem?.Relation.AsStringValue<Relation>(),
Value = conditionItem?.Value, Value = conditionItem?.Value,
}; };
dipvalue.Condition = condition; dipvalue.Condition = condition;
@@ -709,7 +709,7 @@ namespace SabreTools.DatFiles.Formats
{ {
Tag = conditionItem?.Tag, Tag = conditionItem?.Tag,
Mask = conditionItem?.Mask, Mask = conditionItem?.Mask,
Relation = conditionItem?.Relation.FromRelation(), Relation = conditionItem?.Relation.AsStringValue<Relation>(),
Value = conditionItem?.Value, Value = conditionItem?.Value,
}; };
configuration.Condition = condition; configuration.Condition = condition;
@@ -772,7 +772,7 @@ namespace SabreTools.DatFiles.Formats
{ {
Tag = conditionItem?.Tag, Tag = conditionItem?.Tag,
Mask = conditionItem?.Mask, Mask = conditionItem?.Mask,
Relation = conditionItem?.Relation.FromRelation(), Relation = conditionItem?.Relation.AsStringValue<Relation>(),
Value = conditionItem?.Value, Value = conditionItem?.Value,
}; };
confsetting.Condition = condition; confsetting.Condition = condition;
@@ -812,7 +812,7 @@ namespace SabreTools.DatFiles.Formats
{ {
Tag = conditionItem?.Tag, Tag = conditionItem?.Tag,
Mask = conditionItem?.Mask, Mask = conditionItem?.Mask,
Relation = conditionItem?.Relation.FromRelation(), Relation = conditionItem?.Relation.AsStringValue<Relation>(),
Value = conditionItem?.Value, Value = conditionItem?.Value,
}; };
adjuster.Condition = condition; adjuster.Condition = condition;
@@ -828,13 +828,13 @@ namespace SabreTools.DatFiles.Formats
{ {
var driver = new Models.Listxml.Driver var driver = new Models.Listxml.Driver
{ {
Status = item.Status.FromSupportStatus(), Status = item.Status.AsStringValue<SupportStatus>(),
//Color = item.Color.FromSupportStatus(), // TODO: Add to internal model //Color = item.Color.AsStringValue<SupportStatus>(), // TODO: Add to internal model
//Sound = item.Sound.FromSupportStatus(), // TODO: Add to internal model //Sound = item.Sound.AsStringValue<SupportStatus>(), // TODO: Add to internal model
//PaletteSize = driver.PaletteSize?.ToString(), // TODO: Add to internal model //PaletteSize = driver.PaletteSize?.ToString(), // TODO: Add to internal model
Emulation = item.Emulation.FromSupportStatus(), Emulation = item.Emulation.AsStringValue<SupportStatus>(),
Cocktail = item.Cocktail.FromSupportStatus(), Cocktail = item.Cocktail.AsStringValue<SupportStatus>(),
SaveState = item.SaveState.FromSupported(verbose: true), SaveState = item.SaveState.AsStringValue<Supported>(useSecond: true),
RequiresArtwork = item.RequiresArtwork.FromYesNo(), RequiresArtwork = item.RequiresArtwork.FromYesNo(),
Unofficial = item.Unofficial.FromYesNo(), Unofficial = item.Unofficial.FromYesNo(),
NoSoundHardware = item.NoSoundHardware.FromYesNo(), NoSoundHardware = item.NoSoundHardware.FromYesNo(),
@@ -851,9 +851,9 @@ namespace SabreTools.DatFiles.Formats
{ {
var feature = new Models.Listxml.Feature var feature = new Models.Listxml.Feature
{ {
Type = item.Type.FromFeatureType(), Type = item.Type.AsStringValue<FeatureType>(),
Status = item.Status.FromFeatureStatus(), Status = item.Status.AsStringValue<FeatureStatus>(),
Overall = item.Overall.FromFeatureStatus(), Overall = item.Overall.AsStringValue<FeatureStatus>(),
}; };
return feature; return feature;
@@ -866,7 +866,7 @@ namespace SabreTools.DatFiles.Formats
{ {
var device = new Models.Listxml.Device var device = new Models.Listxml.Device
{ {
Type = item.DeviceType.FromDeviceType(), Type = item.DeviceType.AsStringValue<DeviceType>(),
Tag = item.Tag, Tag = item.Tag,
FixedImage = item.FixedImage, FixedImage = item.FixedImage,
Mandatory = item.Mandatory?.ToString(), Mandatory = item.Mandatory?.ToString(),
@@ -937,7 +937,7 @@ namespace SabreTools.DatFiles.Formats
{ {
Tag = item.Tag, Tag = item.Tag,
Name = item.Name, Name = item.Name,
Status = item.Status.FromSoftwareListStatus(), Status = item.Status.AsStringValue<SoftwareListStatus>(),
Filter = item.Filter, Filter = item.Filter,
}; };

View File

@@ -102,11 +102,11 @@ namespace SabreTools.DatFiles.Formats
Header.HeaderSkipper ??= clrMamePro.Header; Header.HeaderSkipper ??= clrMamePro.Header;
if (Header.ForceMerging == MergingFlag.None) if (Header.ForceMerging == MergingFlag.None)
Header.ForceMerging = clrMamePro.ForceMerging.AsMergingFlag(); Header.ForceMerging = clrMamePro.ForceMerging.AsEnumValue<MergingFlag>();
if (Header.ForceNodump == NodumpFlag.None) if (Header.ForceNodump == NodumpFlag.None)
Header.ForceNodump = clrMamePro.ForceNodump.AsNodumpFlag(); Header.ForceNodump = clrMamePro.ForceNodump.AsEnumValue<NodumpFlag>();
if (Header.ForcePacking == PackingFlag.None) if (Header.ForcePacking == PackingFlag.None)
Header.ForcePacking = clrMamePro.ForcePacking.AsPackingFlag(); Header.ForcePacking = clrMamePro.ForcePacking.AsEnumValue<PackingFlag>();
} }
/// <summary> /// <summary>
@@ -122,11 +122,11 @@ namespace SabreTools.DatFiles.Formats
Header.System ??= romCenter.Plugin; Header.System ??= romCenter.Plugin;
if (Header.RomMode == MergingFlag.None) if (Header.RomMode == MergingFlag.None)
Header.RomMode = romCenter.RomMode.AsMergingFlag(); Header.RomMode = romCenter.RomMode.AsEnumValue<MergingFlag>();
if (Header.BiosMode == MergingFlag.None) if (Header.BiosMode == MergingFlag.None)
Header.BiosMode = romCenter.BiosMode.AsMergingFlag(); Header.BiosMode = romCenter.BiosMode.AsEnumValue<MergingFlag>();
if (Header.SampleMode == MergingFlag.None) if (Header.SampleMode == MergingFlag.None)
Header.SampleMode = romCenter.SampleMode.AsMergingFlag(); Header.SampleMode = romCenter.SampleMode.AsEnumValue<MergingFlag>();
Header.LockRomMode ??= romCenter.LockRomMode.AsYesNo(); Header.LockRomMode ??= romCenter.LockRomMode.AsYesNo();
Header.LockBiosMode ??= romCenter.LockBiosMode.AsYesNo(); Header.LockBiosMode ??= romCenter.LockBiosMode.AsYesNo();
@@ -218,7 +218,7 @@ namespace SabreTools.DatFiles.Formats
RebuildTo = game.RebuildTo, RebuildTo = game.RebuildTo,
NoIntroId = game.Id, NoIntroId = game.Id,
NoIntroCloneOfId = game.CloneOfId, NoIntroCloneOfId = game.CloneOfId,
Runnable = game.Runnable.AsRunnable(), Runnable = game.Runnable.AsEnumValue<Runnable>(),
Description = game.Description, Description = game.Description,
Year = game.Year, Year = game.Year,
@@ -406,7 +406,7 @@ namespace SabreTools.DatFiles.Formats
//xxHash364 = rom.xxHash364, // TODO: Add to internal model //xxHash364 = rom.xxHash364, // TODO: Add to internal model
//xxHash3128 = rom.xxHash3128, // TODO: Add to internal model //xxHash3128 = rom.xxHash3128, // TODO: Add to internal model
MergeTag = rom.Merge, MergeTag = rom.Merge,
ItemStatus = rom.Status?.AsItemStatus() ?? ItemStatus.NULL, ItemStatus = rom.Status?.AsEnumValue<ItemStatus>() ?? ItemStatus.NULL,
//Serial = rom.Serial, // TODO: Add to internal model //Serial = rom.Serial, // TODO: Add to internal model
//Header = rom.Header, // TODO: Add to internal model //Header = rom.Header, // TODO: Add to internal model
Date = rom.Date, Date = rom.Date,
@@ -449,7 +449,7 @@ namespace SabreTools.DatFiles.Formats
MD5 = disk.MD5, MD5 = disk.MD5,
SHA1 = disk.SHA1, SHA1 = disk.SHA1,
MergeTag = disk.Merge, MergeTag = disk.Merge,
ItemStatus = disk.Status?.AsItemStatus() ?? ItemStatus.NULL, ItemStatus = disk.Status?.AsEnumValue<ItemStatus>() ?? ItemStatus.NULL,
Source = new Source Source = new Source
{ {
@@ -621,10 +621,10 @@ namespace SabreTools.DatFiles.Formats
containsItems = true; containsItems = true;
var item = new Driver var item = new Driver
{ {
Status = driver.Status?.AsSupportStatus() ?? SupportStatus.NULL, Status = driver.Status?.AsEnumValue<SupportStatus>() ?? SupportStatus.NULL,
Emulation = driver.Emulation?.AsSupportStatus() ?? SupportStatus.NULL, Emulation = driver.Emulation?.AsEnumValue<SupportStatus>() ?? SupportStatus.NULL,
Cocktail = driver.Cocktail?.AsSupportStatus() ?? SupportStatus.NULL, Cocktail = driver.Cocktail?.AsEnumValue<SupportStatus>() ?? SupportStatus.NULL,
SaveState = driver.SaveState?.AsSupported() ?? Supported.NULL, SaveState = driver.SaveState?.AsEnumValue<Supported>() ?? Supported.NULL,
RequiresArtwork = driver.RequiresArtwork?.AsYesNo(), RequiresArtwork = driver.RequiresArtwork?.AsYesNo(),
Unofficial = driver.Unofficial?.AsYesNo(), Unofficial = driver.Unofficial?.AsYesNo(),
NoSoundHardware = driver.NoSoundHardware?.AsYesNo(), NoSoundHardware = driver.NoSoundHardware?.AsYesNo(),
@@ -663,7 +663,7 @@ namespace SabreTools.DatFiles.Formats
{ {
Tag = softwarelist.Tag, Tag = softwarelist.Tag,
Name = softwarelist.Name, Name = softwarelist.Name,
Status = softwarelist.Status?.AsSoftwareListStatus() ?? SoftwareListStatus.None, Status = softwarelist.Status?.AsEnumValue<SoftwareListStatus>() ?? SoftwareListStatus.None,
Filter = softwarelist.Filter, Filter = softwarelist.Filter,
Source = new Source Source = new Source

View File

@@ -233,11 +233,11 @@ namespace SabreTools.DatFiles.Formats
}; };
if (Header.ForceMergingSpecified) if (Header.ForceMergingSpecified)
subheader.ForceMerging = Header.ForceMerging.FromMergingFlag(romCenter: false); subheader.ForceMerging = Header.ForceMerging.AsStringValue<MergingFlag>(useSecond: false);
if (Header.ForceNodumpSpecified) if (Header.ForceNodumpSpecified)
subheader.ForceNodump = Header.ForceNodump.FromNodumpFlag(); subheader.ForceNodump = Header.ForceNodump.AsStringValue<NodumpFlag>();
if (Header.ForcePackingSpecified) if (Header.ForcePackingSpecified)
subheader.ForcePacking = Header.ForcePacking.FromPackingFlag(yesno: false); subheader.ForcePacking = Header.ForcePacking.AsStringValue<PackingFlag>(useSecond: false);
return subheader; return subheader;
} }
@@ -265,11 +265,11 @@ namespace SabreTools.DatFiles.Formats
}; };
if (Header.RomModeSpecified) if (Header.RomModeSpecified)
subheader.RomMode = Header.RomMode.FromMergingFlag(romCenter: true); subheader.RomMode = Header.RomMode.AsStringValue<MergingFlag>(useSecond: true);
if (Header.BiosModeSpecified) if (Header.BiosModeSpecified)
subheader.BiosMode = Header.BiosMode.FromMergingFlag(romCenter: true); subheader.BiosMode = Header.BiosMode.AsStringValue<MergingFlag>(useSecond: true);
if (Header.SampleModeSpecified) if (Header.SampleModeSpecified)
subheader.SampleMode = Header.SampleMode.FromMergingFlag(romCenter: true); subheader.SampleMode = Header.SampleMode.AsStringValue<MergingFlag>(useSecond: true);
if (Header.LockRomModeSpecified) if (Header.LockRomModeSpecified)
subheader.LockRomMode = Header.LockRomMode.FromYesNo(); subheader.LockRomMode = Header.LockRomMode.FromYesNo();
@@ -413,7 +413,7 @@ namespace SabreTools.DatFiles.Formats
game.RebuildTo = machine.RebuildTo; game.RebuildTo = machine.RebuildTo;
game.Id = machine.NoIntroId; game.Id = machine.NoIntroId;
game.CloneOfId = machine.NoIntroCloneOfId; game.CloneOfId = machine.NoIntroCloneOfId;
game.Runnable = machine.Runnable.FromRunnable(); game.Runnable = machine.Runnable.AsStringValue<Runnable>();
if (machine.Comment != null) if (machine.Comment != null)
{ {
if (machine.Comment.Contains(';')) if (machine.Comment.Contains(';'))
@@ -538,7 +538,7 @@ namespace SabreTools.DatFiles.Formats
}; };
if (item.ItemStatusSpecified) if (item.ItemStatusSpecified)
rom.Status = item.ItemStatus.FromItemStatus(yesno: false); rom.Status = item.ItemStatus.AsStringValue<ItemStatus>(useSecond: false);
if (item.InvertedSpecified) if (item.InvertedSpecified)
rom.Inverted = item.Inverted.FromYesNo(); rom.Inverted = item.Inverted.FromYesNo();
if (item.MIASpecified) if (item.MIASpecified)
@@ -562,7 +562,7 @@ namespace SabreTools.DatFiles.Formats
}; };
if (item.ItemStatusSpecified) if (item.ItemStatusSpecified)
disk.Status = item.ItemStatus.FromItemStatus(yesno: false); disk.Status = item.ItemStatus.AsStringValue<ItemStatus>(useSecond: false);
return disk; return disk;
} }
@@ -626,10 +626,10 @@ namespace SabreTools.DatFiles.Formats
{ {
var driver = new Models.Logiqx.Driver var driver = new Models.Logiqx.Driver
{ {
Status = item.Status.FromSupportStatus(), Status = item.Status.AsStringValue<SupportStatus>(),
Emulation = item.Emulation.FromSupportStatus(), Emulation = item.Emulation.AsStringValue<SupportStatus>(),
Cocktail = item.Cocktail.FromSupportStatus(), Cocktail = item.Cocktail.AsStringValue<SupportStatus>(),
SaveState = item.SaveState.FromSupported(true), SaveState = item.SaveState.AsStringValue<Supported>(useSecond: true),
}; };
if (item.RequiresArtworkSpecified) if (item.RequiresArtworkSpecified)
@@ -657,7 +657,7 @@ namespace SabreTools.DatFiles.Formats
}; };
if (item.StatusSpecified) if (item.StatusSpecified)
softwarelist.Status = item.Status.FromSoftwareListStatus(); softwarelist.Status = item.Status.AsStringValue<SoftwareListStatus>();
return softwarelist; return softwarelist;
} }

View File

@@ -209,7 +209,7 @@ namespace SabreTools.DatFiles.Formats
if (datItemObj == null) if (datItemObj == null)
return; return;
switch (datItemObj.Value<string>("type").AsItemType()) switch (datItemObj.Value<string>("type").AsEnumValue<ItemType>())
{ {
case ItemType.Adjuster: case ItemType.Adjuster:
datItem = datItemObj.ToObject<Adjuster>(); datItem = datItemObj.ToObject<Adjuster>();

View File

@@ -79,7 +79,7 @@ namespace SabreTools.DatFiles.Formats
// Read item values // Read item values
DatItem? item = null; DatItem? item = null;
switch (row.Type.AsItemType()) switch (row.Type.AsEnumValue<ItemType>())
{ {
case ItemType.Disk: case ItemType.Disk:
item = new Disk item = new Disk
@@ -87,7 +87,7 @@ namespace SabreTools.DatFiles.Formats
Name = row.DiskName, Name = row.DiskName,
MD5 = row.MD5, MD5 = row.MD5,
SHA1 = row.SHA1, SHA1 = row.SHA1,
ItemStatus = row.Status.AsItemStatus(), ItemStatus = row.Status.AsEnumValue<ItemStatus>(),
Source = new Source Source = new Source
{ {
@@ -125,7 +125,7 @@ namespace SabreTools.DatFiles.Formats
SHA384 = row.SHA384, SHA384 = row.SHA384,
SHA512 = row.SHA512, SHA512 = row.SHA512,
SpamSum = row.SpamSum, SpamSum = row.SpamSum,
ItemStatus = row.Status.AsItemStatus(), ItemStatus = row.Status.AsEnumValue<ItemStatus>(),
Source = new Source Source = new Source
{ {

View File

@@ -164,7 +164,7 @@ namespace SabreTools.DatFiles.Formats
Description = Header.Description, Description = Header.Description,
GameName = disk.Machine.Name, GameName = disk.Machine.Name,
GameDescription = disk.Machine.Description, GameDescription = disk.Machine.Description,
Type = disk.ItemType.FromItemType(), Type = disk.ItemType.AsStringValue<ItemType>(),
RomName = string.Empty, RomName = string.Empty,
DiskName = disk.Name, DiskName = disk.Name,
Size = string.Empty, Size = string.Empty,
@@ -175,7 +175,7 @@ namespace SabreTools.DatFiles.Formats
SHA384 = string.Empty, SHA384 = string.Empty,
SHA512 = string.Empty, SHA512 = string.Empty,
SpamSum = string.Empty, SpamSum = string.Empty,
Status = disk.ItemStatus.FromItemStatus(yesno: false), Status = disk.ItemStatus.AsStringValue<ItemStatus>(useSecond: false),
}; };
return row; return row;
} }
@@ -192,7 +192,7 @@ namespace SabreTools.DatFiles.Formats
Description = Header.Description, Description = Header.Description,
GameName = media.Machine.Name, GameName = media.Machine.Name,
GameDescription = media.Machine.Description, GameDescription = media.Machine.Description,
Type = media.ItemType.FromItemType(), Type = media.ItemType.AsStringValue<ItemType>(),
RomName = string.Empty, RomName = string.Empty,
DiskName = media.Name, DiskName = media.Name,
Size = string.Empty, Size = string.Empty,
@@ -220,7 +220,7 @@ namespace SabreTools.DatFiles.Formats
Description = Header.Description, Description = Header.Description,
GameName = rom.Machine.Name, GameName = rom.Machine.Name,
GameDescription = rom.Machine.Description, GameDescription = rom.Machine.Description,
Type = rom.ItemType.FromItemType(), Type = rom.ItemType.AsStringValue<ItemType>(),
RomName = rom.Name, RomName = rom.Name,
DiskName = string.Empty, DiskName = string.Empty,
Size = rom.Size?.ToString(), Size = rom.Size?.ToString(),
@@ -231,7 +231,7 @@ namespace SabreTools.DatFiles.Formats
SHA384 = rom.SHA384, SHA384 = rom.SHA384,
SHA512 = rom.SHA512, SHA512 = rom.SHA512,
SpamSum = rom.SpamSum, SpamSum = rom.SpamSum,
Status = rom.ItemStatus.FromItemStatus(yesno: false), Status = rom.ItemStatus.AsStringValue<ItemStatus>(useSecond: false),
}; };
return row; return row;
} }

View File

@@ -1,6 +1,7 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using SabreTools.Core;
using SabreTools.Core.Tools; using SabreTools.Core.Tools;
using SabreTools.DatItems; using SabreTools.DatItems;
using SabreTools.DatItems.Formats; using SabreTools.DatItems.Formats;
@@ -93,7 +94,7 @@ namespace SabreTools.DatFiles.Formats
{ {
Name = software.Name, Name = software.Name,
CloneOf = software.CloneOf, CloneOf = software.CloneOf,
Supported = software.Supported.AsSupported(), Supported = software.Supported.AsEnumValue<Supported>(),
Description = software.Description, Description = software.Description,
Year = software.Year, Year = software.Year,
Publisher = software.Publisher, Publisher = software.Publisher,
@@ -258,7 +259,7 @@ namespace SabreTools.DatFiles.Formats
Name = dataarea.Name, Name = dataarea.Name,
Size = NumberHelper.ConvertToInt64(dataarea.Size), Size = NumberHelper.ConvertToInt64(dataarea.Size),
Width = NumberHelper.ConvertToInt64(dataarea.Width), Width = NumberHelper.ConvertToInt64(dataarea.Width),
Endianness = dataarea.Endianness.AsEndianness(), Endianness = dataarea.Endianness.AsEnumValue<Endianness>(),
Source = new Source Source = new Source
{ {
@@ -300,8 +301,8 @@ namespace SabreTools.DatFiles.Formats
SHA1 = rom.SHA1, SHA1 = rom.SHA1,
Offset = rom.Offset, Offset = rom.Offset,
Value = rom.Value, Value = rom.Value,
ItemStatus = rom.Status.AsItemStatus(), ItemStatus = rom.Status.AsEnumValue<ItemStatus>(),
LoadFlag = rom.LoadFlag.AsLoadFlag(), LoadFlag = rom.LoadFlag.AsEnumValue<LoadFlag>(),
Part = part, Part = part,
DataArea = dataarea, DataArea = dataarea,
@@ -377,7 +378,7 @@ namespace SabreTools.DatFiles.Formats
Name = rom.Name, Name = rom.Name,
MD5 = rom.MD5, MD5 = rom.MD5,
SHA1 = rom.SHA1, SHA1 = rom.SHA1,
ItemStatus = rom.Status.AsItemStatus(), ItemStatus = rom.Status.AsEnumValue<ItemStatus>(),
Writable = rom.Writeable.AsYesNo(), Writable = rom.Writeable.AsYesNo(),
Part = part, Part = part,

View File

@@ -261,7 +261,7 @@ namespace SabreTools.DatFiles.Formats
{ {
Name = machine.Name, Name = machine.Name,
CloneOf = machine.CloneOf, CloneOf = machine.CloneOf,
Supported = machine.Supported.FromSupported(verbose: true), Supported = machine.Supported.AsStringValue<Supported>(useSecond: true),
Description = machine.Description, Description = machine.Description,
Year = machine.Year, Year = machine.Year,
Publisher = machine.Publisher, Publisher = machine.Publisher,
@@ -381,7 +381,7 @@ namespace SabreTools.DatFiles.Formats
Name = item.DataArea?.Name, Name = item.DataArea?.Name,
Size = item.DataArea?.Size?.ToString(), Size = item.DataArea?.Size?.ToString(),
Width = item.DataArea?.Width?.ToString(), Width = item.DataArea?.Width?.ToString(),
Endianness = item.DataArea?.Endianness.FromEndianness(), Endianness = item.DataArea?.Endianness.AsStringValue<Endianness>(),
Rom = CreateRom(item), Rom = CreateRom(item),
}; };
return [dataArea]; return [dataArea];
@@ -401,8 +401,8 @@ namespace SabreTools.DatFiles.Formats
SHA1 = item.SHA1, SHA1 = item.SHA1,
Offset = item.Offset, Offset = item.Offset,
Value = item.Value, Value = item.Value,
Status = item.ItemStatus.FromItemStatus(yesno: false), Status = item.ItemStatus.AsStringValue<ItemStatus>(useSecond: false),
LoadFlag = item.LoadFlag.FromLoadFlag(), LoadFlag = item.LoadFlag.AsStringValue<LoadFlag>(),
}; };
return [rom]; return [rom];
} }
@@ -429,7 +429,7 @@ namespace SabreTools.DatFiles.Formats
Name = item.Name, Name = item.Name,
MD5 = item.MD5, MD5 = item.MD5,
SHA1 = item.SHA1, SHA1 = item.SHA1,
Status = item.ItemStatus.FromItemStatus(yesno: false), Status = item.ItemStatus.AsStringValue<ItemStatus>(useSecond: false),
Writeable = item.Writable?.ToString(), Writeable = item.Writable?.ToString(),
}; };
return [disk]; return [disk];

View File

@@ -104,7 +104,7 @@ namespace SabreTools.DatFiles
datHeader.Author = DatHeaderMappings[DatHeaderField.Author]; datHeader.Author = DatHeaderMappings[DatHeaderField.Author];
if (DatHeaderMappings.ContainsKey(DatHeaderField.BiosMode)) if (DatHeaderMappings.ContainsKey(DatHeaderField.BiosMode))
datHeader.BiosMode = DatHeaderMappings[DatHeaderField.BiosMode].AsMergingFlag(); datHeader.BiosMode = DatHeaderMappings[DatHeaderField.BiosMode].AsEnumValue<MergingFlag>();
if (DatHeaderMappings.ContainsKey(DatHeaderField.Build)) if (DatHeaderMappings.ContainsKey(DatHeaderField.Build))
datHeader.Build = DatHeaderMappings[DatHeaderField.Build]; datHeader.Build = DatHeaderMappings[DatHeaderField.Build];
@@ -133,13 +133,13 @@ namespace SabreTools.DatFiles
datHeader.FileName = DatHeaderMappings[DatHeaderField.FileName]; datHeader.FileName = DatHeaderMappings[DatHeaderField.FileName];
if (DatHeaderMappings.ContainsKey(DatHeaderField.ForceMerging)) if (DatHeaderMappings.ContainsKey(DatHeaderField.ForceMerging))
datHeader.ForceMerging = DatHeaderMappings[DatHeaderField.ForceMerging].AsMergingFlag(); datHeader.ForceMerging = DatHeaderMappings[DatHeaderField.ForceMerging].AsEnumValue<MergingFlag>();
if (DatHeaderMappings.ContainsKey(DatHeaderField.ForceNodump)) if (DatHeaderMappings.ContainsKey(DatHeaderField.ForceNodump))
datHeader.ForceNodump = DatHeaderMappings[DatHeaderField.ForceNodump].AsNodumpFlag(); datHeader.ForceNodump = DatHeaderMappings[DatHeaderField.ForceNodump].AsEnumValue<NodumpFlag>();
if (DatHeaderMappings.ContainsKey(DatHeaderField.ForcePacking)) if (DatHeaderMappings.ContainsKey(DatHeaderField.ForcePacking))
datHeader.ForcePacking = DatHeaderMappings[DatHeaderField.ForcePacking].AsPackingFlag(); datHeader.ForcePacking = DatHeaderMappings[DatHeaderField.ForcePacking].AsEnumValue<PackingFlag>();
if (DatHeaderMappings.ContainsKey(DatHeaderField.HeaderSkipper)) if (DatHeaderMappings.ContainsKey(DatHeaderField.HeaderSkipper))
datHeader.HeaderSkipper = DatHeaderMappings[DatHeaderField.HeaderSkipper]; datHeader.HeaderSkipper = DatHeaderMappings[DatHeaderField.HeaderSkipper];
@@ -174,7 +174,7 @@ namespace SabreTools.DatFiles
datHeader.RomCenterVersion = DatHeaderMappings[DatHeaderField.RomCenterVersion]; datHeader.RomCenterVersion = DatHeaderMappings[DatHeaderField.RomCenterVersion];
if (DatHeaderMappings.ContainsKey(DatHeaderField.RomMode)) if (DatHeaderMappings.ContainsKey(DatHeaderField.RomMode))
datHeader.RomMode = DatHeaderMappings[DatHeaderField.RomMode].AsMergingFlag(); datHeader.RomMode = DatHeaderMappings[DatHeaderField.RomMode].AsEnumValue<MergingFlag>();
if (DatHeaderMappings.ContainsKey(DatHeaderField.RomTitle)) if (DatHeaderMappings.ContainsKey(DatHeaderField.RomTitle))
datHeader.RomTitle = DatHeaderMappings[DatHeaderField.RomTitle]; datHeader.RomTitle = DatHeaderMappings[DatHeaderField.RomTitle];
@@ -183,7 +183,7 @@ namespace SabreTools.DatFiles
datHeader.RootDir = DatHeaderMappings[DatHeaderField.RootDir]; datHeader.RootDir = DatHeaderMappings[DatHeaderField.RootDir];
if (DatHeaderMappings.ContainsKey(DatHeaderField.SampleMode)) if (DatHeaderMappings.ContainsKey(DatHeaderField.SampleMode))
datHeader.SampleMode = DatHeaderMappings[DatHeaderField.SampleMode].AsMergingFlag(); datHeader.SampleMode = DatHeaderMappings[DatHeaderField.SampleMode].AsEnumValue<MergingFlag>();
if (DatHeaderMappings.ContainsKey(DatHeaderField.ScreenshotsHeight)) if (DatHeaderMappings.ContainsKey(DatHeaderField.ScreenshotsHeight))
datHeader.ScreenshotsHeight = DatHeaderMappings[DatHeaderField.ScreenshotsHeight]; datHeader.ScreenshotsHeight = DatHeaderMappings[DatHeaderField.ScreenshotsHeight];

View File

@@ -73,8 +73,8 @@ namespace SabreTools.DatItems
[XmlElement("itemtype")] [XmlElement("itemtype")]
public ItemType ItemType public ItemType ItemType
{ {
get => _internal.ReadString(Models.Metadata.DatItem.TypeKey).AsItemType(); get => _internal.ReadString(Models.Metadata.DatItem.TypeKey).AsEnumValue<ItemType>();
set => _internal[Models.Metadata.DatItem.TypeKey] = value.FromItemType(); set => _internal[Models.Metadata.DatItem.TypeKey] = value.AsStringValue<ItemType>();
} }
/// <summary> /// <summary>

View File

@@ -42,8 +42,8 @@ namespace SabreTools.DatItems.Formats
[JsonConverter(typeof(StringEnumConverter))] [JsonConverter(typeof(StringEnumConverter))]
public ChipType ChipType public ChipType ChipType
{ {
get => _internal.ReadString(Models.Metadata.Chip.ChipTypeKey).AsChipType(); get => _internal.ReadString(Models.Metadata.Chip.ChipTypeKey).AsEnumValue<ChipType>();
set => _internal[Models.Metadata.Chip.ChipTypeKey] = value.FromChipType(); set => _internal[Models.Metadata.Chip.ChipTypeKey] = value.AsStringValue<ChipType>();
} }
[JsonIgnore] [JsonIgnore]

View File

@@ -42,8 +42,8 @@ namespace SabreTools.DatItems.Formats
[JsonConverter(typeof(StringEnumConverter))] [JsonConverter(typeof(StringEnumConverter))]
public Relation Relation public Relation Relation
{ {
get => _internal.ReadString(Models.Metadata.Condition.RelationKey).AsRelation(); get => _internal.ReadString(Models.Metadata.Condition.RelationKey).AsEnumValue<Relation>();
set => _internal[Models.Metadata.Condition.RelationKey] = value.FromRelation(); set => _internal[Models.Metadata.Condition.RelationKey] = value.AsStringValue<Relation>();
} }
[JsonIgnore] [JsonIgnore]

View File

@@ -22,8 +22,8 @@ namespace SabreTools.DatItems.Formats
[JsonConverter(typeof(StringEnumConverter))] [JsonConverter(typeof(StringEnumConverter))]
public ControlType ControlType public ControlType ControlType
{ {
get => _internal.ReadString(Models.Metadata.Control.ControlTypeKey).AsControlType(); get => _internal.ReadString(Models.Metadata.Control.ControlTypeKey).AsEnumValue<ControlType>();
set => _internal[Models.Metadata.Control.ControlTypeKey] = value.FromControlType(); set => _internal[Models.Metadata.Control.ControlTypeKey] = value.AsStringValue<ControlType>();
} }
[JsonIgnore] [JsonIgnore]

View File

@@ -57,8 +57,8 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("endianness", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("endianness")] [JsonProperty("endianness", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("endianness")]
public Endianness Endianness public Endianness Endianness
{ {
get => _internal.ReadString(Models.Metadata.DataArea.WidthKey).AsEndianness(); get => _internal.ReadString(Models.Metadata.DataArea.WidthKey).AsEnumValue<Endianness>();
set => _internal[Models.Metadata.DataArea.WidthKey] = value.FromEndianness(); set => _internal[Models.Metadata.DataArea.WidthKey] = value.AsStringValue<Endianness>();
} }
[JsonIgnore] [JsonIgnore]

View File

@@ -24,8 +24,8 @@ namespace SabreTools.DatItems.Formats
[JsonConverter(typeof(StringEnumConverter))] [JsonConverter(typeof(StringEnumConverter))]
public DeviceType DeviceType public DeviceType DeviceType
{ {
get => _internal.ReadString(Models.Metadata.Device.DeviceTypeKey).AsDeviceType(); get => _internal.ReadString(Models.Metadata.Device.DeviceTypeKey).AsEnumValue<DeviceType>();
set => _internal[Models.Metadata.Device.DeviceTypeKey] = value.FromDeviceType(); set => _internal[Models.Metadata.Device.DeviceTypeKey] = value.AsStringValue<DeviceType>();
} }
[JsonIgnore] [JsonIgnore]

View File

@@ -98,8 +98,8 @@ namespace SabreTools.DatItems.Formats
[JsonConverter(typeof(StringEnumConverter))] [JsonConverter(typeof(StringEnumConverter))]
public ItemStatus ItemStatus public ItemStatus ItemStatus
{ {
get => _internal.ReadString(Models.Metadata.Disk.StatusKey).AsItemStatus(); get => _internal.ReadString(Models.Metadata.Disk.StatusKey).AsEnumValue<ItemStatus>();
set => _internal[Models.Metadata.Disk.StatusKey] = value.FromItemStatus(yesno: false); set => _internal[Models.Metadata.Disk.StatusKey] = value.AsStringValue<ItemStatus>(useSecond: false);
} }
[JsonIgnore] [JsonIgnore]

View File

@@ -32,8 +32,8 @@ namespace SabreTools.DatItems.Formats
[JsonConverter(typeof(StringEnumConverter))] [JsonConverter(typeof(StringEnumConverter))]
public DisplayType DisplayType public DisplayType DisplayType
{ {
get => _internal.ReadString(Models.Metadata.Display.DisplayTypeKey).AsDisplayType(); get => _internal.ReadString(Models.Metadata.Display.DisplayTypeKey).AsEnumValue<DisplayType>();
set => _internal[Models.Metadata.Display.DisplayTypeKey] = value.FromDisplayType(); set => _internal[Models.Metadata.Display.DisplayTypeKey] = value.AsStringValue<DisplayType>();
} }
[JsonIgnore] [JsonIgnore]

View File

@@ -25,8 +25,8 @@ namespace SabreTools.DatItems.Formats
[JsonConverter(typeof(StringEnumConverter))] [JsonConverter(typeof(StringEnumConverter))]
public SupportStatus Status public SupportStatus Status
{ {
get => _internal.ReadString(Models.Metadata.Driver.StatusKey).AsSupportStatus(); get => _internal.ReadString(Models.Metadata.Driver.StatusKey).AsEnumValue<SupportStatus>();
set => _internal[Models.Metadata.Driver.StatusKey] = value.FromSupportStatus(); set => _internal[Models.Metadata.Driver.StatusKey] = value.AsStringValue<SupportStatus>();
} }
[JsonIgnore] [JsonIgnore]
@@ -39,8 +39,8 @@ namespace SabreTools.DatItems.Formats
[JsonConverter(typeof(StringEnumConverter))] [JsonConverter(typeof(StringEnumConverter))]
public SupportStatus Emulation public SupportStatus Emulation
{ {
get => _internal.ReadString(Models.Metadata.Driver.EmulationKey).AsSupportStatus(); get => _internal.ReadString(Models.Metadata.Driver.EmulationKey).AsEnumValue<SupportStatus>();
set => _internal[Models.Metadata.Driver.EmulationKey] = value.FromSupportStatus(); set => _internal[Models.Metadata.Driver.EmulationKey] = value.AsStringValue<SupportStatus>();
} }
[JsonIgnore] [JsonIgnore]
@@ -53,8 +53,8 @@ namespace SabreTools.DatItems.Formats
[JsonConverter(typeof(StringEnumConverter))] [JsonConverter(typeof(StringEnumConverter))]
public SupportStatus Cocktail public SupportStatus Cocktail
{ {
get => _internal.ReadString(Models.Metadata.Driver.CocktailKey).AsSupportStatus(); get => _internal.ReadString(Models.Metadata.Driver.CocktailKey).AsEnumValue<SupportStatus>();
set => _internal[Models.Metadata.Driver.CocktailKey] = value.FromSupportStatus(); set => _internal[Models.Metadata.Driver.CocktailKey] = value.AsStringValue<SupportStatus>();
} }
[JsonIgnore] [JsonIgnore]
@@ -67,8 +67,8 @@ namespace SabreTools.DatItems.Formats
[JsonConverter(typeof(StringEnumConverter))] [JsonConverter(typeof(StringEnumConverter))]
public Supported SaveState public Supported SaveState
{ {
get => _internal.ReadString(Models.Metadata.Driver.SaveStateKey).AsSupported(); get => _internal.ReadString(Models.Metadata.Driver.SaveStateKey).AsEnumValue<Supported>();
set => _internal[Models.Metadata.Driver.SaveStateKey] = value.FromSupported(verbose: true); set => _internal[Models.Metadata.Driver.SaveStateKey] = value.AsStringValue<Supported>(useSecond: true);
} }
[JsonIgnore] [JsonIgnore]

View File

@@ -22,8 +22,8 @@ namespace SabreTools.DatItems.Formats
[JsonConverter(typeof(StringEnumConverter))] [JsonConverter(typeof(StringEnumConverter))]
public FeatureType Type public FeatureType Type
{ {
get => _internal.ReadString(Models.Metadata.Feature.FeatureTypeKey).AsFeatureType(); get => _internal.ReadString(Models.Metadata.Feature.FeatureTypeKey).AsEnumValue<FeatureType>();
set => _internal[Models.Metadata.Feature.FeatureTypeKey] = value.FromFeatureType(); set => _internal[Models.Metadata.Feature.FeatureTypeKey] = value.AsStringValue<FeatureType>();
} }
[JsonIgnore] [JsonIgnore]
@@ -36,8 +36,8 @@ namespace SabreTools.DatItems.Formats
[JsonConverter(typeof(StringEnumConverter))] [JsonConverter(typeof(StringEnumConverter))]
public FeatureStatus Status public FeatureStatus Status
{ {
get => _internal.ReadString(Models.Metadata.Feature.StatusKey).AsFeatureStatus(); get => _internal.ReadString(Models.Metadata.Feature.StatusKey).AsEnumValue<FeatureStatus>();
set => _internal[Models.Metadata.Feature.StatusKey] = value.FromFeatureStatus(); set => _internal[Models.Metadata.Feature.StatusKey] = value.AsStringValue<FeatureStatus>();
} }
[JsonIgnore] [JsonIgnore]
@@ -50,8 +50,8 @@ namespace SabreTools.DatItems.Formats
[JsonConverter(typeof(StringEnumConverter))] [JsonConverter(typeof(StringEnumConverter))]
public FeatureStatus Overall public FeatureStatus Overall
{ {
get => _internal.ReadString(Models.Metadata.Feature.OverallKey).AsFeatureStatus(); get => _internal.ReadString(Models.Metadata.Feature.OverallKey).AsEnumValue<FeatureStatus>();
set => _internal[Models.Metadata.Feature.OverallKey] = value.FromFeatureStatus(); set => _internal[Models.Metadata.Feature.OverallKey] = value.AsStringValue<FeatureStatus>();
} }
[JsonIgnore] [JsonIgnore]

View File

@@ -168,8 +168,8 @@ namespace SabreTools.DatItems.Formats
[JsonConverter(typeof(StringEnumConverter))] [JsonConverter(typeof(StringEnumConverter))]
public ItemStatus ItemStatus public ItemStatus ItemStatus
{ {
get => _internal.ReadString(Models.Metadata.Rom.StatusKey).AsItemStatus(); get => _internal.ReadString(Models.Metadata.Rom.StatusKey).AsEnumValue<ItemStatus>();
set => _internal[Models.Metadata.Rom.StatusKey] = value.FromItemStatus(yesno: false); set => _internal[Models.Metadata.Rom.StatusKey] = value.AsStringValue<ItemStatus>(useSecond: false);
} }
[JsonIgnore] [JsonIgnore]
@@ -324,8 +324,8 @@ namespace SabreTools.DatItems.Formats
[JsonConverter(typeof(StringEnumConverter))] [JsonConverter(typeof(StringEnumConverter))]
public OpenMSXSubType OpenMSXSubType public OpenMSXSubType OpenMSXSubType
{ {
get => _internal.ReadString(Models.Metadata.Rom.OpenMSXMediaType).AsOpenMSXSubType(); get => _internal.ReadString(Models.Metadata.Rom.OpenMSXMediaType).AsEnumValue<OpenMSXSubType>();
set => _internal[Models.Metadata.Rom.OpenMSXMediaType] = value.FromOpenMSXSubType(); set => _internal[Models.Metadata.Rom.OpenMSXMediaType] = value.AsStringValue<OpenMSXSubType>();
} }
[JsonIgnore] [JsonIgnore]
@@ -398,8 +398,8 @@ namespace SabreTools.DatItems.Formats
[JsonConverter(typeof(StringEnumConverter))] [JsonConverter(typeof(StringEnumConverter))]
public LoadFlag LoadFlag public LoadFlag LoadFlag
{ {
get => _internal.ReadString(Models.Metadata.Rom.LoadFlagKey).AsLoadFlag(); get => _internal.ReadString(Models.Metadata.Rom.LoadFlagKey).AsEnumValue<LoadFlag>();
set => _internal[Models.Metadata.Rom.LoadFlagKey] = value.FromLoadFlag(); set => _internal[Models.Metadata.Rom.LoadFlagKey] = value.AsStringValue<LoadFlag>();
} }
[JsonIgnore] [JsonIgnore]

View File

@@ -48,8 +48,8 @@ namespace SabreTools.DatItems.Formats
[XmlElement("status")] [XmlElement("status")]
public SoftwareListStatus Status public SoftwareListStatus Status
{ {
get => _internal.ReadString(Models.Metadata.SoftwareList.StatusKey).AsSoftwareListStatus(); get => _internal.ReadString(Models.Metadata.SoftwareList.StatusKey).AsEnumValue<SoftwareListStatus>();
set => _internal[Models.Metadata.SoftwareList.StatusKey] = value.FromSoftwareListStatus(); set => _internal[Models.Metadata.SoftwareList.StatusKey] = value.AsStringValue<SoftwareListStatus>();
} }
[JsonIgnore] [JsonIgnore]

View File

@@ -293,8 +293,8 @@ namespace SabreTools.DatItems
[XmlElement("runnable")] [XmlElement("runnable")]
public Runnable Runnable public Runnable Runnable
{ {
get => _machine.ReadString(Models.Metadata.Machine.RunnableKey).AsRunnable(); get => _machine.ReadString(Models.Metadata.Machine.RunnableKey).AsEnumValue<Runnable>();
set => _machine[Models.Metadata.Machine.RunnableKey] = value.FromRunnable(); set => _machine[Models.Metadata.Machine.RunnableKey] = value.AsStringValue<Runnable>();
} }
[JsonIgnore] [JsonIgnore]
@@ -467,8 +467,8 @@ namespace SabreTools.DatItems
[XmlElement("supported")] [XmlElement("supported")]
public Supported Supported public Supported Supported
{ {
get => _machine.ReadString(Models.Metadata.Machine.SupportedKey).AsSupported(); get => _machine.ReadString(Models.Metadata.Machine.SupportedKey).AsEnumValue<Supported>();
set => _machine[Models.Metadata.Machine.SupportedKey] = value.FromSupported(verbose: true); set => _machine[Models.Metadata.Machine.SupportedKey] = value.AsStringValue<Supported>(useSecond: true);
} }
[JsonIgnore] [JsonIgnore]
@@ -689,7 +689,7 @@ namespace SabreTools.DatItems
case MachineField.Score: Score = value; return true; case MachineField.Score: Score = value; return true;
case MachineField.Subgenre: Subgenre = value; return true; case MachineField.Subgenre: Subgenre = value; return true;
case MachineField.TitleID: TitleID = value; return true; case MachineField.TitleID: TitleID = value; return true;
case MachineField.Type: MachineType = value.AsMachineType(); return true; case MachineField.Type: MachineType = value.AsEnumValue<MachineType>(); return true;
} }
} }

View File

@@ -210,9 +210,9 @@ namespace SabreTools.Filtering
case DatItemField.AreaEndianness: case DatItemField.AreaEndianness:
if (negate) if (negate)
AreaEndianness.Negative |= value.AsEndianness(); AreaEndianness.Negative |= value.AsEnumValue<Endianness>();
else else
AreaEndianness.Positive |= value.AsEndianness(); AreaEndianness.Positive |= value.AsEnumValue<Endianness>();
break; break;
case DatItemField.AreaName: case DatItemField.AreaName:
@@ -245,9 +245,9 @@ namespace SabreTools.Filtering
case DatItemField.ChipType: case DatItemField.ChipType:
if (negate) if (negate)
ChipType.Negative |= value.AsChipType(); ChipType.Negative |= value.AsEnumValue<ChipType>();
else else
ChipType.Positive |= value.AsChipType(); ChipType.Positive |= value.AsEnumValue<ChipType>();
break; break;
case DatItemField.Clock: case DatItemField.Clock:
@@ -260,9 +260,9 @@ namespace SabreTools.Filtering
case DatItemField.CocktailStatus: case DatItemField.CocktailStatus:
if (negate) if (negate)
CocktailStatus.Negative |= value.AsSupportStatus(); CocktailStatus.Negative |= value.AsEnumValue<SupportStatus>();
else else
CocktailStatus.Positive |= value.AsSupportStatus(); CocktailStatus.Positive |= value.AsEnumValue<SupportStatus>();
break; break;
case DatItemField.Coins: case DatItemField.Coins:
@@ -279,9 +279,9 @@ namespace SabreTools.Filtering
case DatItemField.Condition_Relation: case DatItemField.Condition_Relation:
if (negate) if (negate)
Condition_Relation.Negative |= value.AsRelation(); Condition_Relation.Negative |= value.AsEnumValue<Relation>();
else else
Condition_Relation.Positive |= value.AsRelation(); Condition_Relation.Positive |= value.AsEnumValue<Relation>();
break; break;
case DatItemField.Condition_Tag: case DatItemField.Condition_Tag:
@@ -331,9 +331,9 @@ namespace SabreTools.Filtering
case DatItemField.Control_Type: case DatItemField.Control_Type:
if (negate) if (negate)
Control_Type.Negative |= value.AsControlType(); Control_Type.Negative |= value.AsEnumValue<ControlType>();
else else
Control_Type.Positive |= value.AsControlType(); Control_Type.Positive |= value.AsEnumValue<ControlType>();
break; break;
case DatItemField.Control_Ways: case DatItemField.Control_Ways:
@@ -366,9 +366,9 @@ namespace SabreTools.Filtering
case DatItemField.DeviceType: case DatItemField.DeviceType:
if (negate) if (negate)
DeviceType.Negative |= value.AsDeviceType(); DeviceType.Negative |= value.AsEnumValue<DeviceType>();
else else
DeviceType.Positive |= value.AsDeviceType(); DeviceType.Positive |= value.AsEnumValue<DeviceType>();
break; break;
case DatItemField.DevStatus: case DatItemField.DevStatus:
@@ -377,16 +377,16 @@ namespace SabreTools.Filtering
case DatItemField.DisplayType: case DatItemField.DisplayType:
if (negate) if (negate)
DisplayType.Negative |= value.AsDisplayType(); DisplayType.Negative |= value.AsEnumValue<DisplayType>();
else else
DisplayType.Positive |= value.AsDisplayType(); DisplayType.Positive |= value.AsEnumValue<DisplayType>();
break; break;
case DatItemField.EmulationStatus: case DatItemField.EmulationStatus:
if (negate) if (negate)
EmulationStatus.Negative |= value.AsSupportStatus(); EmulationStatus.Negative |= value.AsEnumValue<SupportStatus>();
else else
EmulationStatus.Positive |= value.AsSupportStatus(); EmulationStatus.Positive |= value.AsEnumValue<SupportStatus>();
break; break;
case DatItemField.Extension_Name: case DatItemField.Extension_Name:
@@ -395,23 +395,23 @@ namespace SabreTools.Filtering
case DatItemField.FeatureOverall: case DatItemField.FeatureOverall:
if (negate) if (negate)
FeatureOverall.Negative |= value.AsFeatureStatus(); FeatureOverall.Negative |= value.AsEnumValue<FeatureStatus>();
else else
FeatureOverall.Positive |= value.AsFeatureStatus(); FeatureOverall.Positive |= value.AsEnumValue<FeatureStatus>();
break; break;
case DatItemField.FeatureStatus: case DatItemField.FeatureStatus:
if (negate) if (negate)
FeatureStatus.Negative |= value.AsFeatureStatus(); FeatureStatus.Negative |= value.AsEnumValue<FeatureStatus>();
else else
FeatureStatus.Positive |= value.AsFeatureStatus(); FeatureStatus.Positive |= value.AsEnumValue<FeatureStatus>();
break; break;
case DatItemField.FeatureType: case DatItemField.FeatureType:
if (negate) if (negate)
FeatureType.Negative |= value.AsFeatureType(); FeatureType.Negative |= value.AsEnumValue<FeatureType>();
else else
FeatureType.Positive |= value.AsFeatureType(); FeatureType.Positive |= value.AsEnumValue<FeatureType>();
break; break;
case DatItemField.Filter: case DatItemField.Filter:
@@ -476,9 +476,9 @@ namespace SabreTools.Filtering
case DatItemField.LoadFlag: case DatItemField.LoadFlag:
if (negate) if (negate)
LoadFlag.Negative |= value.AsLoadFlag(); LoadFlag.Negative |= value.AsEnumValue<LoadFlag>();
else else
LoadFlag.Positive |= value.AsLoadFlag(); LoadFlag.Positive |= value.AsEnumValue<LoadFlag>();
break; break;
case DatItemField.Location_Inverted: case DatItemField.Location_Inverted:
@@ -531,9 +531,9 @@ namespace SabreTools.Filtering
case DatItemField.OpenMSXSubType: case DatItemField.OpenMSXSubType:
if (negate) if (negate)
OpenMSXSubType.Negative |= value.AsOpenMSXSubType(); OpenMSXSubType.Negative |= value.AsEnumValue<OpenMSXSubType>();
else else
OpenMSXSubType.Positive |= value.AsOpenMSXSubType(); OpenMSXSubType.Positive |= value.AsEnumValue<OpenMSXSubType>();
break; break;
case DatItemField.OpenMSXType: case DatItemField.OpenMSXType:
@@ -594,9 +594,9 @@ namespace SabreTools.Filtering
case DatItemField.Relation: case DatItemField.Relation:
if (negate) if (negate)
Relation.Negative |= value.AsRelation(); Relation.Negative |= value.AsEnumValue<Relation>();
else else
Relation.Positive |= value.AsRelation(); Relation.Positive |= value.AsEnumValue<Relation>();
break; break;
case DatItemField.Remark: case DatItemField.Remark:
@@ -617,9 +617,9 @@ namespace SabreTools.Filtering
case DatItemField.SaveStateStatus: case DatItemField.SaveStateStatus:
if (negate) if (negate)
SaveStateStatus.Negative |= value.AsSupported(); SaveStateStatus.Negative |= value.AsEnumValue<Supported>();
else else
SaveStateStatus.Positive |= value.AsSupported(); SaveStateStatus.Positive |= value.AsEnumValue<Supported>();
break; break;
case DatItemField.Service: case DatItemField.Service:
@@ -672,9 +672,9 @@ namespace SabreTools.Filtering
case DatItemField.SoftwareListStatus: case DatItemField.SoftwareListStatus:
if (negate) if (negate)
SoftwareListStatus.Negative |= value.AsSoftwareListStatus(); SoftwareListStatus.Negative |= value.AsEnumValue<SoftwareListStatus>();
else else
SoftwareListStatus.Positive |= value.AsSoftwareListStatus(); SoftwareListStatus.Positive |= value.AsEnumValue<SoftwareListStatus>();
break; break;
case DatItemField.SpamSum: case DatItemField.SpamSum:
@@ -683,9 +683,9 @@ namespace SabreTools.Filtering
case DatItemField.Status: case DatItemField.Status:
if (negate) if (negate)
Status.Negative |= value.AsItemStatus(); Status.Negative |= value.AsEnumValue<ItemStatus>();
else else
Status.Positive |= value.AsItemStatus(); Status.Positive |= value.AsEnumValue<ItemStatus>();
break; break;
case DatItemField.Summation: case DatItemField.Summation:
@@ -694,9 +694,9 @@ namespace SabreTools.Filtering
case DatItemField.SupportStatus: case DatItemField.SupportStatus:
if (negate) if (negate)
SupportStatus.Negative |= value.AsSupportStatus(); SupportStatus.Negative |= value.AsEnumValue<SupportStatus>();
else else
SupportStatus.Positive |= value.AsSupportStatus(); SupportStatus.Positive |= value.AsEnumValue<SupportStatus>();
break; break;
case DatItemField.Tag: case DatItemField.Tag:
@@ -708,7 +708,7 @@ namespace SabreTools.Filtering
break; break;
case DatItemField.Type: case DatItemField.Type:
if (value.AsItemType() == ItemType.NULL) if (value.AsEnumValue<ItemType>() == ItemType.NULL)
return; return;
SetStringFilter(Type, value, negate); SetStringFilter(Type, value, negate);

View File

@@ -220,9 +220,9 @@ namespace SabreTools.Filtering
case MachineField.Runnable: case MachineField.Runnable:
if (negate) if (negate)
Runnable.Negative |= value.AsRunnable(); Runnable.Negative |= value.AsEnumValue<Runnable>();
else else
Runnable.Positive |= value.AsRunnable(); Runnable.Positive |= value.AsEnumValue<Runnable>();
break; break;
case MachineField.SampleOf: case MachineField.SampleOf:
@@ -247,9 +247,9 @@ namespace SabreTools.Filtering
case MachineField.Supported: case MachineField.Supported:
if (negate) if (negate)
Supported.Negative |= value.AsSupported(); Supported.Negative |= value.AsEnumValue<Supported>();
else else
Supported.Positive |= value.AsSupported(); Supported.Positive |= value.AsEnumValue<Supported>();
break; break;
case MachineField.System: case MachineField.System:
@@ -262,9 +262,9 @@ namespace SabreTools.Filtering
case MachineField.Type: case MachineField.Type:
if (negate) if (negate)
Type.Negative |= value.AsMachineType(); Type.Negative |= value.AsEnumValue<MachineType>();
else else
Type.Positive |= value.AsMachineType(); Type.Positive |= value.AsEnumValue<MachineType>();
break; break;
case MachineField.Year: case MachineField.Year:

View File

@@ -14,7 +14,7 @@ namespace SabreTools.Test.Core
[InlineData("audio", ChipType.Audio)] [InlineData("audio", ChipType.Audio)]
public void AsChipTypeTest(string? field, ChipType expected) public void AsChipTypeTest(string? field, ChipType expected)
{ {
ChipType actual = field.AsChipType(); ChipType actual = field.AsEnumValue<ChipType>();
Assert.Equal(expected, actual); Assert.Equal(expected, actual);
} }
@@ -37,7 +37,7 @@ namespace SabreTools.Test.Core
[InlineData("gambling", ControlType.Gambling)] [InlineData("gambling", ControlType.Gambling)]
public void AsControlTypeTest(string? field, ControlType expected) public void AsControlTypeTest(string? field, ControlType expected)
{ {
ControlType actual = field.AsControlType(); ControlType actual = field.AsEnumValue<ControlType>();
Assert.Equal(expected, actual); Assert.Equal(expected, actual);
} }
@@ -110,7 +110,7 @@ namespace SabreTools.Test.Core
[InlineData("vidfile", DeviceType.VidFile)] [InlineData("vidfile", DeviceType.VidFile)]
public void AsDeviceTypeTest(string? field, DeviceType expected) public void AsDeviceTypeTest(string? field, DeviceType expected)
{ {
DeviceType actual = field.AsDeviceType(); DeviceType actual = field.AsEnumValue<DeviceType>();
Assert.Equal(expected, actual); Assert.Equal(expected, actual);
} }
@@ -123,7 +123,7 @@ namespace SabreTools.Test.Core
[InlineData("unknown", DisplayType.Unknown)] [InlineData("unknown", DisplayType.Unknown)]
public void AsDisplayTypeTest(string? field, DisplayType expected) public void AsDisplayTypeTest(string? field, DisplayType expected)
{ {
DisplayType actual = field.AsDisplayType(); DisplayType actual = field.AsEnumValue<DisplayType>();
Assert.Equal(expected, actual); Assert.Equal(expected, actual);
} }
@@ -133,7 +133,7 @@ namespace SabreTools.Test.Core
[InlineData("little", Endianness.Little)] [InlineData("little", Endianness.Little)]
public void AsEndiannessTest(string? field, Endianness expected) public void AsEndiannessTest(string? field, Endianness expected)
{ {
Endianness actual = field.AsEndianness(); Endianness actual = field.AsEnumValue<Endianness>();
Assert.Equal(expected, actual); Assert.Equal(expected, actual);
} }
@@ -143,7 +143,7 @@ namespace SabreTools.Test.Core
[InlineData("imperfect", FeatureStatus.Imperfect)] [InlineData("imperfect", FeatureStatus.Imperfect)]
public void AsFeatureStatusTest(string? field, FeatureStatus expected) public void AsFeatureStatusTest(string? field, FeatureStatus expected)
{ {
FeatureStatus actual = field.AsFeatureStatus(); FeatureStatus actual = field.AsEnumValue<FeatureStatus>();
Assert.Equal(expected, actual); Assert.Equal(expected, actual);
} }
@@ -165,7 +165,7 @@ namespace SabreTools.Test.Core
[InlineData("timing", FeatureType.Timing)] [InlineData("timing", FeatureType.Timing)]
public void AsFeatureTypeTest(string? field, FeatureType expected) public void AsFeatureTypeTest(string? field, FeatureType expected)
{ {
FeatureType actual = field.AsFeatureType(); FeatureType actual = field.AsEnumValue<FeatureType>();
Assert.Equal(expected, actual); Assert.Equal(expected, actual);
} }
@@ -180,7 +180,7 @@ namespace SabreTools.Test.Core
[InlineData("verified", ItemStatus.Verified)] [InlineData("verified", ItemStatus.Verified)]
public void AsItemStatusTest(string? field, ItemStatus expected) public void AsItemStatusTest(string? field, ItemStatus expected)
{ {
ItemStatus actual = field.AsItemStatus(); ItemStatus actual = field.AsEnumValue<ItemStatus>();
Assert.Equal(expected, actual); Assert.Equal(expected, actual);
} }
@@ -241,7 +241,7 @@ namespace SabreTools.Test.Core
[InlineData("source_details", ItemType.SourceDetails)] [InlineData("source_details", ItemType.SourceDetails)]
public void AsItemTypeTest(string? field, ItemType expected) public void AsItemTypeTest(string? field, ItemType expected)
{ {
ItemType actual = field.AsItemType(); ItemType actual = field.AsEnumValue<ItemType>();
Assert.Equal(expected, actual); Assert.Equal(expected, actual);
} }
@@ -263,7 +263,7 @@ namespace SabreTools.Test.Core
[InlineData("ignore", LoadFlag.Ignore)] [InlineData("ignore", LoadFlag.Ignore)]
public void AsLoadFlagTest(string? field, LoadFlag expected) public void AsLoadFlagTest(string? field, LoadFlag expected)
{ {
LoadFlag actual = field.AsLoadFlag(); LoadFlag actual = field.AsEnumValue<LoadFlag>();
Assert.Equal(expected, actual); Assert.Equal(expected, actual);
} }
@@ -275,7 +275,7 @@ namespace SabreTools.Test.Core
[InlineData("error", LogLevel.ERROR)] [InlineData("error", LogLevel.ERROR)]
public void AsLogLevelTest(string? field, LogLevel expected) public void AsLogLevelTest(string? field, LogLevel expected)
{ {
LogLevel actual = field.AsLogLevel(); LogLevel actual = field.AsEnumValue<LogLevel>();
Assert.Equal(expected, actual); Assert.Equal(expected, actual);
} }
@@ -384,7 +384,7 @@ namespace SabreTools.Test.Core
[InlineData("mechanical", MachineType.Mechanical)] [InlineData("mechanical", MachineType.Mechanical)]
public void AsMachineTypeTest(string? field, MachineType expected) public void AsMachineTypeTest(string? field, MachineType expected)
{ {
MachineType actual = field.AsMachineType(); MachineType actual = field.AsEnumValue<MachineType>();
Assert.Equal(expected, actual); Assert.Equal(expected, actual);
} }
@@ -404,7 +404,7 @@ namespace SabreTools.Test.Core
[InlineData("fullunmerged", MergingFlag.FullNonMerged)] [InlineData("fullunmerged", MergingFlag.FullNonMerged)]
public void AsMergingFlagTest(string? field, MergingFlag expected) public void AsMergingFlagTest(string? field, MergingFlag expected)
{ {
MergingFlag actual = field.AsMergingFlag(); MergingFlag actual = field.AsEnumValue<MergingFlag>();
Assert.Equal(expected, actual); Assert.Equal(expected, actual);
} }
@@ -416,7 +416,7 @@ namespace SabreTools.Test.Core
[InlineData("ignore", NodumpFlag.Ignore)] [InlineData("ignore", NodumpFlag.Ignore)]
public void AsNodumpFlagTest(string? field, NodumpFlag expected) public void AsNodumpFlagTest(string? field, NodumpFlag expected)
{ {
NodumpFlag actual = field.AsNodumpFlag(); NodumpFlag actual = field.AsEnumValue<NodumpFlag>();
Assert.Equal(expected, actual); Assert.Equal(expected, actual);
} }
@@ -427,7 +427,7 @@ namespace SabreTools.Test.Core
[InlineData("sccpluscart", OpenMSXSubType.SCCPlusCart)] [InlineData("sccpluscart", OpenMSXSubType.SCCPlusCart)]
public void AsOpenMSXSubTypeTest(string? field, OpenMSXSubType expected) public void AsOpenMSXSubTypeTest(string? field, OpenMSXSubType expected)
{ {
OpenMSXSubType actual = field.AsOpenMSXSubType(); OpenMSXSubType actual = field.AsEnumValue<OpenMSXSubType>();
Assert.Equal(expected, actual); Assert.Equal(expected, actual);
} }
@@ -442,7 +442,7 @@ namespace SabreTools.Test.Core
[InlineData("flat", PackingFlag.Flat)] [InlineData("flat", PackingFlag.Flat)]
public void AsPackingFlagTest(string? field, PackingFlag expected) public void AsPackingFlagTest(string? field, PackingFlag expected)
{ {
PackingFlag actual = field.AsPackingFlag(); PackingFlag actual = field.AsEnumValue<PackingFlag>();
Assert.Equal(expected, actual); Assert.Equal(expected, actual);
} }
@@ -456,7 +456,7 @@ namespace SabreTools.Test.Core
[InlineData("ge", Relation.GreaterThanOrEqual)] [InlineData("ge", Relation.GreaterThanOrEqual)]
public void AsRelationTest(string? field, Relation expected) public void AsRelationTest(string? field, Relation expected)
{ {
Relation actual = field.AsRelation(); Relation actual = field.AsEnumValue<Relation>();
Assert.Equal(expected, actual); Assert.Equal(expected, actual);
} }
@@ -467,7 +467,7 @@ namespace SabreTools.Test.Core
[InlineData("yes", Runnable.Yes)] [InlineData("yes", Runnable.Yes)]
public void AsRunnableTest(string? field, Runnable expected) public void AsRunnableTest(string? field, Runnable expected)
{ {
Runnable actual = field.AsRunnable(); Runnable actual = field.AsEnumValue<Runnable>();
Assert.Equal(expected, actual); Assert.Equal(expected, actual);
} }
@@ -478,7 +478,7 @@ namespace SabreTools.Test.Core
[InlineData("compatible", SoftwareListStatus.Compatible)] [InlineData("compatible", SoftwareListStatus.Compatible)]
public void AsSoftwareListStatusTest(string? field, SoftwareListStatus expected) public void AsSoftwareListStatusTest(string? field, SoftwareListStatus expected)
{ {
SoftwareListStatus actual = field.AsSoftwareListStatus(); SoftwareListStatus actual = field.AsEnumValue<SoftwareListStatus>();
Assert.Equal(expected, actual); Assert.Equal(expected, actual);
} }
@@ -491,7 +491,7 @@ namespace SabreTools.Test.Core
[InlineData("supported", Supported.Yes)] [InlineData("supported", Supported.Yes)]
public void AsSupportedTest(string? field, Supported expected) public void AsSupportedTest(string? field, Supported expected)
{ {
Supported actual = field.AsSupported(); Supported actual = field.AsEnumValue<Supported>();
Assert.Equal(expected, actual); Assert.Equal(expected, actual);
} }
@@ -502,7 +502,7 @@ namespace SabreTools.Test.Core
[InlineData("preliminary", SupportStatus.Preliminary)] [InlineData("preliminary", SupportStatus.Preliminary)]
public void AsSupportStatusTest(string? field, SupportStatus expected) public void AsSupportStatusTest(string? field, SupportStatus expected)
{ {
SupportStatus actual = field.AsSupportStatus(); SupportStatus actual = field.AsEnumValue<SupportStatus>();
Assert.Equal(expected, actual); Assert.Equal(expected, actual);
} }
@@ -516,7 +516,7 @@ namespace SabreTools.Test.Core
[InlineData(ChipType.Audio, "audio")] [InlineData(ChipType.Audio, "audio")]
public void FromChipTypeTest(ChipType field, string? expected) public void FromChipTypeTest(ChipType field, string? expected)
{ {
string? actual = field.FromChipType(); string? actual = field.AsStringValue<ChipType>();
Assert.Equal(expected, actual); Assert.Equal(expected, actual);
} }
@@ -539,7 +539,7 @@ namespace SabreTools.Test.Core
[InlineData(ControlType.Gambling, "gambling")] [InlineData(ControlType.Gambling, "gambling")]
public void FromControlTypeTest(ControlType field, string? expected) public void FromControlTypeTest(ControlType field, string? expected)
{ {
string? actual = field.FromControlType(); string? actual = field.AsStringValue<ControlType>();
Assert.Equal(expected, actual); Assert.Equal(expected, actual);
} }
@@ -571,7 +571,7 @@ namespace SabreTools.Test.Core
[InlineData(DeviceType.VidFile, "vidfile")] [InlineData(DeviceType.VidFile, "vidfile")]
public void FromDeviceTypeTest(DeviceType field, string? expected) public void FromDeviceTypeTest(DeviceType field, string? expected)
{ {
string? actual = field.FromDeviceType(); string? actual = field.AsStringValue<DeviceType>();
Assert.Equal(expected, actual); Assert.Equal(expected, actual);
} }
@@ -584,7 +584,7 @@ namespace SabreTools.Test.Core
[InlineData(DisplayType.Unknown, "unknown")] [InlineData(DisplayType.Unknown, "unknown")]
public void FromDisplayTypeTest(DisplayType field, string? expected) public void FromDisplayTypeTest(DisplayType field, string? expected)
{ {
string? actual = field.FromDisplayType(); string? actual = field.AsStringValue<DisplayType>();
Assert.Equal(expected, actual); Assert.Equal(expected, actual);
} }
@@ -594,7 +594,7 @@ namespace SabreTools.Test.Core
[InlineData(Endianness.Little, "little")] [InlineData(Endianness.Little, "little")]
public void FromEndiannessTest(Endianness field, string? expected) public void FromEndiannessTest(Endianness field, string? expected)
{ {
string? actual = field.FromEndianness(); string? actual = field.AsStringValue<Endianness>();
Assert.Equal(expected, actual); Assert.Equal(expected, actual);
} }
@@ -604,7 +604,7 @@ namespace SabreTools.Test.Core
[InlineData(FeatureStatus.Imperfect, "imperfect")] [InlineData(FeatureStatus.Imperfect, "imperfect")]
public void FromFeatureStatusTest(FeatureStatus field, string? expected) public void FromFeatureStatusTest(FeatureStatus field, string? expected)
{ {
string? actual = field.FromFeatureStatus(); string? actual = field.AsStringValue<FeatureStatus>();
Assert.Equal(expected, actual); Assert.Equal(expected, actual);
} }
@@ -626,7 +626,7 @@ namespace SabreTools.Test.Core
[InlineData(FeatureType.Timing, "timing")] [InlineData(FeatureType.Timing, "timing")]
public void FromFeatureTypeTest(FeatureType field, string? expected) public void FromFeatureTypeTest(FeatureType field, string? expected)
{ {
string? actual = field.FromFeatureType(); string? actual = field.AsStringValue<FeatureType>();
Assert.Equal(expected, actual); Assert.Equal(expected, actual);
} }
@@ -643,9 +643,9 @@ namespace SabreTools.Test.Core
[InlineData(ItemStatus.Nodump, false, "nodump")] [InlineData(ItemStatus.Nodump, false, "nodump")]
[InlineData(ItemStatus.Verified, true, "verified")] [InlineData(ItemStatus.Verified, true, "verified")]
[InlineData(ItemStatus.Verified, false, "verified")] [InlineData(ItemStatus.Verified, false, "verified")]
public void FromItemStatusTest(ItemStatus field, bool yesno, string? expected) public void FromItemStatusTest(ItemStatus field, bool useSecond, string? expected)
{ {
string? actual = field.FromItemStatus(yesno); string? actual = field.AsStringValue<ItemStatus>(useSecond);
Assert.Equal(expected, actual); Assert.Equal(expected, actual);
} }
@@ -696,7 +696,7 @@ namespace SabreTools.Test.Core
[InlineData(ItemType.SourceDetails, "source_details")] [InlineData(ItemType.SourceDetails, "source_details")]
public void FromItemTypeTest(ItemType field, string? expected) public void FromItemTypeTest(ItemType field, string? expected)
{ {
string? actual = field.FromItemType(); string? actual = field.AsStringValue<ItemType>();
Assert.Equal(expected, actual); Assert.Equal(expected, actual);
} }
@@ -718,7 +718,7 @@ namespace SabreTools.Test.Core
[InlineData(LoadFlag.Ignore, "ignore")] [InlineData(LoadFlag.Ignore, "ignore")]
public void FromLoadFlagTest(LoadFlag field, string? expected) public void FromLoadFlagTest(LoadFlag field, string? expected)
{ {
string? actual = field.FromLoadFlag(); string? actual = field.AsStringValue<LoadFlag>();
Assert.Equal(expected, actual); Assert.Equal(expected, actual);
} }
@@ -735,7 +735,7 @@ namespace SabreTools.Test.Core
[InlineData(MachineType.Mechanical, false, "mechanical")] [InlineData(MachineType.Mechanical, false, "mechanical")]
public void FromMachineTypeTest(MachineType field, bool old, string? expected) public void FromMachineTypeTest(MachineType field, bool old, string? expected)
{ {
string? actual = field.FromMachineType(old); string? actual = field.AsStringValue<MachineType>(old);
Assert.Equal(expected, actual); Assert.Equal(expected, actual);
} }
@@ -754,9 +754,9 @@ namespace SabreTools.Test.Core
[InlineData(MergingFlag.DeviceNonMerged, false, "device")] [InlineData(MergingFlag.DeviceNonMerged, false, "device")]
[InlineData(MergingFlag.FullNonMerged, true, "fullunmerged")] [InlineData(MergingFlag.FullNonMerged, true, "fullunmerged")]
[InlineData(MergingFlag.FullNonMerged, false, "full")] [InlineData(MergingFlag.FullNonMerged, false, "full")]
public void FromMergingFlagTest(MergingFlag field, bool romcenter, string? expected) public void FromMergingFlagTest(MergingFlag field, bool useSecond, string? expected)
{ {
string? actual = field.FromMergingFlag(romcenter); string? actual = field.AsStringValue<MergingFlag>(useSecond);
Assert.Equal(expected, actual); Assert.Equal(expected, actual);
} }
@@ -767,7 +767,7 @@ namespace SabreTools.Test.Core
[InlineData(NodumpFlag.Ignore, "ignore")] [InlineData(NodumpFlag.Ignore, "ignore")]
public void FromNodumpFlagTest(NodumpFlag field, string? expected) public void FromNodumpFlagTest(NodumpFlag field, string? expected)
{ {
string? actual = field.FromNodumpFlag(); string? actual = field.AsStringValue<NodumpFlag>();
Assert.Equal(expected, actual); Assert.Equal(expected, actual);
} }
@@ -778,7 +778,7 @@ namespace SabreTools.Test.Core
[InlineData(OpenMSXSubType.SCCPlusCart, "sccpluscart")] [InlineData(OpenMSXSubType.SCCPlusCart, "sccpluscart")]
public void FromOpenMSXSubTypeTest(OpenMSXSubType field, string? expected) public void FromOpenMSXSubTypeTest(OpenMSXSubType field, string? expected)
{ {
string? actual = field.FromOpenMSXSubType(); string? actual = field.AsStringValue<OpenMSXSubType>();
Assert.Equal(expected, actual); Assert.Equal(expected, actual);
} }
@@ -793,9 +793,9 @@ namespace SabreTools.Test.Core
[InlineData(PackingFlag.Partial, false, "partial")] [InlineData(PackingFlag.Partial, false, "partial")]
[InlineData(PackingFlag.Flat, true, "flat")] [InlineData(PackingFlag.Flat, true, "flat")]
[InlineData(PackingFlag.Flat, false, "flat")] [InlineData(PackingFlag.Flat, false, "flat")]
public void FromPackingFlagTest(PackingFlag field, bool yesno, string? expected) public void FromPackingFlagTest(PackingFlag field, bool useSecond, string? expected)
{ {
string? actual = field.FromPackingFlag(yesno); string? actual = field.AsStringValue<PackingFlag>(useSecond);
Assert.Equal(expected, actual); Assert.Equal(expected, actual);
} }
@@ -809,7 +809,7 @@ namespace SabreTools.Test.Core
[InlineData(Relation.GreaterThanOrEqual, "ge")] [InlineData(Relation.GreaterThanOrEqual, "ge")]
public void FromRelationTest(Relation field, string? expected) public void FromRelationTest(Relation field, string? expected)
{ {
string? actual = field.FromRelation(); string? actual = field.AsStringValue<Relation>();
Assert.Equal(expected, actual); Assert.Equal(expected, actual);
} }
@@ -820,7 +820,7 @@ namespace SabreTools.Test.Core
[InlineData(Runnable.Yes, "yes")] [InlineData(Runnable.Yes, "yes")]
public void FromRunnableTest(Runnable field, string? expected) public void FromRunnableTest(Runnable field, string? expected)
{ {
string? actual = field.FromRunnable(); string? actual = field.AsStringValue<Runnable>();
Assert.Equal(expected, actual); Assert.Equal(expected, actual);
} }
@@ -830,7 +830,7 @@ namespace SabreTools.Test.Core
[InlineData(SoftwareListStatus.Compatible, "compatible")] [InlineData(SoftwareListStatus.Compatible, "compatible")]
public void FromSoftwareListStatusTest(SoftwareListStatus field, string? expected) public void FromSoftwareListStatusTest(SoftwareListStatus field, string? expected)
{ {
string? actual = field.FromSoftwareListStatus(); string? actual = field.AsStringValue<SoftwareListStatus>();
Assert.Equal(expected, actual); Assert.Equal(expected, actual);
} }
@@ -843,9 +843,9 @@ namespace SabreTools.Test.Core
[InlineData(Supported.Partial, false, "partial")] [InlineData(Supported.Partial, false, "partial")]
[InlineData(Supported.Yes, true, "supported")] [InlineData(Supported.Yes, true, "supported")]
[InlineData(Supported.Yes, false, "yes")] [InlineData(Supported.Yes, false, "yes")]
public void FromSupportedTest(Supported field, bool verbose, string? expected) public void FromSupportedTest(Supported field, bool useSecond, string? expected)
{ {
string? actual = field.FromSupported(verbose); string? actual = field.AsStringValue<Supported>(useSecond);
Assert.Equal(expected, actual); Assert.Equal(expected, actual);
} }
@@ -856,7 +856,7 @@ namespace SabreTools.Test.Core
[InlineData(SupportStatus.Preliminary, "preliminary")] [InlineData(SupportStatus.Preliminary, "preliminary")]
public void FromSupportStatusTest(SupportStatus field, string? expected) public void FromSupportStatusTest(SupportStatus field, string? expected)
{ {
string? actual = field.FromSupportStatus(); string? actual = field.AsStringValue<SupportStatus>();
Assert.Equal(expected, actual); Assert.Equal(expected, actual);
} }

View File

@@ -1901,7 +1901,7 @@ Some special strings that can be used:
Filter = GetFilter(features); Filter = GetFilter(features);
FilterRunner = GetFilterRunner(features); FilterRunner = GetFilterRunner(features);
Header = GetDatHeader(features); Header = GetDatHeader(features);
LogLevel = GetString(features, LogLevelStringValue).AsLogLevel(); LogLevel = GetString(features, LogLevelStringValue).AsEnumValue<LogLevel>();
OutputDir = GetString(features, OutputDirStringValue)?.Trim('"'); OutputDir = GetString(features, OutputDirStringValue)?.Trim('"');
Remover = GetRemover(features); Remover = GetRemover(features);
ScriptMode = GetBoolean(features, ScriptValue); ScriptMode = GetBoolean(features, ScriptValue);
@@ -2157,9 +2157,9 @@ Some special strings that can be used:
Description = GetString(features, DescriptionStringValue), Description = GetString(features, DescriptionStringValue),
Email = GetString(features, EmailStringValue), Email = GetString(features, EmailStringValue),
FileName = GetString(features, FilenameStringValue), FileName = GetString(features, FilenameStringValue),
ForceMerging = GetString(features, ForceMergingStringValue).AsMergingFlag(), ForceMerging = GetString(features, ForceMergingStringValue).AsEnumValue<MergingFlag>(),
ForceNodump = GetString(features, ForceNodumpStringValue).AsNodumpFlag(), ForceNodump = GetString(features, ForceNodumpStringValue).AsEnumValue<NodumpFlag>(),
ForcePacking = GetString(features, ForcePackingStringValue).AsPackingFlag(), ForcePacking = GetString(features, ForcePackingStringValue).AsEnumValue<PackingFlag>(),
GameName = GetBoolean(features, GamePrefixValue), GameName = GetBoolean(features, GamePrefixValue),
HeaderSkipper = GetString(features, HeaderStringValue), HeaderSkipper = GetString(features, HeaderStringValue),
Homepage = GetString(features, HomepageStringValue), Homepage = GetString(features, HomepageStringValue),

View File

@@ -568,7 +568,7 @@ Reset the internal state: reset();";
} }
// Read in the individual arguments // Read in the individual arguments
MergingFlag mergingFlag = Arguments[0].AsMergingFlag(); MergingFlag mergingFlag = Arguments[0].AsEnumValue<MergingFlag>();
// If we had an invalid input, log and continue // If we had an invalid input, log and continue
if (mergingFlag == MergingFlag.None) if (mergingFlag == MergingFlag.None)
@@ -584,7 +584,7 @@ Reset the internal state: reset();";
public override void Process(BatchState batchState) public override void Process(BatchState batchState)
{ {
// Read in the individual arguments // Read in the individual arguments
MergingFlag mergingFlag = Arguments[0].AsMergingFlag(); MergingFlag mergingFlag = Arguments[0].AsEnumValue<MergingFlag>();
// Apply the merging flag // Apply the merging flag
Filtering.Splitter splitter = new() { SplitType = mergingFlag }; Filtering.Splitter splitter = new() { SplitType = mergingFlag };