EmulationStatus -> FeatureStatus

This commit is contained in:
Matt Nadareski
2020-09-02 14:34:41 -07:00
parent 455cf802ff
commit 0794e52f50
6 changed files with 45 additions and 46 deletions

View File

@@ -293,8 +293,8 @@ namespace SabreTools.Library.DatFiles
datItems.Add(new Feature
{
Type = reader.GetAttribute("type").AsFeatureType(),
Status = reader.GetAttribute("status").AsEmulationStatus(),
Overall = reader.GetAttribute("overall").AsEmulationStatus(),
Status = reader.GetAttribute("status").AsFeatureStatus(),
Overall = reader.GetAttribute("overall").AsFeatureStatus(),
});
reader.Read();
@@ -1570,8 +1570,8 @@ namespace SabreTools.Library.DatFiles
var feature = datItem as Feature;
xtw.WriteStartElement("feature");
xtw.WriteOptionalAttributeString("type", feature.Type.FromFeatureType());
xtw.WriteOptionalAttributeString("status", feature.Status.FromEmulationStatus());
xtw.WriteOptionalAttributeString("overall", feature.Overall.FromEmulationStatus());
xtw.WriteOptionalAttributeString("status", feature.Status.FromFeatureStatus());
xtw.WriteOptionalAttributeString("overall", feature.Overall.FromFeatureStatus());
xtw.WriteEndElement();
break;

View File

@@ -1394,8 +1394,8 @@ namespace SabreTools.Library.DatFiles
xtw.WriteStartElement("file");
xtw.WriteAttributeString("type", "feature");
xtw.WriteOptionalAttributeString("type", feature.Type.FromFeatureType());
xtw.WriteOptionalAttributeString("status", feature.Status.FromEmulationStatus());
xtw.WriteOptionalAttributeString("overall", feature.Overall.FromEmulationStatus());
xtw.WriteOptionalAttributeString("status", feature.Status.FromFeatureStatus());
xtw.WriteOptionalAttributeString("overall", feature.Overall.FromFeatureStatus());
xtw.WriteEndElement();
break;

View File

@@ -13,7 +13,6 @@ namespace SabreTools.Library.DatItems
/// </summary>
NULL = 0,
// TODO: (cpu|audio)
CPU = 1 << 0,
Audio = 1 << 1,
}
@@ -37,7 +36,7 @@ namespace SabreTools.Library.DatItems
/// Determine the emulation status
/// </summary>
[Flags]
public enum EmulationStatus
public enum FeatureStatus
{
/// <summary>
/// This is a fake flag that is used for filter only

View File

@@ -28,14 +28,14 @@ namespace SabreTools.Library.DatItems
/// </summary>
[JsonProperty("status", DefaultValueHandling = DefaultValueHandling.Ignore)]
[JsonConverter(typeof(StringEnumConverter))]
public EmulationStatus Status { get; set; }
public FeatureStatus Status { get; set; }
/// <summary>
/// Overall status
/// </summary>
[JsonProperty("overall", DefaultValueHandling = DefaultValueHandling.Ignore)]
[JsonConverter(typeof(StringEnumConverter))]
public EmulationStatus Overall { get; set; }
public FeatureStatus Overall { get; set; }
#endregion
@@ -55,10 +55,10 @@ namespace SabreTools.Library.DatItems
Type = mappings[Field.DatItem_FeatureType].AsFeatureType();
if (mappings.Keys.Contains(Field.DatItem_FeatureStatus))
Status = mappings[Field.DatItem_FeatureStatus].AsEmulationStatus();
Status = mappings[Field.DatItem_FeatureStatus].AsFeatureStatus();
if (mappings.Keys.Contains(Field.DatItem_FeatureOverall))
Overall = mappings[Field.DatItem_FeatureOverall].AsEmulationStatus();
Overall = mappings[Field.DatItem_FeatureOverall].AsFeatureStatus();
}
#endregion
@@ -151,15 +151,15 @@ namespace SabreTools.Library.DatItems
return false;
// Filter on status
if (filter.DatItem_FeatureStatus.MatchesPositive(EmulationStatus.NULL, Status) == false)
if (filter.DatItem_FeatureStatus.MatchesPositive(FeatureStatus.NULL, Status) == false)
return false;
if (filter.DatItem_FeatureStatus.MatchesNegative(EmulationStatus.NULL, Status) == true)
if (filter.DatItem_FeatureStatus.MatchesNegative(FeatureStatus.NULL, Status) == true)
return false;
// Filter on overall
if (filter.DatItem_FeatureOverall.MatchesPositive(EmulationStatus.NULL, Overall) == false)
if (filter.DatItem_FeatureOverall.MatchesPositive(FeatureStatus.NULL, Overall) == false)
return false;
if (filter.DatItem_FeatureOverall.MatchesNegative(EmulationStatus.NULL, Overall) == true)
if (filter.DatItem_FeatureOverall.MatchesNegative(FeatureStatus.NULL, Overall) == true)
return false;
return true;
@@ -179,10 +179,10 @@ namespace SabreTools.Library.DatItems
Type = FeatureType.NULL;
if (fields.Contains(Field.DatItem_FeatureStatus))
Status = EmulationStatus.NULL;
Status = FeatureStatus.NULL;
if (fields.Contains(Field.DatItem_FeatureOverall))
Overall = EmulationStatus.NULL;
Overall = FeatureStatus.NULL;
}
#endregion

View File

@@ -296,8 +296,8 @@ namespace SabreTools.Library.Filtering
// Feature
public FilterItem<FeatureType> DatItem_FeatureType { get; private set; } = new FilterItem<FeatureType>() { Positive = FeatureType.NULL, Negative = FeatureType.NULL };
public FilterItem<EmulationStatus> DatItem_FeatureStatus { get; private set; } = new FilterItem<EmulationStatus>() { Positive = EmulationStatus.NULL, Negative = EmulationStatus.NULL };
public FilterItem<EmulationStatus> DatItem_FeatureOverall { get; private set; } = new FilterItem<EmulationStatus>() { Positive = EmulationStatus.NULL, Negative = EmulationStatus.NULL };
public FilterItem<FeatureStatus> DatItem_FeatureStatus { get; private set; } = new FilterItem<FeatureStatus>() { Positive = FeatureStatus.NULL, Negative = FeatureStatus.NULL };
public FilterItem<FeatureStatus> DatItem_FeatureOverall { get; private set; } = new FilterItem<FeatureStatus>() { Positive = FeatureStatus.NULL, Negative = FeatureStatus.NULL };
// Ram Option
@@ -1707,16 +1707,16 @@ namespace SabreTools.Library.Filtering
case Field.DatItem_FeatureStatus:
if (negate)
DatItem_FeatureStatus.Negative |= value.AsEmulationStatus();
DatItem_FeatureStatus.Negative |= value.AsFeatureStatus();
else
DatItem_FeatureStatus.Positive |= value.AsEmulationStatus();
DatItem_FeatureStatus.Positive |= value.AsFeatureStatus();
break;
case Field.DatItem_FeatureOverall:
if (negate)
DatItem_FeatureOverall.Negative |= value.AsEmulationStatus();
DatItem_FeatureOverall.Negative |= value.AsFeatureStatus();
else
DatItem_FeatureOverall.Positive |= value.AsEmulationStatus();
DatItem_FeatureOverall.Positive |= value.AsFeatureStatus();
break;
// Ram Option

View File

@@ -173,28 +173,28 @@ namespace SabreTools.Library.Tools
}
/// <summary>
/// Get EmulationStatus value from input string
/// Get FeatureStatus value from input string
/// </summary>
/// <param name="emulationStatus">String to get value from</param>
/// <returns>EmulationStatus value corresponding to the string</returns>
public static EmulationStatus AsEmulationStatus(this string emulationStatus)
/// <param name="featureStatus">String to get value from</param>
/// <returns>FeatureStatus value corresponding to the string</returns>
public static FeatureStatus AsFeatureStatus(this string featureStatus)
{
#if NET_FRAMEWORK
switch (emulationStatus?.ToLowerInvariant())
switch (featureStatus?.ToLowerInvariant())
{
case "unemulated":
return EmulationStatus.Unemulated;
return FeatureStatus.Unemulated;
case "imperfect":
return EmulationStatus.Imperfect;
return FeatureStatus.Imperfect;
default:
return EmulationStatus.NULL;
return FeatureStatus.NULL;
}
#else
return emulationStatus?.ToLowerInvariant() switch
return featureStatus?.ToLowerInvariant() switch
{
"unemulated" => EmulationStatus.Unemulated,
"imperfect" => EmulationStatus.Imperfect,
_ => EmulationStatus.NULL,
"unemulated" => FeatureStatus.Unemulated,
"imperfect" => FeatureStatus.Imperfect,
_ => FeatureStatus.NULL,
};
#endif
}
@@ -2100,27 +2100,27 @@ namespace SabreTools.Library.Tools
}
/// <summary>
/// Get string value from input EmulationStatus
/// Get string value from input FeatureStatus
/// </summary>
/// <param name="emulationStatus">EmulationStatus to get value from</param>
/// <returns>String value corresponding to the EmulationStatus</returns>
public static string FromEmulationStatus(this EmulationStatus emulationStatus)
/// <param name="featureStatus">FeatureStatus to get value from</param>
/// <returns>String value corresponding to the FeatureStatus</returns>
public static string FromFeatureStatus(this FeatureStatus featureStatus)
{
#if NET_FRAMEWORK
switch (emulationStatus)
switch (featureStatus)
{
case EmulationStatus.Unemulated:
case FeatureStatus.Unemulated:
return "unemulated";
case EmulationStatus.Imperfect:
case FeatureStatus.Imperfect:
return "imperfect";
default:
return null;
}
#else
return emulationStatus switch
return featureStatus switch
{
EmulationStatus.Unemulated => "unemulated",
EmulationStatus.Imperfect => "imperfect",
FeatureStatus.Unemulated => "unemulated",
FeatureStatus.Imperfect => "imperfect",
_ => null,
};
#endif