diff --git a/SabreTools.Data.Extensions/MetadataExtensions.cs b/SabreTools.Data.Extensions/MetadataExtensions.cs index b308ca77..29c95cd8 100644 --- a/SabreTools.Data.Extensions/MetadataExtensions.cs +++ b/SabreTools.Data.Extensions/MetadataExtensions.cs @@ -236,8 +236,17 @@ namespace SabreTools.Data.Extensions { cloneDisplay.DisplayType = selfDisplay.DisplayType; cloneDisplay.FlipX = selfDisplay.FlipX; + cloneDisplay.HBEnd = selfDisplay.HBEnd; + cloneDisplay.HBStart = selfDisplay.HBStart; + cloneDisplay.Height = selfDisplay.Height; + cloneDisplay.HTotal = selfDisplay.HTotal; + cloneDisplay.PixClock = selfDisplay.PixClock; cloneDisplay.Refresh = selfDisplay.Refresh; cloneDisplay.Tag = selfDisplay.Tag; + cloneDisplay.VBEnd = selfDisplay.VBEnd; + cloneDisplay.VBStart = selfDisplay.VBStart; + cloneDisplay.VTotal = selfDisplay.VTotal; + cloneDisplay.Width = selfDisplay.Width; } else if (self is Driver selfDriver && clone is Driver cloneDriver) { diff --git a/SabreTools.Data.Models/Listxml/Display.cs b/SabreTools.Data.Models/Listxml/Display.cs index 92994746..41c48fe7 100644 --- a/SabreTools.Data.Models/Listxml/Display.cs +++ b/SabreTools.Data.Models/Listxml/Display.cs @@ -23,44 +23,35 @@ namespace SabreTools.Data.Models.Listxml [XmlAttribute("flipx")] public bool? FlipX { get; set; } - /// Numeric [XmlAttribute("width")] - public string? Width { get; set; } + public long? Width { get; set; } - /// Numeric [XmlAttribute("height")] - public string? Height { get; set; } + public long? Height { get; set; } [Required] [XmlAttribute("refresh")] public double? Refresh { get; set; } - /// Numeric [XmlAttribute("pixclock")] - public string? PixClock { get; set; } + public long? PixClock { get; set; } - /// Numeric [XmlAttribute("htotal")] - public string? HTotal { get; set; } + public long? HTotal { get; set; } - /// Numeric [XmlAttribute("hbend")] - public string? HBEnd { get; set; } + public long? HBEnd { get; set; } - /// Numeric [XmlAttribute("hbstart")] - public string? HBStart { get; set; } + public long? HBStart { get; set; } - /// Numeric [XmlAttribute("vtotal")] - public string? VTotal { get; set; } + public long? VTotal { get; set; } - /// Numeric [XmlAttribute("vbend")] - public string? VBEnd { get; set; } + public long? VBEnd { get; set; } - /// Numeric [XmlAttribute("vbstart")] - public string? VBStart { get; set; } + public long? VBStart { get; set; } } } diff --git a/SabreTools.Data.Models/Metadata/Display.cs b/SabreTools.Data.Models/Metadata/Display.cs index 58586060..a8cb0632 100644 --- a/SabreTools.Data.Models/Metadata/Display.cs +++ b/SabreTools.Data.Models/Metadata/Display.cs @@ -14,45 +14,36 @@ namespace SabreTools.Data.Models.Metadata /// (yes|no) "no" public bool? FlipX { get; set; } + public long? HBEnd { get; set; } + + public long? HBStart { get; set; } + + public long? Height { get; set; } + + public long? HTotal { get; set; } + + public long? PixClock { get; set; } + public double? Refresh { get; set; } public string? Tag { get; set; } + public long? VBEnd { get; set; } + + public long? VBStart { get; set; } + + public long? VTotal { get; set; } + + public long? Width { get; set; } + #endregion #region Keys - /// long - public const string HBEndKey = "hbend"; - - /// long - public const string HBStartKey = "hbstart"; - - /// long - public const string HeightKey = "height"; - - /// long - public const string HTotalKey = "htotal"; - - /// long - public const string PixClockKey = "pixclock"; - /// (0|90|180|270) /// TODO: Convert to enum public const string RotateKey = "rotate"; - /// long - public const string VBEndKey = "vbend"; - - /// long - public const string VBStartKey = "vbstart"; - - /// long - public const string VTotalKey = "vtotal"; - - /// long - public const string WidthKey = "width"; - #endregion public Display() => ItemType = ItemType.Display; diff --git a/SabreTools.Metadata.DatFiles.Test/DatFileTests.FromMetadata.cs b/SabreTools.Metadata.DatFiles.Test/DatFileTests.FromMetadata.cs index 4a0cde0d..0087fe07 100644 --- a/SabreTools.Metadata.DatFiles.Test/DatFileTests.FromMetadata.cs +++ b/SabreTools.Metadata.DatFiles.Test/DatFileTests.FromMetadata.cs @@ -577,19 +577,19 @@ namespace SabreTools.Metadata.DatFiles.Test return new Data.Models.Metadata.Display { FlipX = true, - [Data.Models.Metadata.Display.HBEndKey] = 12345L, - [Data.Models.Metadata.Display.HBStartKey] = 12345L, - [Data.Models.Metadata.Display.HeightKey] = 12345L, - [Data.Models.Metadata.Display.HTotalKey] = 12345L, - [Data.Models.Metadata.Display.PixClockKey] = 12345L, + HBEnd = 12345L, + HBStart = 12345L, + Height = 12345L, + HTotal = 12345L, + PixClock = 12345L, Refresh = 123.45, [Data.Models.Metadata.Display.RotateKey] = 90, Tag = "tag", DisplayType = Data.Models.Metadata.DisplayType.Vector, - [Data.Models.Metadata.Display.VBEndKey] = 12345L, - [Data.Models.Metadata.Display.VBStartKey] = 12345L, - [Data.Models.Metadata.Display.VTotalKey] = 12345L, - [Data.Models.Metadata.Display.WidthKey] = 12345L, + VBEnd = 12345L, + VBStart = 12345L, + VTotal = 12345L, + Width = 12345L, }; } @@ -1351,19 +1351,19 @@ namespace SabreTools.Metadata.DatFiles.Test { Assert.NotNull(display); Assert.True(display.FlipX); - Assert.Equal(12345L, display.ReadLong(Data.Models.Metadata.Display.HBEndKey)); - Assert.Equal(12345L, display.ReadLong(Data.Models.Metadata.Display.HBStartKey)); - Assert.Equal(12345L, display.ReadLong(Data.Models.Metadata.Display.HeightKey)); - Assert.Equal(12345L, display.ReadLong(Data.Models.Metadata.Display.HTotalKey)); - Assert.Equal(12345L, display.ReadLong(Data.Models.Metadata.Display.PixClockKey)); + Assert.Equal(12345L, display.HBEnd); + Assert.Equal(12345L, display.HBStart); + Assert.Equal(12345L, display.Height); + Assert.Equal(12345L, display.HTotal); + Assert.Equal(12345L, display.PixClock); Assert.Equal(123.45, display.Refresh); Assert.Equal(90, display.ReadLong(Data.Models.Metadata.Display.RotateKey)); Assert.Equal("tag", display.Tag); Assert.Equal(Data.Models.Metadata.DisplayType.Vector, display.DisplayType); - Assert.Equal(12345L, display.ReadLong(Data.Models.Metadata.Display.VBEndKey)); - Assert.Equal(12345L, display.ReadLong(Data.Models.Metadata.Display.VBStartKey)); - Assert.Equal(12345L, display.ReadLong(Data.Models.Metadata.Display.VTotalKey)); - Assert.Equal(12345L, display.ReadLong(Data.Models.Metadata.Display.WidthKey)); + Assert.Equal(12345L, display.VBEnd); + Assert.Equal(12345L, display.VBStart); + Assert.Equal(12345L, display.VTotal); + Assert.Equal(12345L, display.Width); } private static void ValidateDriver(Driver? driver) @@ -1664,9 +1664,9 @@ namespace SabreTools.Metadata.DatFiles.Test Assert.Equal(12345L, display.ReadLong(Data.Models.Metadata.Video.AspectXKey)); Assert.Equal(12345L, display.ReadLong(Data.Models.Metadata.Video.AspectYKey)); Assert.Equal(Data.Models.Metadata.DisplayType.Vector, display.DisplayType); - Assert.Equal(12345L, display.ReadLong(Data.Models.Metadata.Display.HeightKey)); + Assert.Equal(12345L, display.Height); Assert.Equal(123.45, display.Refresh); - Assert.Equal(12345L, display.ReadLong(Data.Models.Metadata.Display.WidthKey)); + Assert.Equal(12345L, display.Width); Assert.Equal(90, display.ReadLong(Data.Models.Metadata.Display.RotateKey)); } diff --git a/SabreTools.Metadata.DatFiles.Test/DatFileTests.ToMetadata.cs b/SabreTools.Metadata.DatFiles.Test/DatFileTests.ToMetadata.cs index 4fc21d47..14f7127b 100644 --- a/SabreTools.Metadata.DatFiles.Test/DatFileTests.ToMetadata.cs +++ b/SabreTools.Metadata.DatFiles.Test/DatFileTests.ToMetadata.cs @@ -868,19 +868,19 @@ namespace SabreTools.Metadata.DatFiles.Test { Assert.NotNull(display); Assert.True(display.FlipX); - Assert.Equal(12345, display.ReadLong(Data.Models.Metadata.Display.HBEndKey)); - Assert.Equal(12345, display.ReadLong(Data.Models.Metadata.Display.HBStartKey)); - Assert.Equal(12345, display.ReadLong(Data.Models.Metadata.Display.HeightKey)); - Assert.Equal(12345, display.ReadLong(Data.Models.Metadata.Display.HTotalKey)); - Assert.Equal(12345, display.ReadLong(Data.Models.Metadata.Display.PixClockKey)); + Assert.Equal(12345, display.HBEnd); + Assert.Equal(12345, display.HBStart); + Assert.Equal(12345, display.Height); + Assert.Equal(12345, display.HTotal); + Assert.Equal(12345, display.PixClock); Assert.Equal(123.45, display.Refresh); Assert.Equal(90, display.ReadLong(Data.Models.Metadata.Display.RotateKey)); Assert.Equal("tag", display.Tag); Assert.Equal(Data.Models.Metadata.DisplayType.Vector, display.DisplayType); - Assert.Equal(12345, display.ReadLong(Data.Models.Metadata.Display.VBEndKey)); - Assert.Equal(12345, display.ReadLong(Data.Models.Metadata.Display.VBStartKey)); - Assert.Equal(12345, display.ReadLong(Data.Models.Metadata.Display.VTotalKey)); - Assert.Equal(12345, display.ReadLong(Data.Models.Metadata.Display.WidthKey)); + Assert.Equal(12345, display.VBEnd); + Assert.Equal(12345, display.VBStart); + Assert.Equal(12345, display.VTotal); + Assert.Equal(12345, display.Width); } private static void ValidateMetadataDriver(Data.Models.Metadata.Driver? driver) diff --git a/SabreTools.Metadata.DatFiles/DatFile.ToMetadata.cs b/SabreTools.Metadata.DatFiles/DatFile.ToMetadata.cs index 97a9d6b4..d62fd3d4 100644 --- a/SabreTools.Metadata.DatFiles/DatFile.ToMetadata.cs +++ b/SabreTools.Metadata.DatFiles/DatFile.ToMetadata.cs @@ -935,10 +935,10 @@ namespace SabreTools.Metadata.DatFiles { [Data.Models.Metadata.Video.AspectXKey] = displayItem.ReadLong(Data.Models.Metadata.Video.AspectXKey).ToString(), [Data.Models.Metadata.Video.AspectYKey] = displayItem.ReadLong(Data.Models.Metadata.Video.AspectYKey).ToString(), - [Data.Models.Metadata.Video.HeightKey] = displayItem.ReadLong(Data.Models.Metadata.Display.HeightKey).ToString(), + [Data.Models.Metadata.Video.HeightKey] = displayItem.Height.ToString(), Refresh = displayItem.Refresh, Screen = displayItem.DisplayType, - [Data.Models.Metadata.Video.WidthKey] = displayItem.ReadLong(Data.Models.Metadata.Display.WidthKey).ToString() + [Data.Models.Metadata.Video.WidthKey] = displayItem.Width.ToString() }; switch (displayItem.ReadLong(Data.Models.Metadata.Display.RotateKey)) diff --git a/SabreTools.Metadata.DatItems/Formats/Display.cs b/SabreTools.Metadata.DatItems/Formats/Display.cs index fbdfe243..75a24100 100644 --- a/SabreTools.Metadata.DatItems/Formats/Display.cs +++ b/SabreTools.Metadata.DatItems/Formats/Display.cs @@ -25,10 +25,40 @@ namespace SabreTools.Metadata.DatItems.Formats set => (_internal as Data.Models.Metadata.Display)?.FlipX = value; } + public long? HBEnd + { + get => (_internal as Data.Models.Metadata.Display)?.HBEnd; + set => (_internal as Data.Models.Metadata.Display)?.HBEnd = value; + } + + public long? HBStart + { + get => (_internal as Data.Models.Metadata.Display)?.HBStart; + set => (_internal as Data.Models.Metadata.Display)?.HBStart = value; + } + + public long? Height + { + get => (_internal as Data.Models.Metadata.Display)?.Height; + set => (_internal as Data.Models.Metadata.Display)?.Height = value; + } + + public long? HTotal + { + get => (_internal as Data.Models.Metadata.Display)?.HTotal; + set => (_internal as Data.Models.Metadata.Display)?.HTotal = value; + } + /// /> public override Data.Models.Metadata.ItemType ItemType => Data.Models.Metadata.ItemType.Display; + public long? PixClock + { + get => (_internal as Data.Models.Metadata.Display)?.PixClock; + set => (_internal as Data.Models.Metadata.Display)?.PixClock = value; + } + public double? Refresh { get => (_internal as Data.Models.Metadata.Display)?.Refresh; @@ -41,6 +71,30 @@ namespace SabreTools.Metadata.DatItems.Formats set => (_internal as Data.Models.Metadata.Display)?.Tag = value; } + public long? VBEnd + { + get => (_internal as Data.Models.Metadata.Display)?.VBEnd; + set => (_internal as Data.Models.Metadata.Display)?.VBEnd = value; + } + + public long? VBStart + { + get => (_internal as Data.Models.Metadata.Display)?.VBStart; + set => (_internal as Data.Models.Metadata.Display)?.VBStart = value; + } + + public long? VTotal + { + get => (_internal as Data.Models.Metadata.Display)?.VTotal; + set => (_internal as Data.Models.Metadata.Display)?.VTotal = value; + } + + public long? Width + { + get => (_internal as Data.Models.Metadata.Display)?.Width; + set => (_internal as Data.Models.Metadata.Display)?.Width = value; + } + #endregion #region Constructors @@ -50,45 +104,9 @@ namespace SabreTools.Metadata.DatItems.Formats public Display(Data.Models.Metadata.Display item) : base(item) { // Process flag values - long? hbEnd = ReadLong(Data.Models.Metadata.Display.HBEndKey); - if (hbEnd is not null) - Write(Data.Models.Metadata.Display.HBEndKey, hbEnd.ToString()); - - long? hbStart = ReadLong(Data.Models.Metadata.Display.HBStartKey); - if (hbStart is not null) - Write(Data.Models.Metadata.Display.HBStartKey, hbStart.ToString()); - - long? height = ReadLong(Data.Models.Metadata.Display.HeightKey); - if (height is not null) - Write(Data.Models.Metadata.Display.HeightKey, height.ToString()); - - long? hTotal = ReadLong(Data.Models.Metadata.Display.HTotalKey); - if (hTotal is not null) - Write(Data.Models.Metadata.Display.HTotalKey, hTotal.ToString()); - - long? pixClock = ReadLong(Data.Models.Metadata.Display.PixClockKey); - if (pixClock is not null) - Write(Data.Models.Metadata.Display.PixClockKey, pixClock.ToString()); - long? rotate = ReadLong(Data.Models.Metadata.Display.RotateKey); if (rotate is not null) Write(Data.Models.Metadata.Display.RotateKey, rotate.ToString()); - - long? vbEnd = ReadLong(Data.Models.Metadata.Display.VBEndKey); - if (vbEnd is not null) - Write(Data.Models.Metadata.Display.VBEndKey, vbEnd.ToString()); - - long? vbStart = ReadLong(Data.Models.Metadata.Display.VBStartKey); - if (vbStart is not null) - Write(Data.Models.Metadata.Display.VBStartKey, vbStart.ToString()); - - long? vTotal = ReadLong(Data.Models.Metadata.Display.VTotalKey); - if (vTotal is not null) - Write(Data.Models.Metadata.Display.VTotalKey, vTotal.ToString()); - - long? width = ReadLong(Data.Models.Metadata.Display.WidthKey); - if (width is not null) - Write(Data.Models.Metadata.Display.WidthKey, width.ToString()); } public Display(Data.Models.Metadata.Display item, Machine machine, Source source) : this(item) @@ -103,9 +121,9 @@ namespace SabreTools.Metadata.DatItems.Formats Write(Data.Models.Metadata.Video.AspectXKey, NumberHelper.ConvertToInt64(item.ReadString(Data.Models.Metadata.Video.AspectXKey))); Write(Data.Models.Metadata.Video.AspectYKey, NumberHelper.ConvertToInt64(item.ReadString(Data.Models.Metadata.Video.AspectYKey))); DisplayType = item.Screen; - Write(Data.Models.Metadata.Display.HeightKey, NumberHelper.ConvertToInt64(item.ReadString(Data.Models.Metadata.Video.HeightKey))); + Height = NumberHelper.ConvertToInt64(item.ReadString(Data.Models.Metadata.Video.HeightKey)); Refresh = item.Refresh; - Write(Data.Models.Metadata.Display.WidthKey, NumberHelper.ConvertToInt64(item.ReadString(Data.Models.Metadata.Video.WidthKey))); + Width = NumberHelper.ConvertToInt64(item.ReadString(Data.Models.Metadata.Video.WidthKey)); switch (item.ReadString(Data.Models.Metadata.Video.OrientationKey)) { @@ -128,14 +146,6 @@ namespace SabreTools.Metadata.DatItems.Formats long? aspectY = ReadLong(Data.Models.Metadata.Video.AspectYKey); if (aspectY is not null) Write(Data.Models.Metadata.Video.AspectYKey, aspectY.ToString()); - - long? height = ReadLong(Data.Models.Metadata.Video.HeightKey); - if (height is not null) - Write(Data.Models.Metadata.Display.HeightKey, height.ToString()); - - long? width = ReadLong(Data.Models.Metadata.Video.WidthKey); - if (width is not null) - Write(Data.Models.Metadata.Display.WidthKey, width.ToString()); } public Display(Data.Models.Metadata.Video item, Machine machine, Source source) : this(item) diff --git a/SabreTools.Metadata.Filter/FilterObject.cs b/SabreTools.Metadata.Filter/FilterObject.cs index 082a6642..7fd359c3 100644 --- a/SabreTools.Metadata.Filter/FilterObject.cs +++ b/SabreTools.Metadata.Filter/FilterObject.cs @@ -514,6 +514,21 @@ namespace SabreTools.Metadata.Filter case Display item when fieldName == "flipx": checkValue = item.FlipX.FromYesNo(); return true; + case Display item when fieldName == "hbend": + checkValue = item.HBEnd?.ToString(); + return true; + case Display item when fieldName == "hbstart": + checkValue = item.HBStart?.ToString(); + return true; + case Display item when fieldName == "height": + checkValue = item.Height?.ToString(); + return true; + case Display item when fieldName == "htotal": + checkValue = item.HTotal?.ToString(); + return true; + case Display item when fieldName == "pixclock": + checkValue = item.PixClock?.ToString(); + return true; case Display item when fieldName == "refresh": checkValue = item.Refresh?.ToString(); return true; @@ -523,6 +538,18 @@ namespace SabreTools.Metadata.Filter case Display item when fieldName == "tag": checkValue = item.Tag; return true; + case Display item when fieldName == "vbend": + checkValue = item.VBEnd?.ToString(); + return true; + case Display item when fieldName == "vbstart": + checkValue = item.VBStart?.ToString(); + return true; + case Display item when fieldName == "vtotal": + checkValue = item.VTotal?.ToString(); + return true; + case Display item when fieldName == "width": + checkValue = item.Width?.ToString(); + return true; case Driver item when fieldName == "blit": checkValue = item.Blit?.AsStringValue(); diff --git a/SabreTools.Metadata/DictionaryBaseExtensions.cs b/SabreTools.Metadata/DictionaryBaseExtensions.cs index f01def6f..7bd9b982 100644 --- a/SabreTools.Metadata/DictionaryBaseExtensions.cs +++ b/SabreTools.Metadata/DictionaryBaseExtensions.cs @@ -167,10 +167,28 @@ namespace SabreTools.Metadata return false; if (selfDisplay.FlipX != otherDisplay.FlipX) return false; + if (selfDisplay.HBEnd != otherDisplay.HBEnd) + return false; + if (selfDisplay.HBStart != otherDisplay.HBStart) + return false; + if (selfDisplay.Height != otherDisplay.Height) + return false; + if (selfDisplay.HTotal != otherDisplay.HTotal) + return false; + if (selfDisplay.PixClock != otherDisplay.PixClock) + return false; if (selfDisplay.Refresh != otherDisplay.Refresh) return false; if (selfDisplay.Tag != otherDisplay.Tag) return false; + if (selfDisplay.VBEnd != otherDisplay.VBEnd) + return false; + if (selfDisplay.VBStart != otherDisplay.VBStart) + return false; + if (selfDisplay.VTotal != otherDisplay.VTotal) + return false; + if (selfDisplay.Width != otherDisplay.Width) + return false; } else if (self is Driver selfDriver && other is Driver otherDriver) { diff --git a/SabreTools.Serialization.CrossModel.Test/ListxmlTests.cs b/SabreTools.Serialization.CrossModel.Test/ListxmlTests.cs index 4cec022f..28f566ae 100644 --- a/SabreTools.Serialization.CrossModel.Test/ListxmlTests.cs +++ b/SabreTools.Serialization.CrossModel.Test/ListxmlTests.cs @@ -124,16 +124,16 @@ namespace SabreTools.Serialization.CrossModel.Test Type = Data.Models.Metadata.DisplayType.Vector, Rotate = "XXXXXX", FlipX = true, - Width = "XXXXXX", - Height = "XXXXXX", + Width = 12345, + Height = 12345, Refresh = 123.45, - PixClock = "XXXXXX", - HTotal = "XXXXXX", - HBEnd = "XXXXXX", - HBStart = "XXXXXX", - VTotal = "XXXXXX", - VBEnd = "XXXXXX", - VBStart = "XXXXXX", + PixClock = 12345, + HTotal = 12345, + HBEnd = 12345, + HBStart = 12345, + VTotal = 12345, + VBEnd = 12345, + VBStart = 12345, }; var video = new Data.Models.Listxml.Video @@ -556,16 +556,16 @@ namespace SabreTools.Serialization.CrossModel.Test Assert.Equal(Data.Models.Metadata.DisplayType.Vector, display.Type); Assert.Equal("XXXXXX", display.Rotate); Assert.Equal(true, display.FlipX); - Assert.Equal("XXXXXX", display.Width); - Assert.Equal("XXXXXX", display.Height); + Assert.Equal(12345, display.Width); + Assert.Equal(12345, display.Height); Assert.Equal(123.45, display.Refresh); - Assert.Equal("XXXXXX", display.PixClock); - Assert.Equal("XXXXXX", display.HTotal); - Assert.Equal("XXXXXX", display.HBEnd); - Assert.Equal("XXXXXX", display.HBStart); - Assert.Equal("XXXXXX", display.VTotal); - Assert.Equal("XXXXXX", display.VBEnd); - Assert.Equal("XXXXXX", display.VBStart); + Assert.Equal(12345, display.PixClock); + Assert.Equal(12345, display.HTotal); + Assert.Equal(12345, display.HBEnd); + Assert.Equal(12345, display.HBStart); + Assert.Equal(12345, display.VTotal); + Assert.Equal(12345, display.VBEnd); + Assert.Equal(12345, display.VBStart); } /// diff --git a/SabreTools.Serialization.CrossModel.Test/M1Tests.cs b/SabreTools.Serialization.CrossModel.Test/M1Tests.cs index 708ff79e..e096aed5 100644 --- a/SabreTools.Serialization.CrossModel.Test/M1Tests.cs +++ b/SabreTools.Serialization.CrossModel.Test/M1Tests.cs @@ -120,16 +120,16 @@ namespace SabreTools.Serialization.CrossModel.Test Type = Data.Models.Metadata.DisplayType.Vector, Rotate = "XXXXXX", FlipX = true, - Width = "XXXXXX", - Height = "XXXXXX", + Width = 12345, + Height = 12345, Refresh = 123.45, - PixClock = "XXXXXX", - HTotal = "XXXXXX", - HBEnd = "XXXXXX", - HBStart = "XXXXXX", - VTotal = "XXXXXX", - VBEnd = "XXXXXX", - VBStart = "XXXXXX", + PixClock = 12345, + HTotal = 12345, + HBEnd = 12345, + HBStart = 12345, + VTotal = 12345, + VBEnd = 12345, + VBStart = 12345, }; var video = new Data.Models.Listxml.Video @@ -550,16 +550,16 @@ namespace SabreTools.Serialization.CrossModel.Test Assert.Equal(Data.Models.Metadata.DisplayType.Vector, display.Type); Assert.Equal("XXXXXX", display.Rotate); Assert.Equal(true, display.FlipX); - Assert.Equal("XXXXXX", display.Width); - Assert.Equal("XXXXXX", display.Height); + Assert.Equal(12345, display.Width); + Assert.Equal(12345, display.Height); Assert.Equal(123.45, display.Refresh); - Assert.Equal("XXXXXX", display.PixClock); - Assert.Equal("XXXXXX", display.HTotal); - Assert.Equal("XXXXXX", display.HBEnd); - Assert.Equal("XXXXXX", display.HBStart); - Assert.Equal("XXXXXX", display.VTotal); - Assert.Equal("XXXXXX", display.VBEnd); - Assert.Equal("XXXXXX", display.VBStart); + Assert.Equal(12345, display.PixClock); + Assert.Equal(12345, display.HTotal); + Assert.Equal(12345, display.HBEnd); + Assert.Equal(12345, display.HBStart); + Assert.Equal(12345, display.VTotal); + Assert.Equal(12345, display.VBEnd); + Assert.Equal(12345, display.VBStart); } /// diff --git a/SabreTools.Serialization.CrossModel.Test/MessTests.cs b/SabreTools.Serialization.CrossModel.Test/MessTests.cs index ca6e5d12..91d46766 100644 --- a/SabreTools.Serialization.CrossModel.Test/MessTests.cs +++ b/SabreTools.Serialization.CrossModel.Test/MessTests.cs @@ -120,16 +120,16 @@ namespace SabreTools.Serialization.CrossModel.Test Type = Data.Models.Metadata.DisplayType.Vector, Rotate = "XXXXXX", FlipX = true, - Width = "XXXXXX", - Height = "XXXXXX", + Width = 12345, + Height = 12345, Refresh = 123.45, - PixClock = "XXXXXX", - HTotal = "XXXXXX", - HBEnd = "XXXXXX", - HBStart = "XXXXXX", - VTotal = "XXXXXX", - VBEnd = "XXXXXX", - VBStart = "XXXXXX", + PixClock = 12345, + HTotal = 12345, + HBEnd = 12345, + HBStart = 12345, + VTotal = 12345, + VBEnd = 12345, + VBStart = 12345, }; var video = new Data.Models.Listxml.Video @@ -550,16 +550,16 @@ namespace SabreTools.Serialization.CrossModel.Test Assert.Equal(Data.Models.Metadata.DisplayType.Vector, display.Type); Assert.Equal("XXXXXX", display.Rotate); Assert.Equal(true, display.FlipX); - Assert.Equal("XXXXXX", display.Width); - Assert.Equal("XXXXXX", display.Height); + Assert.Equal(12345, display.Width); + Assert.Equal(12345, display.Height); Assert.Equal(123.45, display.Refresh); - Assert.Equal("XXXXXX", display.PixClock); - Assert.Equal("XXXXXX", display.HTotal); - Assert.Equal("XXXXXX", display.HBEnd); - Assert.Equal("XXXXXX", display.HBStart); - Assert.Equal("XXXXXX", display.VTotal); - Assert.Equal("XXXXXX", display.VBEnd); - Assert.Equal("XXXXXX", display.VBStart); + Assert.Equal(12345, display.PixClock); + Assert.Equal(12345, display.HTotal); + Assert.Equal(12345, display.HBEnd); + Assert.Equal(12345, display.HBStart); + Assert.Equal(12345, display.VTotal); + Assert.Equal(12345, display.VBEnd); + Assert.Equal(12345, display.VBStart); } /// diff --git a/SabreTools.Serialization.CrossModel/Listxml.Deserializer.cs b/SabreTools.Serialization.CrossModel/Listxml.Deserializer.cs index 110e346c..56154c51 100644 --- a/SabreTools.Serialization.CrossModel/Listxml.Deserializer.cs +++ b/SabreTools.Serialization.CrossModel/Listxml.Deserializer.cs @@ -427,16 +427,16 @@ namespace SabreTools.Serialization.CrossModel Type = item.DisplayType, Rotate = item.ReadString(Data.Models.Metadata.Display.RotateKey), FlipX = item.FlipX, - Width = item.ReadString(Data.Models.Metadata.Display.WidthKey), - Height = item.ReadString(Data.Models.Metadata.Display.HeightKey), + Width = item.Width, + Height = item.Height, Refresh = item.Refresh, - PixClock = item.ReadString(Data.Models.Metadata.Display.PixClockKey), - HTotal = item.ReadString(Data.Models.Metadata.Display.HTotalKey), - HBEnd = item.ReadString(Data.Models.Metadata.Display.HBEndKey), - HBStart = item.ReadString(Data.Models.Metadata.Display.HBStartKey), - VTotal = item.ReadString(Data.Models.Metadata.Display.VTotalKey), - VBEnd = item.ReadString(Data.Models.Metadata.Display.VBEndKey), - VBStart = item.ReadString(Data.Models.Metadata.Display.VBStartKey), + PixClock = item.PixClock, + HTotal = item.HTotal, + HBEnd = item.HBEnd, + HBStart = item.HBStart, + VTotal = item.VTotal, + VBEnd = item.VBEnd, + VBStart = item.VBStart, }; return display; } diff --git a/SabreTools.Serialization.CrossModel/Listxml.Serializer.cs b/SabreTools.Serialization.CrossModel/Listxml.Serializer.cs index 0fdb74fe..3304c5e7 100644 --- a/SabreTools.Serialization.CrossModel/Listxml.Serializer.cs +++ b/SabreTools.Serialization.CrossModel/Listxml.Serializer.cs @@ -465,16 +465,16 @@ namespace SabreTools.Serialization.CrossModel DisplayType = item.Type, [Data.Models.Metadata.Display.RotateKey] = item.Rotate, FlipX = item.FlipX, - [Data.Models.Metadata.Display.WidthKey] = item.Width, - [Data.Models.Metadata.Display.HeightKey] = item.Height, + Width = item.Width, + Height = item.Height, Refresh = item.Refresh, - [Data.Models.Metadata.Display.PixClockKey] = item.PixClock, - [Data.Models.Metadata.Display.HTotalKey] = item.HTotal, - [Data.Models.Metadata.Display.HBEndKey] = item.HBEnd, - [Data.Models.Metadata.Display.HBStartKey] = item.HBStart, - [Data.Models.Metadata.Display.VTotalKey] = item.VTotal, - [Data.Models.Metadata.Display.VBEndKey] = item.VBEnd, - [Data.Models.Metadata.Display.VBStartKey] = item.VBStart, + PixClock = item.PixClock, + HTotal = item.HTotal, + HBEnd = item.HBEnd, + HBStart = item.HBStart, + VTotal = item.VTotal, + VBEnd = item.VBEnd, + VBStart = item.VBStart, }; return display; } diff --git a/SabreTools.Serialization.Readers.Test/ListxmlTests.cs b/SabreTools.Serialization.Readers.Test/ListxmlTests.cs index 619e4620..b15a0335 100644 --- a/SabreTools.Serialization.Readers.Test/ListxmlTests.cs +++ b/SabreTools.Serialization.Readers.Test/ListxmlTests.cs @@ -191,16 +191,16 @@ namespace SabreTools.Serialization.Readers.Test Type = Data.Models.Metadata.DisplayType.Vector, Rotate = "XXXXXX", FlipX = true, - Width = "XXXXXX", - Height = "XXXXXX", + Width = 12345, + Height = 12345, Refresh = 123.45, - PixClock = "XXXXXX", - HTotal = "XXXXXX", - HBEnd = "XXXXXX", - HBStart = "XXXXXX", - VTotal = "XXXXXX", - VBEnd = "XXXXXX", - VBStart = "XXXXXX", + PixClock = 12345, + HTotal = 12345, + HBEnd = 12345, + HBStart = 12345, + VTotal = 12345, + VBEnd = 12345, + VBStart = 12345, }; var video = new Data.Models.Listxml.Video @@ -623,16 +623,16 @@ namespace SabreTools.Serialization.Readers.Test Assert.Equal(Data.Models.Metadata.DisplayType.Vector, display.Type); Assert.Equal("XXXXXX", display.Rotate); Assert.Equal(true, display.FlipX); - Assert.Equal("XXXXXX", display.Width); - Assert.Equal("XXXXXX", display.Height); + Assert.Equal(12345, display.Width); + Assert.Equal(12345, display.Height); Assert.Equal(123.45, display.Refresh); - Assert.Equal("XXXXXX", display.PixClock); - Assert.Equal("XXXXXX", display.HTotal); - Assert.Equal("XXXXXX", display.HBEnd); - Assert.Equal("XXXXXX", display.HBStart); - Assert.Equal("XXXXXX", display.VTotal); - Assert.Equal("XXXXXX", display.VBEnd); - Assert.Equal("XXXXXX", display.VBStart); + Assert.Equal(12345, display.PixClock); + Assert.Equal(12345, display.HTotal); + Assert.Equal(12345, display.HBEnd); + Assert.Equal(12345, display.HBStart); + Assert.Equal(12345, display.VTotal); + Assert.Equal(12345, display.VBEnd); + Assert.Equal(12345, display.VBStart); } /// diff --git a/SabreTools.Serialization.Readers.Test/M1Tests.cs b/SabreTools.Serialization.Readers.Test/M1Tests.cs index b71ccaed..b759f62f 100644 --- a/SabreTools.Serialization.Readers.Test/M1Tests.cs +++ b/SabreTools.Serialization.Readers.Test/M1Tests.cs @@ -187,16 +187,16 @@ namespace SabreTools.Serialization.Readers.Test Type = Data.Models.Metadata.DisplayType.Vector, Rotate = "XXXXXX", FlipX = true, - Width = "XXXXXX", - Height = "XXXXXX", + Width = 12345, + Height = 12345, Refresh = 123.45, - PixClock = "XXXXXX", - HTotal = "XXXXXX", - HBEnd = "XXXXXX", - HBStart = "XXXXXX", - VTotal = "XXXXXX", - VBEnd = "XXXXXX", - VBStart = "XXXXXX", + PixClock = 12345, + HTotal = 12345, + HBEnd = 12345, + HBStart = 12345, + VTotal = 12345, + VBEnd = 12345, + VBStart = 12345, }; var video = new Data.Models.Listxml.Video @@ -617,16 +617,16 @@ namespace SabreTools.Serialization.Readers.Test Assert.Equal(Data.Models.Metadata.DisplayType.Vector, display.Type); Assert.Equal("XXXXXX", display.Rotate); Assert.Equal(true, display.FlipX); - Assert.Equal("XXXXXX", display.Width); - Assert.Equal("XXXXXX", display.Height); + Assert.Equal(12345, display.Width); + Assert.Equal(12345, display.Height); Assert.Equal(123.45, display.Refresh); - Assert.Equal("XXXXXX", display.PixClock); - Assert.Equal("XXXXXX", display.HTotal); - Assert.Equal("XXXXXX", display.HBEnd); - Assert.Equal("XXXXXX", display.HBStart); - Assert.Equal("XXXXXX", display.VTotal); - Assert.Equal("XXXXXX", display.VBEnd); - Assert.Equal("XXXXXX", display.VBStart); + Assert.Equal(12345, display.PixClock); + Assert.Equal(12345, display.HTotal); + Assert.Equal(12345, display.HBEnd); + Assert.Equal(12345, display.HBStart); + Assert.Equal(12345, display.VTotal); + Assert.Equal(12345, display.VBEnd); + Assert.Equal(12345, display.VBStart); } /// diff --git a/SabreTools.Serialization.Readers.Test/MessTests.cs b/SabreTools.Serialization.Readers.Test/MessTests.cs index 365ccc61..7f0bd148 100644 --- a/SabreTools.Serialization.Readers.Test/MessTests.cs +++ b/SabreTools.Serialization.Readers.Test/MessTests.cs @@ -187,16 +187,16 @@ namespace SabreTools.Serialization.Readers.Test Type = Data.Models.Metadata.DisplayType.Vector, Rotate = "XXXXXX", FlipX = true, - Width = "XXXXXX", - Height = "XXXXXX", + Width = 12345, + Height = 12345, Refresh = 123.45, - PixClock = "XXXXXX", - HTotal = "XXXXXX", - HBEnd = "XXXXXX", - HBStart = "XXXXXX", - VTotal = "XXXXXX", - VBEnd = "XXXXXX", - VBStart = "XXXXXX", + PixClock = 12345, + HTotal = 12345, + HBEnd = 12345, + HBStart = 12345, + VTotal = 12345, + VBEnd = 12345, + VBStart = 12345, }; var video = new Data.Models.Listxml.Video @@ -617,16 +617,16 @@ namespace SabreTools.Serialization.Readers.Test Assert.Equal(Data.Models.Metadata.DisplayType.Vector, display.Type); Assert.Equal("XXXXXX", display.Rotate); Assert.Equal(true, display.FlipX); - Assert.Equal("XXXXXX", display.Width); - Assert.Equal("XXXXXX", display.Height); + Assert.Equal(12345, display.Width); + Assert.Equal(12345, display.Height); Assert.Equal(123.45, display.Refresh); - Assert.Equal("XXXXXX", display.PixClock); - Assert.Equal("XXXXXX", display.HTotal); - Assert.Equal("XXXXXX", display.HBEnd); - Assert.Equal("XXXXXX", display.HBStart); - Assert.Equal("XXXXXX", display.VTotal); - Assert.Equal("XXXXXX", display.VBEnd); - Assert.Equal("XXXXXX", display.VBStart); + Assert.Equal(12345, display.PixClock); + Assert.Equal(12345, display.HTotal); + Assert.Equal(12345, display.HBEnd); + Assert.Equal(12345, display.HBStart); + Assert.Equal(12345, display.VTotal); + Assert.Equal(12345, display.VBEnd); + Assert.Equal(12345, display.VBStart); } /// diff --git a/SabreTools.Serialization.Readers/Listxml.cs b/SabreTools.Serialization.Readers/Listxml.cs index ececc78c..eba1a94e 100644 --- a/SabreTools.Serialization.Readers/Listxml.cs +++ b/SabreTools.Serialization.Readers/Listxml.cs @@ -578,16 +578,16 @@ namespace SabreTools.Serialization.Readers obj.Type = reader.GetAttribute("type").AsDisplayType(); obj.Rotate = reader.GetAttribute("rotate"); obj.FlipX = reader.GetAttribute("flipx").AsYesNo(); - obj.Width = reader.GetAttribute("width"); - obj.Height = reader.GetAttribute("height"); + obj.Width = NumberHelper.ConvertToInt64(reader.GetAttribute("width")); + obj.Height = NumberHelper.ConvertToInt64(reader.GetAttribute("height")); obj.Refresh = NumberHelper.ConvertToDouble(reader.GetAttribute("refresh")); - obj.PixClock = reader.GetAttribute("pixclock"); - obj.HTotal = reader.GetAttribute("htotal"); - obj.HBEnd = reader.GetAttribute("hbend"); - obj.HBStart = reader.GetAttribute("hbstart"); - obj.VTotal = reader.GetAttribute("vtotal"); - obj.VBEnd = reader.GetAttribute("vbend"); - obj.VBStart = reader.GetAttribute("vbstart"); + obj.PixClock = NumberHelper.ConvertToInt64(reader.GetAttribute("pixclock")); + obj.HTotal = NumberHelper.ConvertToInt64(reader.GetAttribute("htotal")); + obj.HBEnd = NumberHelper.ConvertToInt64(reader.GetAttribute("hbend")); + obj.HBStart = NumberHelper.ConvertToInt64(reader.GetAttribute("hbstart")); + obj.VTotal = NumberHelper.ConvertToInt64(reader.GetAttribute("vtotal")); + obj.VBEnd = NumberHelper.ConvertToInt64(reader.GetAttribute("vbend")); + obj.VBStart = NumberHelper.ConvertToInt64(reader.GetAttribute("vbstart")); return obj; } diff --git a/SabreTools.Serialization.Readers/M1.cs b/SabreTools.Serialization.Readers/M1.cs index 4f16ee3e..fb511c22 100644 --- a/SabreTools.Serialization.Readers/M1.cs +++ b/SabreTools.Serialization.Readers/M1.cs @@ -576,16 +576,16 @@ namespace SabreTools.Serialization.Readers obj.Type = reader.GetAttribute("type").AsDisplayType(); obj.Rotate = reader.GetAttribute("rotate"); obj.FlipX = reader.GetAttribute("flipx").AsYesNo(); - obj.Width = reader.GetAttribute("width"); - obj.Height = reader.GetAttribute("height"); + obj.Width = NumberHelper.ConvertToInt64(reader.GetAttribute("width")); + obj.Height = NumberHelper.ConvertToInt64(reader.GetAttribute("height")); obj.Refresh = NumberHelper.ConvertToDouble(reader.GetAttribute("refresh")); - obj.PixClock = reader.GetAttribute("pixclock"); - obj.HTotal = reader.GetAttribute("htotal"); - obj.HBEnd = reader.GetAttribute("hbend"); - obj.HBStart = reader.GetAttribute("hbstart"); - obj.VTotal = reader.GetAttribute("vtotal"); - obj.VBEnd = reader.GetAttribute("vbend"); - obj.VBStart = reader.GetAttribute("vbstart"); + obj.PixClock = NumberHelper.ConvertToInt64(reader.GetAttribute("pixclock")); + obj.HTotal = NumberHelper.ConvertToInt64(reader.GetAttribute("htotal")); + obj.HBEnd = NumberHelper.ConvertToInt64(reader.GetAttribute("hbend")); + obj.HBStart = NumberHelper.ConvertToInt64(reader.GetAttribute("hbstart")); + obj.VTotal = NumberHelper.ConvertToInt64(reader.GetAttribute("vtotal")); + obj.VBEnd = NumberHelper.ConvertToInt64(reader.GetAttribute("vbend")); + obj.VBStart = NumberHelper.ConvertToInt64(reader.GetAttribute("vbstart")); return obj; } diff --git a/SabreTools.Serialization.Readers/Mess.cs b/SabreTools.Serialization.Readers/Mess.cs index dad755ab..85c441eb 100644 --- a/SabreTools.Serialization.Readers/Mess.cs +++ b/SabreTools.Serialization.Readers/Mess.cs @@ -576,16 +576,16 @@ namespace SabreTools.Serialization.Readers obj.Type = reader.GetAttribute("type").AsDisplayType(); obj.Rotate = reader.GetAttribute("rotate"); obj.FlipX = reader.GetAttribute("flipx").AsYesNo(); - obj.Width = reader.GetAttribute("width"); - obj.Height = reader.GetAttribute("height"); + obj.Width = NumberHelper.ConvertToInt64(reader.GetAttribute("width")); + obj.Height = NumberHelper.ConvertToInt64(reader.GetAttribute("height")); obj.Refresh = NumberHelper.ConvertToDouble(reader.GetAttribute("refresh")); - obj.PixClock = reader.GetAttribute("pixclock"); - obj.HTotal = reader.GetAttribute("htotal"); - obj.HBEnd = reader.GetAttribute("hbend"); - obj.HBStart = reader.GetAttribute("hbstart"); - obj.VTotal = reader.GetAttribute("vtotal"); - obj.VBEnd = reader.GetAttribute("vbend"); - obj.VBStart = reader.GetAttribute("vbstart"); + obj.PixClock = NumberHelper.ConvertToInt64(reader.GetAttribute("pixclock")); + obj.HTotal = NumberHelper.ConvertToInt64(reader.GetAttribute("htotal")); + obj.HBEnd = NumberHelper.ConvertToInt64(reader.GetAttribute("hbend")); + obj.HBStart = NumberHelper.ConvertToInt64(reader.GetAttribute("hbstart")); + obj.VTotal = NumberHelper.ConvertToInt64(reader.GetAttribute("vtotal")); + obj.VBEnd = NumberHelper.ConvertToInt64(reader.GetAttribute("vbend")); + obj.VBStart = NumberHelper.ConvertToInt64(reader.GetAttribute("vbstart")); return obj; } diff --git a/SabreTools.Serialization.Writers/Listxml.cs b/SabreTools.Serialization.Writers/Listxml.cs index e8f4b791..3c534975 100644 --- a/SabreTools.Serialization.Writers/Listxml.cs +++ b/SabreTools.Serialization.Writers/Listxml.cs @@ -393,16 +393,16 @@ namespace SabreTools.Serialization.Writers writer.WriteRequiredAttributeString("type", obj.Type?.AsStringValue()); writer.WriteOptionalAttributeString("rotate", obj.Rotate); writer.WriteOptionalAttributeString("flipx", obj.FlipX.FromYesNo()); - writer.WriteOptionalAttributeString("width", obj.Width); - writer.WriteOptionalAttributeString("height", obj.Height); + writer.WriteOptionalAttributeString("width", obj.Width?.ToString()); + writer.WriteOptionalAttributeString("height", obj.Height?.ToString()); writer.WriteRequiredAttributeString("refresh", obj.Refresh?.ToString("0.000000")); - writer.WriteOptionalAttributeString("pixclock", obj.PixClock); - writer.WriteOptionalAttributeString("htotal", obj.HTotal); - writer.WriteOptionalAttributeString("hbend", obj.HBEnd); - writer.WriteOptionalAttributeString("hbstart", obj.HBStart); - writer.WriteOptionalAttributeString("vtotal", obj.VTotal); - writer.WriteOptionalAttributeString("vbend", obj.VBEnd); - writer.WriteOptionalAttributeString("vbstart", obj.VBStart); + writer.WriteOptionalAttributeString("pixclock", obj.PixClock?.ToString()); + writer.WriteOptionalAttributeString("htotal", obj.HTotal?.ToString()); + writer.WriteOptionalAttributeString("hbend", obj.HBEnd?.ToString()); + writer.WriteOptionalAttributeString("hbstart", obj.HBStart?.ToString()); + writer.WriteOptionalAttributeString("vtotal", obj.VTotal?.ToString()); + writer.WriteOptionalAttributeString("vbend", obj.VBEnd?.ToString()); + writer.WriteOptionalAttributeString("vbstart", obj.VBStart?.ToString()); writer.WriteEndElement(); } diff --git a/SabreTools.Serialization.Writers/M1.cs b/SabreTools.Serialization.Writers/M1.cs index 6077aad0..a2a53f40 100644 --- a/SabreTools.Serialization.Writers/M1.cs +++ b/SabreTools.Serialization.Writers/M1.cs @@ -391,16 +391,16 @@ namespace SabreTools.Serialization.Writers writer.WriteRequiredAttributeString("type", obj.Type?.AsStringValue()); writer.WriteOptionalAttributeString("rotate", obj.Rotate); writer.WriteOptionalAttributeString("flipx", obj.FlipX.FromYesNo()); - writer.WriteOptionalAttributeString("width", obj.Width); - writer.WriteOptionalAttributeString("height", obj.Height); + writer.WriteOptionalAttributeString("width", obj.Width?.ToString()); + writer.WriteOptionalAttributeString("height", obj.Height?.ToString()); writer.WriteRequiredAttributeString("refresh", obj.Refresh?.ToString("0.000000")); - writer.WriteOptionalAttributeString("pixclock", obj.PixClock); - writer.WriteOptionalAttributeString("htotal", obj.HTotal); - writer.WriteOptionalAttributeString("hbend", obj.HBEnd); - writer.WriteOptionalAttributeString("hbstart", obj.HBStart); - writer.WriteOptionalAttributeString("vtotal", obj.VTotal); - writer.WriteOptionalAttributeString("vbend", obj.VBEnd); - writer.WriteOptionalAttributeString("vbstart", obj.VBStart); + writer.WriteOptionalAttributeString("pixclock", obj.PixClock?.ToString()); + writer.WriteOptionalAttributeString("htotal", obj.HTotal?.ToString()); + writer.WriteOptionalAttributeString("hbend", obj.HBEnd?.ToString()); + writer.WriteOptionalAttributeString("hbstart", obj.HBStart?.ToString()); + writer.WriteOptionalAttributeString("vtotal", obj.VTotal?.ToString()); + writer.WriteOptionalAttributeString("vbend", obj.VBEnd?.ToString()); + writer.WriteOptionalAttributeString("vbstart", obj.VBStart?.ToString()); writer.WriteEndElement(); } diff --git a/SabreTools.Serialization.Writers/Mess.cs b/SabreTools.Serialization.Writers/Mess.cs index 5bd9d91d..eceae2c1 100644 --- a/SabreTools.Serialization.Writers/Mess.cs +++ b/SabreTools.Serialization.Writers/Mess.cs @@ -391,16 +391,16 @@ namespace SabreTools.Serialization.Writers writer.WriteRequiredAttributeString("type", obj.Type?.AsStringValue()); writer.WriteOptionalAttributeString("rotate", obj.Rotate); writer.WriteOptionalAttributeString("flipx", obj.FlipX.FromYesNo()); - writer.WriteOptionalAttributeString("width", obj.Width); - writer.WriteOptionalAttributeString("height", obj.Height); + writer.WriteOptionalAttributeString("width", obj.Width?.ToString()); + writer.WriteOptionalAttributeString("height", obj.Height?.ToString()); writer.WriteRequiredAttributeString("refresh", obj.Refresh?.ToString("0.000000")); - writer.WriteOptionalAttributeString("pixclock", obj.PixClock); - writer.WriteOptionalAttributeString("htotal", obj.HTotal); - writer.WriteOptionalAttributeString("hbend", obj.HBEnd); - writer.WriteOptionalAttributeString("hbstart", obj.HBStart); - writer.WriteOptionalAttributeString("vtotal", obj.VTotal); - writer.WriteOptionalAttributeString("vbend", obj.VBEnd); - writer.WriteOptionalAttributeString("vbstart", obj.VBStart); + writer.WriteOptionalAttributeString("pixclock", obj.PixClock?.ToString()); + writer.WriteOptionalAttributeString("htotal", obj.HTotal?.ToString()); + writer.WriteOptionalAttributeString("hbend", obj.HBEnd?.ToString()); + writer.WriteOptionalAttributeString("hbstart", obj.HBStart?.ToString()); + writer.WriteOptionalAttributeString("vtotal", obj.VTotal?.ToString()); + writer.WriteOptionalAttributeString("vbend", obj.VBEnd?.ToString()); + writer.WriteOptionalAttributeString("vbstart", obj.VBStart?.ToString()); writer.WriteEndElement(); }