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"),
|
Tag = reader.GetAttribute("tag"),
|
||||||
DisplayType = reader.GetAttribute("type").AsDisplayType(),
|
DisplayType = reader.GetAttribute("type").AsDisplayType(),
|
||||||
FlipX = reader.GetAttribute("flipx").AsYesNo(),
|
FlipX = reader.GetAttribute("flipx").AsYesNo(),
|
||||||
Refresh = reader.GetAttribute("refresh"),
|
|
||||||
|
|
||||||
Source = new Source
|
Source = new Source
|
||||||
{
|
{
|
||||||
@@ -392,6 +391,13 @@ namespace SabreTools.Library.DatFiles
|
|||||||
display.Height = height;
|
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
|
// Set the pixclock
|
||||||
if (reader.GetAttribute("pixclock") != null)
|
if (reader.GetAttribute("pixclock") != null)
|
||||||
{
|
{
|
||||||
@@ -1597,7 +1603,7 @@ namespace SabreTools.Library.DatFiles
|
|||||||
xtw.WriteOptionalAttributeString("flipx", display.FlipX.FromYesNo());
|
xtw.WriteOptionalAttributeString("flipx", display.FlipX.FromYesNo());
|
||||||
xtw.WriteOptionalAttributeString("width", display.Width?.ToString());
|
xtw.WriteOptionalAttributeString("width", display.Width?.ToString());
|
||||||
xtw.WriteOptionalAttributeString("height", display.Height?.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("pixclock", display.PixClock?.ToString());
|
||||||
xtw.WriteOptionalAttributeString("htotal", display.HTotal?.ToString());
|
xtw.WriteOptionalAttributeString("htotal", display.HTotal?.ToString());
|
||||||
xtw.WriteOptionalAttributeString("hbend", display.HBEnd?.ToString());
|
xtw.WriteOptionalAttributeString("hbend", display.HBEnd?.ToString());
|
||||||
|
|||||||
@@ -1441,7 +1441,7 @@ namespace SabreTools.Library.DatFiles
|
|||||||
xtw.WriteOptionalAttributeString("flipx", display.FlipX.FromYesNo());
|
xtw.WriteOptionalAttributeString("flipx", display.FlipX.FromYesNo());
|
||||||
xtw.WriteOptionalAttributeString("width", display.Width?.ToString());
|
xtw.WriteOptionalAttributeString("width", display.Width?.ToString());
|
||||||
xtw.WriteOptionalAttributeString("height", display.Height?.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("pixclock", display.PixClock?.ToString());
|
||||||
xtw.WriteOptionalAttributeString("htotal", display.HTotal?.ToString());
|
xtw.WriteOptionalAttributeString("htotal", display.HTotal?.ToString());
|
||||||
xtw.WriteOptionalAttributeString("hbend", display.HBEnd?.ToString());
|
xtw.WriteOptionalAttributeString("hbend", display.HBEnd?.ToString());
|
||||||
|
|||||||
@@ -58,7 +58,7 @@ namespace SabreTools.Library.DatItems
|
|||||||
/// Refresh rate
|
/// Refresh rate
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[JsonProperty("refresh", DefaultValueHandling = DefaultValueHandling.Ignore)]
|
[JsonProperty("refresh", DefaultValueHandling = DefaultValueHandling.Ignore)]
|
||||||
public string Refresh { get; set; } // TODO: Float?
|
public double? Refresh { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Pixel clock timer
|
/// Pixel clock timer
|
||||||
@@ -144,7 +144,10 @@ namespace SabreTools.Library.DatItems
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (mappings.Keys.Contains(Field.DatItem_Refresh))
|
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))
|
if (mappings.Keys.Contains(Field.DatItem_PixClock))
|
||||||
{
|
{
|
||||||
@@ -313,9 +316,9 @@ namespace SabreTools.Library.DatItems
|
|||||||
return false;
|
return false;
|
||||||
|
|
||||||
// Filter on refresh
|
// Filter on refresh
|
||||||
if (filter.DatItem_Refresh.MatchesPositiveSet(Refresh) == false)
|
if (filter.DatItem_Refresh.MatchesPositive(null, Refresh) == false)
|
||||||
return false;
|
return false;
|
||||||
if (filter.DatItem_Refresh.MatchesNegativeSet(Refresh) == true)
|
if (filter.DatItem_Refresh.MatchesNegative(null, Refresh) == true)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
// Filter on pixclock
|
// 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<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_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<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_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_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 };
|
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;
|
break;
|
||||||
|
|
||||||
case Field.DatItem_Refresh:
|
case Field.DatItem_Refresh:
|
||||||
SetStringFilter(DatItem_Refresh, value, negate);
|
SetDoubleFilter(DatItem_Refresh, value, negate);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case Field.DatItem_PixClock:
|
case Field.DatItem_PixClock:
|
||||||
@@ -1056,6 +1056,64 @@ namespace SabreTools.Library.Filtering
|
|||||||
filterItem.Neutral = true;
|
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>
|
/// <summary>
|
||||||
/// Set a long filter
|
/// Set a long filter
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
Reference in New Issue
Block a user