diff --git a/SabreTools.Data.Extensions/MetadataExtensions.cs b/SabreTools.Data.Extensions/MetadataExtensions.cs
index 29c95cd8..6716d528 100644
--- a/SabreTools.Data.Extensions/MetadataExtensions.cs
+++ b/SabreTools.Data.Extensions/MetadataExtensions.cs
@@ -234,6 +234,8 @@ namespace SabreTools.Data.Extensions
}
else if (self is Display selfDisplay && clone is Display cloneDisplay)
{
+ cloneDisplay.AspectX = selfDisplay.AspectX;
+ cloneDisplay.AspectY = selfDisplay.AspectY;
cloneDisplay.DisplayType = selfDisplay.DisplayType;
cloneDisplay.FlipX = selfDisplay.FlipX;
cloneDisplay.HBEnd = selfDisplay.HBEnd;
@@ -365,8 +367,12 @@ namespace SabreTools.Data.Extensions
}
else if (self is Video selfVideo && clone is Video cloneVideo)
{
+ cloneVideo.AspectX = selfVideo.AspectX;
+ cloneVideo.AspectY = selfVideo.AspectY;
+ cloneVideo.Height = selfVideo.Height;
cloneVideo.Refresh = selfVideo.Refresh;
cloneVideo.Screen = selfVideo.Screen;
+ cloneVideo.Width = selfVideo.Width;
}
// Handle known properties
diff --git a/SabreTools.Data.Models/ClrMamePro/Video.cs b/SabreTools.Data.Models/ClrMamePro/Video.cs
index 1cfec8b7..b5652170 100644
--- a/SabreTools.Data.Models/ClrMamePro/Video.cs
+++ b/SabreTools.Data.Models/ClrMamePro/Video.cs
@@ -14,19 +14,19 @@ namespace SabreTools.Data.Models.ClrMamePro
[Required]
public string? Orientation { get; set; }
- /// x, Numeric?
- public string? X { get; set; }
+ /// x
+ public long? X { get; set; }
- /// y, Numeric?
- public string? Y { get; set; }
+ /// y
+ public long? Y { get; set; }
- /// aspectx, Numeric?
- public string? AspectX { get; set; }
+ /// aspectx
+ public long? AspectX { get; set; }
- /// aspecty, Numeric?
- public string? AspectY { get; set; }
+ /// aspecty
+ public long? AspectY { get; set; }
- /// freq, Numeric?
+ /// freq
public double? Freq { get; set; }
}
}
diff --git a/SabreTools.Data.Models/Listxml/Video.cs b/SabreTools.Data.Models/Listxml/Video.cs
index 015a1b90..679bff82 100644
--- a/SabreTools.Data.Models/Listxml/Video.cs
+++ b/SabreTools.Data.Models/Listxml/Video.cs
@@ -17,23 +17,18 @@ namespace SabreTools.Data.Models.Listxml
[XmlAttribute("orientation")]
public string? Orientation { 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; }
- /// Numeric
[XmlAttribute("aspectx")]
- public string? AspectX { get; set; }
+ public long? AspectX { get; set; }
- /// Numeric
[XmlAttribute("aspecty")]
- public string? AspectY { get; set; }
+ public long? AspectY { get; set; }
- /// Numeric
[XmlAttribute("refresh")]
public double? Refresh { get; set; }
}
diff --git a/SabreTools.Data.Models/Metadata/Display.cs b/SabreTools.Data.Models/Metadata/Display.cs
index a8cb0632..7f34c784 100644
--- a/SabreTools.Data.Models/Metadata/Display.cs
+++ b/SabreTools.Data.Models/Metadata/Display.cs
@@ -8,6 +8,12 @@ namespace SabreTools.Data.Models.Metadata
{
#region Properties
+ /// Only found in Video
+ public long? AspectX { get; set; }
+
+ /// Only found in Video
+ public long? AspectY { get; set; }
+
/// (raster|vector|lcd|svg|unknown)
public DisplayType? DisplayType { get; set; }
diff --git a/SabreTools.Data.Models/Metadata/Video.cs b/SabreTools.Data.Models/Metadata/Video.cs
index 421eb4c7..5a9ed874 100644
--- a/SabreTools.Data.Models/Metadata/Video.cs
+++ b/SabreTools.Data.Models/Metadata/Video.cs
@@ -8,31 +8,29 @@ namespace SabreTools.Data.Models.Metadata
{
#region Properties
+ public long? AspectX { get; set; }
+
+ public long? AspectY { get; set; }
+
+ /// Originally "y"
+ public long? Height { get; set; }
+
/// Originally "freq"
public double? Refresh { get; set; }
/// (raster|vector)
public DisplayType? Screen { get; set; }
+ /// Originally "x"
+ public long? Width { get; set; }
+
#endregion
#region Keys
- /// long
- public const string AspectXKey = "aspectx";
-
- /// long
- public const string AspectYKey = "aspecty";
-
- /// long; Originally "y"
- public const string HeightKey = "height";
-
/// (vertical|horizontal)
public const string OrientationKey = "orientation";
- /// long; Originally "x"
- public const string WidthKey = "width";
-
#endregion
public Video() => ItemType = ItemType.Video;
diff --git a/SabreTools.Metadata.DatFiles.Test/DatFileTests.FromMetadata.cs b/SabreTools.Metadata.DatFiles.Test/DatFileTests.FromMetadata.cs
index d8b7c529..4baee9dc 100644
--- a/SabreTools.Metadata.DatFiles.Test/DatFileTests.FromMetadata.cs
+++ b/SabreTools.Metadata.DatFiles.Test/DatFileTests.FromMetadata.cs
@@ -101,7 +101,7 @@ namespace SabreTools.Metadata.DatFiles.Test
Disk? disk = Array.Find(datItems, item => item is Disk disk && !disk.DiskAreaSpecified && !disk.PartSpecified) as Disk;
ValidateDisk(disk);
- Display? display = Array.Find(datItems, item => item is Display display && display.ReadLong(Data.Models.Metadata.Video.AspectXKey) is null) as Display;
+ Display? display = Array.Find(datItems, item => item is Display display && display.AspectX is null) as Display;
ValidateDisplay(display);
Driver? driver = Array.Find(datItems, item => item is Driver) as Driver;
@@ -176,7 +176,7 @@ namespace SabreTools.Metadata.DatFiles.Test
Sound? sound = Array.Find(datItems, item => item is Sound) as Sound;
ValidateSound(sound);
- Display? video = Array.Find(datItems, item => item is Display display && display.ReadLong(Data.Models.Metadata.Video.AspectXKey) is not null) as Display;
+ Display? video = Array.Find(datItems, item => item is Display display && display.AspectX is not null) as Display;
ValidateVideo(video);
}
@@ -576,6 +576,8 @@ namespace SabreTools.Metadata.DatFiles.Test
{
return new Data.Models.Metadata.Display
{
+ AspectX = 12345,
+ AspectY = 12345,
FlipX = true,
HBEnd = 12345,
HBStart = 12345,
@@ -1021,13 +1023,13 @@ namespace SabreTools.Metadata.DatFiles.Test
{
return new Data.Models.Metadata.Video
{
- [Data.Models.Metadata.Video.AspectXKey] = 12345L,
- [Data.Models.Metadata.Video.AspectYKey] = 12345L,
- [Data.Models.Metadata.Video.HeightKey] = 12345L,
+ AspectX = 12345,
+ AspectY = 12345,
+ Height = 12345,
[Data.Models.Metadata.Video.OrientationKey] = "vertical",
Refresh = 123.45,
Screen = Data.Models.Metadata.DisplayType.Vector,
- [Data.Models.Metadata.Video.WidthKey] = 12345L,
+ Width = 12345,
};
}
@@ -1350,6 +1352,8 @@ namespace SabreTools.Metadata.DatFiles.Test
private static void ValidateDisplay(Display? display)
{
Assert.NotNull(display);
+ Assert.Null(display.AspectX);
+ Assert.Null(display.AspectY);
Assert.True(display.FlipX);
Assert.Equal(12345, display.HBEnd);
Assert.Equal(12345, display.HBStart);
@@ -1661,8 +1665,8 @@ namespace SabreTools.Metadata.DatFiles.Test
private static void ValidateVideo(Display? display)
{
Assert.NotNull(display);
- Assert.Equal(12345L, display.ReadLong(Data.Models.Metadata.Video.AspectXKey));
- Assert.Equal(12345L, display.ReadLong(Data.Models.Metadata.Video.AspectYKey));
+ Assert.Equal(12345L, display.AspectX);
+ Assert.Equal(12345L, display.AspectY);
Assert.Equal(Data.Models.Metadata.DisplayType.Vector, display.DisplayType);
Assert.Equal(12345, display.Height);
Assert.Equal(123.45, display.Refresh);
diff --git a/SabreTools.Metadata.DatFiles.Test/DatFileTests.ToMetadata.cs b/SabreTools.Metadata.DatFiles.Test/DatFileTests.ToMetadata.cs
index 14f7127b..3c1df829 100644
--- a/SabreTools.Metadata.DatFiles.Test/DatFileTests.ToMetadata.cs
+++ b/SabreTools.Metadata.DatFiles.Test/DatFileTests.ToMetadata.cs
@@ -521,7 +521,7 @@ namespace SabreTools.Metadata.DatFiles.Test
Data.Models.Metadata.Display[]? displays = machine.ReadArray(Data.Models.Metadata.Machine.DisplayKey);
Assert.NotNull(displays);
Assert.Equal(2, displays.Length);
- Data.Models.Metadata.Display? display = Array.Find(displays, d => !d.ContainsKey(Data.Models.Metadata.Video.AspectXKey));
+ Data.Models.Metadata.Display? display = Array.Find(displays, d => d.AspectX == null);
ValidateMetadataDisplay(display);
Data.Models.Metadata.Driver[]? drivers = machine.ReadArray(Data.Models.Metadata.Machine.DriverKey);
@@ -867,6 +867,8 @@ namespace SabreTools.Metadata.DatFiles.Test
private static void ValidateMetadataDisplay(Data.Models.Metadata.Display? display)
{
Assert.NotNull(display);
+ Assert.Null(display.AspectX);
+ Assert.Null(display.AspectY);
Assert.True(display.FlipX);
Assert.Equal(12345, display.HBEnd);
Assert.Equal(12345, display.HBStart);
@@ -1254,13 +1256,13 @@ namespace SabreTools.Metadata.DatFiles.Test
private static void ValidateMetadataVideo(Data.Models.Metadata.Video? video)
{
Assert.NotNull(video);
- Assert.Equal(12345, video.ReadLong(Data.Models.Metadata.Video.AspectXKey));
- Assert.Equal(12345, video.ReadLong(Data.Models.Metadata.Video.AspectYKey));
- Assert.Equal(12345, video.ReadLong(Data.Models.Metadata.Video.HeightKey));
+ Assert.Equal(12345, video.AspectX);
+ Assert.Equal(12345, video.AspectY);
+ Assert.Equal(12345, video.Height);
Assert.Equal("vertical", video.ReadString(Data.Models.Metadata.Video.OrientationKey));
Assert.Equal(123.45, video.Refresh);
Assert.Equal(Data.Models.Metadata.DisplayType.Vector, video.Screen);
- Assert.Equal(12345, video.ReadLong(Data.Models.Metadata.Video.WidthKey));
+ Assert.Equal(12345, video.Width);
}
#endregion
diff --git a/SabreTools.Metadata.DatFiles/DatFile.ToMetadata.cs b/SabreTools.Metadata.DatFiles/DatFile.ToMetadata.cs
index d62fd3d4..345d44a3 100644
--- a/SabreTools.Metadata.DatFiles/DatFile.ToMetadata.cs
+++ b/SabreTools.Metadata.DatFiles/DatFile.ToMetadata.cs
@@ -929,16 +929,16 @@ namespace SabreTools.Metadata.DatFiles
var displayItem = item.GetInternalClone();
// Create a Video for any item that has specific fields
- if (displayItem.ContainsKey(Data.Models.Metadata.Video.AspectXKey))
+ if (displayItem.AspectX != null)
{
var videoItem = new Data.Models.Metadata.Video
{
- [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.Height.ToString(),
+ AspectX = displayItem.AspectX,
+ AspectY = displayItem.AspectY,
+ Height = displayItem.Height,
Refresh = displayItem.Refresh,
Screen = displayItem.DisplayType,
- [Data.Models.Metadata.Video.WidthKey] = displayItem.Width.ToString()
+ Width = displayItem.Width,
};
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 75a24100..d142b6e9 100644
--- a/SabreTools.Metadata.DatItems/Formats/Display.cs
+++ b/SabreTools.Metadata.DatItems/Formats/Display.cs
@@ -1,7 +1,6 @@
using System.Xml.Serialization;
using Newtonsoft.Json;
using SabreTools.Data.Extensions;
-using SabreTools.Text.Extensions;
namespace SabreTools.Metadata.DatItems.Formats
{
@@ -13,6 +12,18 @@ namespace SabreTools.Metadata.DatItems.Formats
{
#region Fields
+ public long? AspectX
+ {
+ get => (_internal as Data.Models.Metadata.Display)?.AspectX;
+ set => (_internal as Data.Models.Metadata.Display)?.AspectX = value;
+ }
+
+ public long? AspectY
+ {
+ get => (_internal as Data.Models.Metadata.Display)?.AspectY;
+ set => (_internal as Data.Models.Metadata.Display)?.AspectY = value;
+ }
+
public Data.Models.Metadata.DisplayType? DisplayType
{
get => (_internal as Data.Models.Metadata.Display)?.DisplayType;
@@ -117,13 +128,12 @@ namespace SabreTools.Metadata.DatItems.Formats
public Display(Data.Models.Metadata.Video item) : base()
{
- // TODO: Convert this block to more traditional set of if/then
- 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)));
+ AspectX = item.AspectX;
+ AspectY = item.AspectY;
DisplayType = item.Screen;
- Height = NumberHelper.ConvertToInt64(item.ReadString(Data.Models.Metadata.Video.HeightKey));
+ Height = item.Height;
Refresh = item.Refresh;
- Width = NumberHelper.ConvertToInt64(item.ReadString(Data.Models.Metadata.Video.WidthKey));
+ Width = item.Width;
switch (item.ReadString(Data.Models.Metadata.Video.OrientationKey))
{
@@ -137,15 +147,6 @@ namespace SabreTools.Metadata.DatItems.Formats
// TODO: Log invalid values
break;
}
-
- // Process flag values
- long? aspectX = ReadLong(Data.Models.Metadata.Video.AspectXKey);
- if (aspectX is not null)
- Write(Data.Models.Metadata.Video.AspectXKey, aspectX.ToString());
-
- long? aspectY = ReadLong(Data.Models.Metadata.Video.AspectYKey);
- if (aspectY is not null)
- Write(Data.Models.Metadata.Video.AspectYKey, aspectY.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 7fd359c3..840bb9d2 100644
--- a/SabreTools.Metadata.Filter/FilterObject.cs
+++ b/SabreTools.Metadata.Filter/FilterObject.cs
@@ -511,6 +511,12 @@ namespace SabreTools.Metadata.Filter
checkValue = item.Writable.FromYesNo();
return true;
+ case Display item when fieldName == "aspectx":
+ checkValue = item.AspectX?.ToString();
+ return true;
+ case Display item when fieldName == "aspecty":
+ checkValue = item.AspectY?.ToString();
+ return true;
case Display item when fieldName == "flipx":
checkValue = item.FlipX.FromYesNo();
return true;
@@ -520,7 +526,7 @@ namespace SabreTools.Metadata.Filter
case Display item when fieldName == "hbstart":
checkValue = item.HBStart?.ToString();
return true;
- case Display item when fieldName == "height":
+ case Display item when fieldName == "height" || fieldName == "y":
checkValue = item.Height?.ToString();
return true;
case Display item when fieldName == "htotal":
@@ -529,7 +535,7 @@ namespace SabreTools.Metadata.Filter
case Display item when fieldName == "pixclock":
checkValue = item.PixClock?.ToString();
return true;
- case Display item when fieldName == "refresh":
+ case Display item when fieldName == "refresh" || fieldName == "freq":
checkValue = item.Refresh?.ToString();
return true;
case Display item when fieldName == "type":
@@ -547,7 +553,7 @@ namespace SabreTools.Metadata.Filter
case Display item when fieldName == "vtotal":
checkValue = item.VTotal?.ToString();
return true;
- case Display item when fieldName == "width":
+ case Display item when fieldName == "width" || fieldName == "x":
checkValue = item.Width?.ToString();
return true;
@@ -817,12 +823,24 @@ namespace SabreTools.Metadata.Filter
checkValue = item.Channels?.ToString();
return true;
- case Video item when fieldName == "refresh":
+ case Video item when fieldName == "aspectx":
+ checkValue = item.AspectX?.ToString();
+ return true;
+ case Video item when fieldName == "aspecty":
+ checkValue = item.AspectY?.ToString();
+ return true;
+ case Video item when fieldName == "height" || fieldName == "y":
+ checkValue = item.Height?.ToString();
+ return true;
+ case Video item when fieldName == "refresh" || fieldName == "freq":
checkValue = item.Refresh?.ToString();
return true;
case Video item when fieldName == "screen":
checkValue = item.Screen?.AsStringValue();
return true;
+ case Video item when fieldName == "width" || fieldName == "x":
+ checkValue = item.Width?.ToString();
+ return true;
// Fallthrough to Dictionary-based checking
default: break;
diff --git a/SabreTools.Metadata/DictionaryBaseExtensions.cs b/SabreTools.Metadata/DictionaryBaseExtensions.cs
index 7bd9b982..713d92cb 100644
--- a/SabreTools.Metadata/DictionaryBaseExtensions.cs
+++ b/SabreTools.Metadata/DictionaryBaseExtensions.cs
@@ -389,10 +389,18 @@ namespace SabreTools.Metadata
}
else if (self is Video selfVideo && other is Video otherVideo)
{
+ if (selfVideo.AspectX != otherVideo.AspectX)
+ return false;
+ if (selfVideo.AspectY != otherVideo.AspectY)
+ return false;
+ if (selfVideo.Height != otherVideo.Height)
+ return false;
if (selfVideo.Refresh != otherVideo.Refresh)
return false;
if (selfVideo.Screen != otherVideo.Screen)
return false;
+ if (selfVideo.Width != otherVideo.Width)
+ return false;
}
// Check all pairs to see if they're equal
diff --git a/SabreTools.Serialization.CrossModel.Test/ClrMameProTests.cs b/SabreTools.Serialization.CrossModel.Test/ClrMameProTests.cs
index 17a6c784..33e0edfe 100644
--- a/SabreTools.Serialization.CrossModel.Test/ClrMameProTests.cs
+++ b/SabreTools.Serialization.CrossModel.Test/ClrMameProTests.cs
@@ -166,10 +166,10 @@ namespace SabreTools.Serialization.CrossModel.Test
{
Screen = Data.Models.Metadata.DisplayType.Vector,
Orientation = "XXXXXX",
- X = "XXXXXX",
- Y = "XXXXXX",
- AspectX = "XXXXXX",
- AspectY = "XXXXXX",
+ X = 12345,
+ Y = 12345,
+ AspectX = 12345,
+ AspectY = 12345,
Freq = 123.45,
};
@@ -453,10 +453,10 @@ namespace SabreTools.Serialization.CrossModel.Test
Assert.NotNull(video);
Assert.Equal(Data.Models.Metadata.DisplayType.Vector, video.Screen);
Assert.Equal("XXXXXX", video.Orientation);
- Assert.Equal("XXXXXX", video.X);
- Assert.Equal("XXXXXX", video.Y);
- Assert.Equal("XXXXXX", video.AspectX);
- Assert.Equal("XXXXXX", video.AspectY);
+ Assert.Equal(12345, video.X);
+ Assert.Equal(12345, video.Y);
+ Assert.Equal(12345, video.AspectX);
+ Assert.Equal(12345, video.AspectY);
Assert.Equal(123.45, video.Freq);
}
diff --git a/SabreTools.Serialization.CrossModel.Test/ListxmlTests.cs b/SabreTools.Serialization.CrossModel.Test/ListxmlTests.cs
index 1cc288df..43e7a4a7 100644
--- a/SabreTools.Serialization.CrossModel.Test/ListxmlTests.cs
+++ b/SabreTools.Serialization.CrossModel.Test/ListxmlTests.cs
@@ -140,10 +140,10 @@ namespace SabreTools.Serialization.CrossModel.Test
{
Screen = Data.Models.Metadata.DisplayType.Vector,
Orientation = "XXXXXX",
- Width = "XXXXXX",
- Height = "XXXXXX",
- AspectX = "XXXXXX",
- AspectY = "XXXXXX",
+ Width = 12345,
+ Height = 12345,
+ AspectX = 12345,
+ AspectY = 12345,
Refresh = 123.45,
};
@@ -576,10 +576,10 @@ namespace SabreTools.Serialization.CrossModel.Test
Assert.NotNull(video);
Assert.Equal(Data.Models.Metadata.DisplayType.Vector, video.Screen);
Assert.Equal("XXXXXX", video.Orientation);
- Assert.Equal("XXXXXX", video.Width);
- Assert.Equal("XXXXXX", video.Height);
- Assert.Equal("XXXXXX", video.AspectX);
- Assert.Equal("XXXXXX", video.AspectY);
+ Assert.Equal(12345, video.Width);
+ Assert.Equal(12345, video.Height);
+ Assert.Equal(12345, video.AspectX);
+ Assert.Equal(12345, video.AspectY);
Assert.Equal(123.45, video.Refresh);
}
diff --git a/SabreTools.Serialization.CrossModel.Test/M1Tests.cs b/SabreTools.Serialization.CrossModel.Test/M1Tests.cs
index 620f47cd..f867f8b0 100644
--- a/SabreTools.Serialization.CrossModel.Test/M1Tests.cs
+++ b/SabreTools.Serialization.CrossModel.Test/M1Tests.cs
@@ -136,10 +136,10 @@ namespace SabreTools.Serialization.CrossModel.Test
{
Screen = Data.Models.Metadata.DisplayType.Vector,
Orientation = "XXXXXX",
- Width = "XXXXXX",
- Height = "XXXXXX",
- AspectX = "XXXXXX",
- AspectY = "XXXXXX",
+ Width = 12345,
+ Height = 12345,
+ AspectX = 12345,
+ AspectY = 12345,
Refresh = 123.45,
};
@@ -570,10 +570,10 @@ namespace SabreTools.Serialization.CrossModel.Test
Assert.NotNull(video);
Assert.Equal(Data.Models.Metadata.DisplayType.Vector, video.Screen);
Assert.Equal("XXXXXX", video.Orientation);
- Assert.Equal("XXXXXX", video.Width);
- Assert.Equal("XXXXXX", video.Height);
- Assert.Equal("XXXXXX", video.AspectX);
- Assert.Equal("XXXXXX", video.AspectY);
+ Assert.Equal(12345, video.Width);
+ Assert.Equal(12345, video.Height);
+ Assert.Equal(12345, video.AspectX);
+ Assert.Equal(12345, video.AspectY);
Assert.Equal(123.45, video.Refresh);
}
diff --git a/SabreTools.Serialization.CrossModel.Test/MessTests.cs b/SabreTools.Serialization.CrossModel.Test/MessTests.cs
index 01861dfd..acdfa589 100644
--- a/SabreTools.Serialization.CrossModel.Test/MessTests.cs
+++ b/SabreTools.Serialization.CrossModel.Test/MessTests.cs
@@ -136,10 +136,10 @@ namespace SabreTools.Serialization.CrossModel.Test
{
Screen = Data.Models.Metadata.DisplayType.Vector,
Orientation = "XXXXXX",
- Width = "XXXXXX",
- Height = "XXXXXX",
- AspectX = "XXXXXX",
- AspectY = "XXXXXX",
+ Width = 12345,
+ Height = 12345,
+ AspectX = 12345,
+ AspectY = 12345,
Refresh = 123.45,
};
@@ -570,10 +570,10 @@ namespace SabreTools.Serialization.CrossModel.Test
Assert.NotNull(video);
Assert.Equal(Data.Models.Metadata.DisplayType.Vector, video.Screen);
Assert.Equal("XXXXXX", video.Orientation);
- Assert.Equal("XXXXXX", video.Width);
- Assert.Equal("XXXXXX", video.Height);
- Assert.Equal("XXXXXX", video.AspectX);
- Assert.Equal("XXXXXX", video.AspectY);
+ Assert.Equal(12345, video.Width);
+ Assert.Equal(12345, video.Height);
+ Assert.Equal(12345, video.AspectX);
+ Assert.Equal(12345, video.AspectY);
Assert.Equal(123.45, video.Refresh);
}
diff --git a/SabreTools.Serialization.CrossModel/ClrMamePro.Deserializer.cs b/SabreTools.Serialization.CrossModel/ClrMamePro.Deserializer.cs
index b08037f3..06bb0beb 100644
--- a/SabreTools.Serialization.CrossModel/ClrMamePro.Deserializer.cs
+++ b/SabreTools.Serialization.CrossModel/ClrMamePro.Deserializer.cs
@@ -342,10 +342,10 @@ namespace SabreTools.Serialization.CrossModel
{
Screen = item.Screen,
Orientation = item.ReadString(Data.Models.Metadata.Video.OrientationKey),
- X = item.ReadString(Data.Models.Metadata.Video.WidthKey),
- Y = item.ReadString(Data.Models.Metadata.Video.HeightKey),
- AspectX = item.ReadString(Data.Models.Metadata.Video.AspectXKey),
- AspectY = item.ReadString(Data.Models.Metadata.Video.AspectYKey),
+ X = item.Width,
+ Y = item.Height,
+ AspectX = item.AspectX,
+ AspectY = item.AspectY,
Freq = item.Refresh,
};
return video;
diff --git a/SabreTools.Serialization.CrossModel/ClrMamePro.Serializer.cs b/SabreTools.Serialization.CrossModel/ClrMamePro.Serializer.cs
index dd867657..7ef9f37c 100644
--- a/SabreTools.Serialization.CrossModel/ClrMamePro.Serializer.cs
+++ b/SabreTools.Serialization.CrossModel/ClrMamePro.Serializer.cs
@@ -355,10 +355,10 @@ namespace SabreTools.Serialization.CrossModel
{
Screen = item.Screen,
[Data.Models.Metadata.Video.OrientationKey] = item.Orientation,
- [Data.Models.Metadata.Video.WidthKey] = item.X,
- [Data.Models.Metadata.Video.HeightKey] = item.Y,
- [Data.Models.Metadata.Video.AspectXKey] = item.AspectX,
- [Data.Models.Metadata.Video.AspectYKey] = item.AspectY,
+ Width = item.X,
+ Height = item.Y,
+ AspectX = item.AspectX,
+ AspectY = item.AspectY,
Refresh = item.Freq,
};
return video;
diff --git a/SabreTools.Serialization.CrossModel/Listxml.Deserializer.cs b/SabreTools.Serialization.CrossModel/Listxml.Deserializer.cs
index 56154c51..308907e0 100644
--- a/SabreTools.Serialization.CrossModel/Listxml.Deserializer.cs
+++ b/SabreTools.Serialization.CrossModel/Listxml.Deserializer.cs
@@ -660,10 +660,10 @@ namespace SabreTools.Serialization.CrossModel
{
Screen = item.Screen,
Orientation = item.ReadString(Data.Models.Metadata.Video.OrientationKey),
- Width = item.ReadString(Data.Models.Metadata.Video.WidthKey),
- Height = item.ReadString(Data.Models.Metadata.Video.HeightKey),
- AspectX = item.ReadString(Data.Models.Metadata.Video.AspectXKey),
- AspectY = item.ReadString(Data.Models.Metadata.Video.AspectYKey),
+ Width = item.Width,
+ Height = item.Height,
+ AspectX = item.AspectX,
+ AspectY = item.AspectY,
Refresh = item.Refresh,
};
return video;
diff --git a/SabreTools.Serialization.CrossModel/Listxml.Serializer.cs b/SabreTools.Serialization.CrossModel/Listxml.Serializer.cs
index 3304c5e7..07c2156e 100644
--- a/SabreTools.Serialization.CrossModel/Listxml.Serializer.cs
+++ b/SabreTools.Serialization.CrossModel/Listxml.Serializer.cs
@@ -701,10 +701,10 @@ namespace SabreTools.Serialization.CrossModel
{
Screen = item.Screen,
[Data.Models.Metadata.Video.OrientationKey] = item.Orientation,
- [Data.Models.Metadata.Video.WidthKey] = item.Width,
- [Data.Models.Metadata.Video.HeightKey] = item.Height,
- [Data.Models.Metadata.Video.AspectXKey] = item.AspectX,
- [Data.Models.Metadata.Video.AspectYKey] = item.AspectY,
+ Width = item.Width,
+ Height = item.Height,
+ AspectX = item.AspectX,
+ AspectY = item.AspectY,
Refresh = item.Refresh,
};
return video;
diff --git a/SabreTools.Serialization.Readers.Test/ClrMameProTests.cs b/SabreTools.Serialization.Readers.Test/ClrMameProTests.cs
index b2eb58de..da040978 100644
--- a/SabreTools.Serialization.Readers.Test/ClrMameProTests.cs
+++ b/SabreTools.Serialization.Readers.Test/ClrMameProTests.cs
@@ -283,10 +283,10 @@ namespace SabreTools.Serialization.Readers.Test
{
Screen = Data.Models.Metadata.DisplayType.Vector,
Orientation = "XXXXXX",
- X = "XXXXXX",
- Y = "XXXXXX",
- AspectX = "XXXXXX",
- AspectY = "XXXXXX",
+ X = 12345,
+ Y = 12345,
+ AspectX = 12345,
+ AspectY = 12345,
Freq = 123.45,
};
@@ -570,10 +570,10 @@ namespace SabreTools.Serialization.Readers.Test
Assert.NotNull(video);
Assert.Equal(Data.Models.Metadata.DisplayType.Vector, video.Screen);
Assert.Equal("XXXXXX", video.Orientation);
- Assert.Equal("XXXXXX", video.X);
- Assert.Equal("XXXXXX", video.Y);
- Assert.Equal("XXXXXX", video.AspectX);
- Assert.Equal("XXXXXX", video.AspectY);
+ Assert.Equal(12345, video.X);
+ Assert.Equal(12345, video.Y);
+ Assert.Equal(12345, video.AspectX);
+ Assert.Equal(12345, video.AspectY);
Assert.Equal(123.45, video.Freq);
}
diff --git a/SabreTools.Serialization.Readers.Test/ListxmlTests.cs b/SabreTools.Serialization.Readers.Test/ListxmlTests.cs
index ebcc67fa..aa8f37ec 100644
--- a/SabreTools.Serialization.Readers.Test/ListxmlTests.cs
+++ b/SabreTools.Serialization.Readers.Test/ListxmlTests.cs
@@ -207,10 +207,10 @@ namespace SabreTools.Serialization.Readers.Test
{
Screen = Data.Models.Metadata.DisplayType.Vector,
Orientation = "XXXXXX",
- Width = "XXXXXX",
- Height = "XXXXXX",
- AspectX = "XXXXXX",
- AspectY = "XXXXXX",
+ Width = 12345,
+ Height = 12345,
+ AspectX = 12345,
+ AspectY = 12345,
Refresh = 123.45,
};
@@ -643,10 +643,10 @@ namespace SabreTools.Serialization.Readers.Test
Assert.NotNull(video);
Assert.Equal(Data.Models.Metadata.DisplayType.Vector, video.Screen);
Assert.Equal("XXXXXX", video.Orientation);
- Assert.Equal("XXXXXX", video.Width);
- Assert.Equal("XXXXXX", video.Height);
- Assert.Equal("XXXXXX", video.AspectX);
- Assert.Equal("XXXXXX", video.AspectY);
+ Assert.Equal(12345, video.Width);
+ Assert.Equal(12345, video.Height);
+ Assert.Equal(12345, video.AspectX);
+ Assert.Equal(12345, video.AspectY);
Assert.Equal(123.45, video.Refresh);
}
diff --git a/SabreTools.Serialization.Readers.Test/M1Tests.cs b/SabreTools.Serialization.Readers.Test/M1Tests.cs
index 9e905028..282d4489 100644
--- a/SabreTools.Serialization.Readers.Test/M1Tests.cs
+++ b/SabreTools.Serialization.Readers.Test/M1Tests.cs
@@ -203,10 +203,10 @@ namespace SabreTools.Serialization.Readers.Test
{
Screen = Data.Models.Metadata.DisplayType.Vector,
Orientation = "XXXXXX",
- Width = "XXXXXX",
- Height = "XXXXXX",
- AspectX = "XXXXXX",
- AspectY = "XXXXXX",
+ Width = 12345,
+ Height = 12345,
+ AspectX = 12345,
+ AspectY = 12345,
Refresh = 123.45,
};
@@ -637,10 +637,10 @@ namespace SabreTools.Serialization.Readers.Test
Assert.NotNull(video);
Assert.Equal(Data.Models.Metadata.DisplayType.Vector, video.Screen);
Assert.Equal("XXXXXX", video.Orientation);
- Assert.Equal("XXXXXX", video.Width);
- Assert.Equal("XXXXXX", video.Height);
- Assert.Equal("XXXXXX", video.AspectX);
- Assert.Equal("XXXXXX", video.AspectY);
+ Assert.Equal(12345, video.Width);
+ Assert.Equal(12345, video.Height);
+ Assert.Equal(12345, video.AspectX);
+ Assert.Equal(12345, video.AspectY);
Assert.Equal(123.45, video.Refresh);
}
diff --git a/SabreTools.Serialization.Readers.Test/MessTests.cs b/SabreTools.Serialization.Readers.Test/MessTests.cs
index 77389109..28ad0f7f 100644
--- a/SabreTools.Serialization.Readers.Test/MessTests.cs
+++ b/SabreTools.Serialization.Readers.Test/MessTests.cs
@@ -203,10 +203,10 @@ namespace SabreTools.Serialization.Readers.Test
{
Screen = Data.Models.Metadata.DisplayType.Vector,
Orientation = "XXXXXX",
- Width = "XXXXXX",
- Height = "XXXXXX",
- AspectX = "XXXXXX",
- AspectY = "XXXXXX",
+ Width = 12345,
+ Height = 12345,
+ AspectX = 12345,
+ AspectY = 12345,
Refresh = 123.45,
};
@@ -637,10 +637,10 @@ namespace SabreTools.Serialization.Readers.Test
Assert.NotNull(video);
Assert.Equal(Data.Models.Metadata.DisplayType.Vector, video.Screen);
Assert.Equal("XXXXXX", video.Orientation);
- Assert.Equal("XXXXXX", video.Width);
- Assert.Equal("XXXXXX", video.Height);
- Assert.Equal("XXXXXX", video.AspectX);
- Assert.Equal("XXXXXX", video.AspectY);
+ Assert.Equal(12345, video.Width);
+ Assert.Equal(12345, video.Height);
+ Assert.Equal(12345, video.AspectX);
+ Assert.Equal(12345, video.AspectY);
Assert.Equal(123.45, video.Refresh);
}
diff --git a/SabreTools.Serialization.Readers/ClrMamePro.cs b/SabreTools.Serialization.Readers/ClrMamePro.cs
index 6227cef7..110d9514 100644
--- a/SabreTools.Serialization.Readers/ClrMamePro.cs
+++ b/SabreTools.Serialization.Readers/ClrMamePro.cs
@@ -809,16 +809,16 @@ namespace SabreTools.Serialization.Readers
video.Orientation = kvp.Value;
break;
case "x":
- video.X = kvp.Value;
+ video.X = NumberHelper.ConvertToInt64(kvp.Value);
break;
case "y":
- video.Y = kvp.Value;
+ video.Y = NumberHelper.ConvertToInt64(kvp.Value);
break;
case "aspectx":
- video.AspectX = kvp.Value;
+ video.AspectX = NumberHelper.ConvertToInt64(kvp.Value);
break;
case "aspecty":
- video.AspectY = kvp.Value;
+ video.AspectY = NumberHelper.ConvertToInt64(kvp.Value);
break;
case "freq":
video.Freq = NumberHelper.ConvertToDouble(kvp.Value);
diff --git a/SabreTools.Serialization.Readers/Listxml.cs b/SabreTools.Serialization.Readers/Listxml.cs
index eba1a94e..3c0531c0 100644
--- a/SabreTools.Serialization.Readers/Listxml.cs
+++ b/SabreTools.Serialization.Readers/Listxml.cs
@@ -1177,10 +1177,10 @@ namespace SabreTools.Serialization.Readers
obj.Screen = reader.GetAttribute("screen").AsDisplayType();
obj.Orientation = reader.GetAttribute("orientation");
- obj.Width = reader.GetAttribute("width");
- obj.Height = reader.GetAttribute("height");
- obj.AspectX = reader.GetAttribute("aspectx");
- obj.AspectY = reader.GetAttribute("aspecty");
+ obj.Width = NumberHelper.ConvertToInt64(reader.GetAttribute("width"));
+ obj.Height = NumberHelper.ConvertToInt64(reader.GetAttribute("height"));
+ obj.AspectX = NumberHelper.ConvertToInt64(reader.GetAttribute("aspectx"));
+ obj.AspectY = NumberHelper.ConvertToInt64(reader.GetAttribute("aspecty"));
obj.Refresh = NumberHelper.ConvertToDouble(reader.GetAttribute("refresh"));
return obj;
diff --git a/SabreTools.Serialization.Readers/M1.cs b/SabreTools.Serialization.Readers/M1.cs
index fb511c22..8cd453f9 100644
--- a/SabreTools.Serialization.Readers/M1.cs
+++ b/SabreTools.Serialization.Readers/M1.cs
@@ -1175,10 +1175,10 @@ namespace SabreTools.Serialization.Readers
obj.Screen = reader.GetAttribute("screen").AsDisplayType();
obj.Orientation = reader.GetAttribute("orientation");
- obj.Width = reader.GetAttribute("width");
- obj.Height = reader.GetAttribute("height");
- obj.AspectX = reader.GetAttribute("aspectx");
- obj.AspectY = reader.GetAttribute("aspecty");
+ obj.Width = NumberHelper.ConvertToInt64(reader.GetAttribute("width"));
+ obj.Height = NumberHelper.ConvertToInt64(reader.GetAttribute("height"));
+ obj.AspectX = NumberHelper.ConvertToInt64(reader.GetAttribute("aspectx"));
+ obj.AspectY = NumberHelper.ConvertToInt64(reader.GetAttribute("aspecty"));
obj.Refresh = NumberHelper.ConvertToDouble(reader.GetAttribute("refresh"));
return obj;
diff --git a/SabreTools.Serialization.Readers/Mess.cs b/SabreTools.Serialization.Readers/Mess.cs
index 85c441eb..9e6a4f78 100644
--- a/SabreTools.Serialization.Readers/Mess.cs
+++ b/SabreTools.Serialization.Readers/Mess.cs
@@ -1175,10 +1175,10 @@ namespace SabreTools.Serialization.Readers
obj.Screen = reader.GetAttribute("screen").AsDisplayType();
obj.Orientation = reader.GetAttribute("orientation");
- obj.Width = reader.GetAttribute("width");
- obj.Height = reader.GetAttribute("height");
- obj.AspectX = reader.GetAttribute("aspectx");
- obj.AspectY = reader.GetAttribute("aspecty");
+ obj.Width = NumberHelper.ConvertToInt64(reader.GetAttribute("width"));
+ obj.Height = NumberHelper.ConvertToInt64(reader.GetAttribute("height"));
+ obj.AspectX = NumberHelper.ConvertToInt64(reader.GetAttribute("aspectx"));
+ obj.AspectY = NumberHelper.ConvertToInt64(reader.GetAttribute("aspecty"));
obj.Refresh = NumberHelper.ConvertToDouble(reader.GetAttribute("refresh"));
return obj;
diff --git a/SabreTools.Serialization.Writers/ClrMamePro.cs b/SabreTools.Serialization.Writers/ClrMamePro.cs
index 392f8627..c218515e 100644
--- a/SabreTools.Serialization.Writers/ClrMamePro.cs
+++ b/SabreTools.Serialization.Writers/ClrMamePro.cs
@@ -414,10 +414,10 @@ namespace SabreTools.Serialization.Writers
writer.WriteStartElement("video");
writer.WriteRequiredAttributeString("screen", video.Screen?.AsStringValue(), throwOnError: true);
writer.WriteRequiredAttributeString("orientation", video.Orientation, throwOnError: true);
- writer.WriteOptionalAttributeString("x", video.X);
- writer.WriteOptionalAttributeString("y", video.Y);
- writer.WriteOptionalAttributeString("aspectx", video.AspectX);
- writer.WriteOptionalAttributeString("aspecty", video.AspectY);
+ writer.WriteOptionalAttributeString("x", video.X?.ToString());
+ writer.WriteOptionalAttributeString("y", video.Y.ToString());
+ writer.WriteOptionalAttributeString("aspectx", video.AspectX.ToString());
+ writer.WriteOptionalAttributeString("aspecty", video.AspectY.ToString());
writer.WriteOptionalAttributeString("freq", video.Freq?.ToString("0.000000"));
writer.WriteEndElement(); // video
}
diff --git a/SabreTools.Serialization.Writers/Listxml.cs b/SabreTools.Serialization.Writers/Listxml.cs
index 3c534975..d9d01652 100644
--- a/SabreTools.Serialization.Writers/Listxml.cs
+++ b/SabreTools.Serialization.Writers/Listxml.cs
@@ -839,10 +839,10 @@ namespace SabreTools.Serialization.Writers
writer.WriteRequiredAttributeString("screen", obj.Screen?.AsStringValue());
writer.WriteRequiredAttributeString("orientation", obj.Orientation);
- writer.WriteOptionalAttributeString("width", obj.Width);
- writer.WriteOptionalAttributeString("height", obj.Height);
- writer.WriteOptionalAttributeString("aspectx", obj.AspectX);
- writer.WriteOptionalAttributeString("aspecty", obj.AspectY);
+ writer.WriteOptionalAttributeString("width", obj.Width.ToString());
+ writer.WriteOptionalAttributeString("height", obj.Height.ToString());
+ writer.WriteOptionalAttributeString("aspectx", obj.AspectX.ToString());
+ writer.WriteOptionalAttributeString("aspecty", obj.AspectY.ToString());
writer.WriteRequiredAttributeString("refresh", obj.Refresh?.ToString("0.000000"));
writer.WriteEndElement();
diff --git a/SabreTools.Serialization.Writers/M1.cs b/SabreTools.Serialization.Writers/M1.cs
index a2a53f40..fa2e3fe6 100644
--- a/SabreTools.Serialization.Writers/M1.cs
+++ b/SabreTools.Serialization.Writers/M1.cs
@@ -837,10 +837,10 @@ namespace SabreTools.Serialization.Writers
writer.WriteRequiredAttributeString("screen", obj.Screen?.AsStringValue());
writer.WriteRequiredAttributeString("orientation", obj.Orientation);
- writer.WriteOptionalAttributeString("width", obj.Width);
- writer.WriteOptionalAttributeString("height", obj.Height);
- writer.WriteOptionalAttributeString("aspectx", obj.AspectX);
- writer.WriteOptionalAttributeString("aspecty", obj.AspectY);
+ writer.WriteOptionalAttributeString("width", obj.Width.ToString());
+ writer.WriteOptionalAttributeString("height", obj.Height.ToString());
+ writer.WriteOptionalAttributeString("aspectx", obj.AspectX.ToString());
+ writer.WriteOptionalAttributeString("aspecty", obj.AspectY.ToString());
writer.WriteRequiredAttributeString("refresh", obj.Refresh?.ToString("0.000000"));
writer.WriteEndElement();
diff --git a/SabreTools.Serialization.Writers/Mess.cs b/SabreTools.Serialization.Writers/Mess.cs
index eceae2c1..a924071e 100644
--- a/SabreTools.Serialization.Writers/Mess.cs
+++ b/SabreTools.Serialization.Writers/Mess.cs
@@ -837,10 +837,10 @@ namespace SabreTools.Serialization.Writers
writer.WriteRequiredAttributeString("screen", obj.Screen?.AsStringValue());
writer.WriteRequiredAttributeString("orientation", obj.Orientation);
- writer.WriteOptionalAttributeString("width", obj.Width);
- writer.WriteOptionalAttributeString("height", obj.Height);
- writer.WriteOptionalAttributeString("aspectx", obj.AspectX);
- writer.WriteOptionalAttributeString("aspecty", obj.AspectY);
+ writer.WriteOptionalAttributeString("width", obj.Width.ToString());
+ writer.WriteOptionalAttributeString("height", obj.Height.ToString());
+ writer.WriteOptionalAttributeString("aspectx", obj.AspectX.ToString());
+ writer.WriteOptionalAttributeString("aspecty", obj.AspectY.ToString());
writer.WriteRequiredAttributeString("refresh", obj.Refresh?.ToString("0.000000"));
writer.WriteEndElement();