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

View File

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

View File

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

View File

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

View File

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

View File

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