From 319913a288739db13910953bb9ae564ab56cbf77 Mon Sep 17 00:00:00 2001 From: Matt Nadareski Date: Fri, 4 Sep 2020 10:50:08 -0700 Subject: [PATCH] Display pixclock to long? --- SabreTools.Library/DatFiles/Listxml.cs | 10 ++++++++-- SabreTools.Library/DatFiles/SabreDat.cs | 2 +- SabreTools.Library/DatItems/Display.cs | 11 +++++++---- SabreTools.Library/Filtering/Filter.cs | 4 ++-- 4 files changed, 18 insertions(+), 9 deletions(-) diff --git a/SabreTools.Library/DatFiles/Listxml.cs b/SabreTools.Library/DatFiles/Listxml.cs index 8914bac3..0719a290 100644 --- a/SabreTools.Library/DatFiles/Listxml.cs +++ b/SabreTools.Library/DatFiles/Listxml.cs @@ -363,7 +363,6 @@ namespace SabreTools.Library.DatFiles DisplayType = reader.GetAttribute("type").AsDisplayType(), FlipX = reader.GetAttribute("flipx").AsYesNo(), Refresh = reader.GetAttribute("refresh"), - PixClock = reader.GetAttribute("pixclock"), HTotal = reader.GetAttribute("htotal"), HBEnd = reader.GetAttribute("hbend"), HBStart = reader.GetAttribute("hbstart"), @@ -399,6 +398,13 @@ namespace SabreTools.Library.DatFiles display.Height = height; } + // Set the pixclock + if (reader.GetAttribute("pixclock") != null) + { + if (Int64.TryParse(reader.GetAttribute("pixclock"), out long pixclock)) + display.PixClock = pixclock; + } + datItems.Add(display); reader.Read(); @@ -1556,7 +1562,7 @@ namespace SabreTools.Library.DatFiles xtw.WriteOptionalAttributeString("width", display.Width?.ToString()); xtw.WriteOptionalAttributeString("height", display.Height?.ToString()); xtw.WriteOptionalAttributeString("refresh", display.Refresh); - xtw.WriteOptionalAttributeString("pixclock", display.PixClock); + xtw.WriteOptionalAttributeString("pixclock", display.PixClock?.ToString()); xtw.WriteOptionalAttributeString("htotal", display.HTotal); xtw.WriteOptionalAttributeString("hbend", display.HBEnd); xtw.WriteOptionalAttributeString("hstart", display.HBStart); diff --git a/SabreTools.Library/DatFiles/SabreDat.cs b/SabreTools.Library/DatFiles/SabreDat.cs index dfa2eabc..09d6d1fa 100644 --- a/SabreTools.Library/DatFiles/SabreDat.cs +++ b/SabreTools.Library/DatFiles/SabreDat.cs @@ -1442,7 +1442,7 @@ namespace SabreTools.Library.DatFiles xtw.WriteOptionalAttributeString("width", display.Width?.ToString()); xtw.WriteOptionalAttributeString("height", display.Height?.ToString()); xtw.WriteOptionalAttributeString("refresh", display.Refresh); - xtw.WriteOptionalAttributeString("pixclock", display.PixClock); + xtw.WriteOptionalAttributeString("pixclock", display.PixClock?.ToString()); xtw.WriteOptionalAttributeString("htotal", display.HTotal); xtw.WriteOptionalAttributeString("hbend", display.HBEnd); xtw.WriteOptionalAttributeString("hstart", display.HBStart); diff --git a/SabreTools.Library/DatItems/Display.cs b/SabreTools.Library/DatItems/Display.cs index c86736e6..42705bcf 100644 --- a/SabreTools.Library/DatItems/Display.cs +++ b/SabreTools.Library/DatItems/Display.cs @@ -64,7 +64,7 @@ namespace SabreTools.Library.DatItems /// Pixel clock timer /// [JsonProperty("pixclock", DefaultValueHandling = DefaultValueHandling.Ignore)] - public string PixClock { get; set; } // TODO: Int32? Float? + public long? PixClock { get; set; } /// /// Total horizontal lines @@ -147,7 +147,10 @@ namespace SabreTools.Library.DatItems Refresh = mappings[Field.DatItem_Refresh]; if (mappings.Keys.Contains(Field.DatItem_PixClock)) - PixClock = mappings[Field.DatItem_PixClock]; + { + if (Int64.TryParse(mappings[Field.DatItem_PixClock], out long pixClock)) + PixClock = pixClock; + } if (mappings.Keys.Contains(Field.DatItem_HTotal)) HTotal = mappings[Field.DatItem_HTotal]; @@ -298,9 +301,9 @@ namespace SabreTools.Library.DatItems return false; // Filter on pixclock - if (filter.DatItem_PixClock.MatchesPositiveSet(PixClock) == false) + if (filter.DatItem_PixClock.MatchesPositive(null, PixClock) == false) return false; - if (filter.DatItem_PixClock.MatchesNegativeSet(PixClock) == true) + if (filter.DatItem_PixClock.MatchesNegative(null, PixClock) == true) return false; // Filter on htotal diff --git a/SabreTools.Library/Filtering/Filter.cs b/SabreTools.Library/Filtering/Filter.cs index b05adb77..d7ad8959 100644 --- a/SabreTools.Library/Filtering/Filter.cs +++ b/SabreTools.Library/Filtering/Filter.cs @@ -202,7 +202,7 @@ namespace SabreTools.Library.Filtering public FilterItem DatItem_Width { get; private set; } = new FilterItem() { Positive = null, Negative = null, Neutral = null }; public FilterItem DatItem_Height { get; private set; } = new FilterItem() { Positive = null, Negative = null, Neutral = null }; public FilterItem DatItem_Refresh { get; private set; } = new FilterItem(); - public FilterItem DatItem_PixClock { get; private set; } = new FilterItem(); + public FilterItem DatItem_PixClock { get; private set; } = new FilterItem() { Positive = null, Negative = null, Neutral = null }; public FilterItem DatItem_HTotal { get; private set; } = new FilterItem(); public FilterItem DatItem_HBEnd { get; private set; } = new FilterItem(); public FilterItem DatItem_HBStart { get; private set; } = new FilterItem(); @@ -859,7 +859,7 @@ namespace SabreTools.Library.Filtering break; case Field.DatItem_PixClock: - SetStringFilter(DatItem_PixClock, value, negate); + SetOptionalLongFilter(DatItem_PixClock, value, negate); break; case Field.DatItem_HTotal: