mirror of
https://github.com/claunia/SabreTools.git
synced 2025-12-16 19:14:27 +00:00
Display referesh to double?
This commit is contained in:
@@ -362,7 +362,6 @@ namespace SabreTools.Library.DatFiles
|
||||
Tag = reader.GetAttribute("tag"),
|
||||
DisplayType = reader.GetAttribute("type").AsDisplayType(),
|
||||
FlipX = reader.GetAttribute("flipx").AsYesNo(),
|
||||
Refresh = reader.GetAttribute("refresh"),
|
||||
|
||||
Source = new Source
|
||||
{
|
||||
@@ -392,6 +391,13 @@ namespace SabreTools.Library.DatFiles
|
||||
display.Height = height;
|
||||
}
|
||||
|
||||
// Set the refresh
|
||||
if (reader.GetAttribute("refresh") != null)
|
||||
{
|
||||
if (Double.TryParse(reader.GetAttribute("refresh"), out double refresh))
|
||||
display.Refresh = refresh;
|
||||
}
|
||||
|
||||
// Set the pixclock
|
||||
if (reader.GetAttribute("pixclock") != null)
|
||||
{
|
||||
@@ -1597,7 +1603,7 @@ namespace SabreTools.Library.DatFiles
|
||||
xtw.WriteOptionalAttributeString("flipx", display.FlipX.FromYesNo());
|
||||
xtw.WriteOptionalAttributeString("width", display.Width?.ToString());
|
||||
xtw.WriteOptionalAttributeString("height", display.Height?.ToString());
|
||||
xtw.WriteOptionalAttributeString("refresh", display.Refresh);
|
||||
xtw.WriteOptionalAttributeString("refresh", display.Refresh?.ToString("N6"));
|
||||
xtw.WriteOptionalAttributeString("pixclock", display.PixClock?.ToString());
|
||||
xtw.WriteOptionalAttributeString("htotal", display.HTotal?.ToString());
|
||||
xtw.WriteOptionalAttributeString("hbend", display.HBEnd?.ToString());
|
||||
|
||||
@@ -1441,7 +1441,7 @@ namespace SabreTools.Library.DatFiles
|
||||
xtw.WriteOptionalAttributeString("flipx", display.FlipX.FromYesNo());
|
||||
xtw.WriteOptionalAttributeString("width", display.Width?.ToString());
|
||||
xtw.WriteOptionalAttributeString("height", display.Height?.ToString());
|
||||
xtw.WriteOptionalAttributeString("refresh", display.Refresh);
|
||||
xtw.WriteOptionalAttributeString("refresh", display.Refresh?.ToString("N6"));
|
||||
xtw.WriteOptionalAttributeString("pixclock", display.PixClock?.ToString());
|
||||
xtw.WriteOptionalAttributeString("htotal", display.HTotal?.ToString());
|
||||
xtw.WriteOptionalAttributeString("hbend", display.HBEnd?.ToString());
|
||||
|
||||
@@ -58,7 +58,7 @@ namespace SabreTools.Library.DatItems
|
||||
/// Refresh rate
|
||||
/// </summary>
|
||||
[JsonProperty("refresh", DefaultValueHandling = DefaultValueHandling.Ignore)]
|
||||
public string Refresh { get; set; } // TODO: Float?
|
||||
public double? Refresh { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Pixel clock timer
|
||||
@@ -144,7 +144,10 @@ namespace SabreTools.Library.DatItems
|
||||
}
|
||||
|
||||
if (mappings.Keys.Contains(Field.DatItem_Refresh))
|
||||
Refresh = mappings[Field.DatItem_Refresh];
|
||||
{
|
||||
if (Double.TryParse(mappings[Field.DatItem_Refresh], out double refresh))
|
||||
Refresh = refresh;
|
||||
}
|
||||
|
||||
if (mappings.Keys.Contains(Field.DatItem_PixClock))
|
||||
{
|
||||
@@ -313,9 +316,9 @@ namespace SabreTools.Library.DatItems
|
||||
return false;
|
||||
|
||||
// Filter on refresh
|
||||
if (filter.DatItem_Refresh.MatchesPositiveSet(Refresh) == false)
|
||||
if (filter.DatItem_Refresh.MatchesPositive(null, Refresh) == false)
|
||||
return false;
|
||||
if (filter.DatItem_Refresh.MatchesNegativeSet(Refresh) == true)
|
||||
if (filter.DatItem_Refresh.MatchesNegative(null, Refresh) == true)
|
||||
return false;
|
||||
|
||||
// Filter on pixclock
|
||||
|
||||
@@ -201,7 +201,7 @@ namespace SabreTools.Library.Filtering
|
||||
public FilterItem<bool?> DatItem_FlipX { get; private set; } = new FilterItem<bool?>() { Neutral = null };
|
||||
public FilterItem<long?> DatItem_Width { get; private set; } = new FilterItem<long?>() { Positive = null, Negative = null, Neutral = null };
|
||||
public FilterItem<long?> DatItem_Height { get; private set; } = new FilterItem<long?>() { Positive = null, Negative = null, Neutral = null };
|
||||
public FilterItem<string> DatItem_Refresh { get; private set; } = new FilterItem<string>();
|
||||
public FilterItem<double?> DatItem_Refresh { get; private set; } = new FilterItem<double?>() { Positive = null, Negative = null, Neutral = null };
|
||||
public FilterItem<long?> DatItem_PixClock { get; private set; } = new FilterItem<long?>() { Positive = null, Negative = null, Neutral = null };
|
||||
public FilterItem<long?> DatItem_HTotal { get; private set; } = new FilterItem<long?>() { Positive = null, Negative = null, Neutral = null };
|
||||
public FilterItem<long?> DatItem_HBEnd { get; private set; } = new FilterItem<long?>() { Positive = null, Negative = null, Neutral = null };
|
||||
@@ -855,7 +855,7 @@ namespace SabreTools.Library.Filtering
|
||||
break;
|
||||
|
||||
case Field.DatItem_Refresh:
|
||||
SetStringFilter(DatItem_Refresh, value, negate);
|
||||
SetDoubleFilter(DatItem_Refresh, value, negate);
|
||||
break;
|
||||
|
||||
case Field.DatItem_PixClock:
|
||||
@@ -1056,6 +1056,64 @@ namespace SabreTools.Library.Filtering
|
||||
filterItem.Neutral = true;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Set a long? filter
|
||||
/// </summary>
|
||||
/// <param name="filterItem">FilterItem to populate</param>
|
||||
/// <param name="value">String value to add</param>
|
||||
/// <param name="negate">True to set negative filter, false otherwise</param>
|
||||
private void SetDoubleFilter(FilterItem<double?> filterItem, string value, bool negate)
|
||||
{
|
||||
bool? operation = null;
|
||||
if (value.StartsWith(">"))
|
||||
operation = true;
|
||||
else if (value.StartsWith("<"))
|
||||
operation = false;
|
||||
else if (value.StartsWith("="))
|
||||
operation = null;
|
||||
|
||||
string valueString = value.TrimStart('>', '<', '=');
|
||||
if (!Double.TryParse(valueString, out double valueDouble))
|
||||
return;
|
||||
|
||||
// Equal
|
||||
if (operation == null && !negate)
|
||||
{
|
||||
filterItem.Neutral = valueDouble;
|
||||
}
|
||||
|
||||
// Not Equal
|
||||
else if (operation == null && negate)
|
||||
{
|
||||
filterItem.Negative = valueDouble - 1;
|
||||
filterItem.Positive = valueDouble + 1;
|
||||
}
|
||||
|
||||
// Greater Than or Equal
|
||||
else if (operation == true && !negate)
|
||||
{
|
||||
filterItem.Positive = valueDouble;
|
||||
}
|
||||
|
||||
// Strictly Less Than
|
||||
else if (operation == true && negate)
|
||||
{
|
||||
filterItem.Negative = valueDouble - 1;
|
||||
}
|
||||
|
||||
// Less Than or Equal
|
||||
else if (operation == false && !negate)
|
||||
{
|
||||
filterItem.Negative = valueDouble;
|
||||
}
|
||||
|
||||
// Strictly Greater Than
|
||||
else if (operation == false && negate)
|
||||
{
|
||||
filterItem.Positive = valueDouble + 1;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Set a long filter
|
||||
/// </summary>
|
||||
|
||||
Reference in New Issue
Block a user