diff --git a/SabreTools.Data.Extensions/MetadataExtensions.cs b/SabreTools.Data.Extensions/MetadataExtensions.cs
index cfdcb275..f299e141 100644
--- a/SabreTools.Data.Extensions/MetadataExtensions.cs
+++ b/SabreTools.Data.Extensions/MetadataExtensions.cs
@@ -234,6 +234,7 @@ namespace SabreTools.Data.Extensions
{
cloneDisplay.DisplayType = selfDisplay.DisplayType;
cloneDisplay.FlipX = selfDisplay.FlipX;
+ cloneDisplay.Refresh = selfDisplay.Refresh;
cloneDisplay.Tag = selfDisplay.Tag;
}
else if (self is Driver selfDriver && clone is Driver cloneDriver)
@@ -377,6 +378,7 @@ namespace SabreTools.Data.Extensions
}
else if (self is Video selfVideo && clone is Video cloneVideo)
{
+ cloneVideo.Refresh = selfVideo.Refresh;
cloneVideo.Screen = selfVideo.Screen;
}
diff --git a/SabreTools.Data.Models/ClrMamePro/Video.cs b/SabreTools.Data.Models/ClrMamePro/Video.cs
index 2fd3fe5a..1cfec8b7 100644
--- a/SabreTools.Data.Models/ClrMamePro/Video.cs
+++ b/SabreTools.Data.Models/ClrMamePro/Video.cs
@@ -27,6 +27,6 @@ namespace SabreTools.Data.Models.ClrMamePro
public string? AspectY { get; set; }
/// freq, Numeric?
- public string? Freq { get; set; }
+ public double? Freq { get; set; }
}
}
diff --git a/SabreTools.Data.Models/Listxml/Display.cs b/SabreTools.Data.Models/Listxml/Display.cs
index 5f873dcd..92994746 100644
--- a/SabreTools.Data.Models/Listxml/Display.cs
+++ b/SabreTools.Data.Models/Listxml/Display.cs
@@ -31,10 +31,9 @@ namespace SabreTools.Data.Models.Listxml
[XmlAttribute("height")]
public string? Height { get; set; }
- /// Numeric
[Required]
[XmlAttribute("refresh")]
- public string? Refresh { get; set; }
+ public double? Refresh { get; set; }
/// Numeric
[XmlAttribute("pixclock")]
diff --git a/SabreTools.Data.Models/Listxml/Video.cs b/SabreTools.Data.Models/Listxml/Video.cs
index 8db62b97..015a1b90 100644
--- a/SabreTools.Data.Models/Listxml/Video.cs
+++ b/SabreTools.Data.Models/Listxml/Video.cs
@@ -35,6 +35,6 @@ namespace SabreTools.Data.Models.Listxml
/// Numeric
[XmlAttribute("refresh")]
- public string? Refresh { get; set; }
+ public double? Refresh { get; set; }
}
}
diff --git a/SabreTools.Data.Models/Metadata/Display.cs b/SabreTools.Data.Models/Metadata/Display.cs
index c9e8d06e..58586060 100644
--- a/SabreTools.Data.Models/Metadata/Display.cs
+++ b/SabreTools.Data.Models/Metadata/Display.cs
@@ -14,6 +14,8 @@ namespace SabreTools.Data.Models.Metadata
/// (yes|no) "no"
public bool? FlipX { get; set; }
+ public double? Refresh { get; set; }
+
public string? Tag { get; set; }
#endregion
@@ -35,9 +37,6 @@ namespace SabreTools.Data.Models.Metadata
/// long
public const string PixClockKey = "pixclock";
- /// double
- public const string RefreshKey = "refresh";
-
/// (0|90|180|270)
/// TODO: Convert to enum
public const string RotateKey = "rotate";
diff --git a/SabreTools.Data.Models/Metadata/Video.cs b/SabreTools.Data.Models/Metadata/Video.cs
index 39754186..421eb4c7 100644
--- a/SabreTools.Data.Models/Metadata/Video.cs
+++ b/SabreTools.Data.Models/Metadata/Video.cs
@@ -8,6 +8,9 @@ namespace SabreTools.Data.Models.Metadata
{
#region Properties
+ /// Originally "freq"
+ public double? Refresh { get; set; }
+
/// (raster|vector)
public DisplayType? Screen { get; set; }
@@ -27,9 +30,6 @@ namespace SabreTools.Data.Models.Metadata
/// (vertical|horizontal)
public const string OrientationKey = "orientation";
- /// double; Originally "freq"
- public const string RefreshKey = "refresh";
-
/// long; Originally "x"
public const string WidthKey = "width";
diff --git a/SabreTools.Metadata.DatFiles.Test/DatFileTests.FromMetadata.cs b/SabreTools.Metadata.DatFiles.Test/DatFileTests.FromMetadata.cs
index 09812fb1..961c3976 100644
--- a/SabreTools.Metadata.DatFiles.Test/DatFileTests.FromMetadata.cs
+++ b/SabreTools.Metadata.DatFiles.Test/DatFileTests.FromMetadata.cs
@@ -582,7 +582,7 @@ namespace SabreTools.Metadata.DatFiles.Test
[Data.Models.Metadata.Display.HeightKey] = 12345L,
[Data.Models.Metadata.Display.HTotalKey] = 12345L,
[Data.Models.Metadata.Display.PixClockKey] = 12345L,
- [Data.Models.Metadata.Display.RefreshKey] = 12345L,
+ Refresh = 123.45,
[Data.Models.Metadata.Display.RotateKey] = 90,
Tag = "tag",
DisplayType = Data.Models.Metadata.DisplayType.Vector,
@@ -1025,7 +1025,7 @@ namespace SabreTools.Metadata.DatFiles.Test
[Data.Models.Metadata.Video.AspectYKey] = 12345L,
[Data.Models.Metadata.Video.HeightKey] = 12345L,
[Data.Models.Metadata.Video.OrientationKey] = "vertical",
- [Data.Models.Metadata.Video.RefreshKey] = 12345L,
+ Refresh = 123.45,
Screen = Data.Models.Metadata.DisplayType.Vector,
[Data.Models.Metadata.Video.WidthKey] = 12345L,
};
@@ -1356,7 +1356,7 @@ namespace SabreTools.Metadata.DatFiles.Test
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.ReadLong(Data.Models.Metadata.Display.RefreshKey));
+ 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);
@@ -1665,7 +1665,7 @@ namespace SabreTools.Metadata.DatFiles.Test
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.ReadLong(Data.Models.Metadata.Display.RefreshKey));
+ Assert.Equal(123.45, display.Refresh);
Assert.Equal(12345L, display.ReadLong(Data.Models.Metadata.Display.WidthKey));
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 f286010a..8bf51cf1 100644
--- a/SabreTools.Metadata.DatFiles.Test/DatFileTests.ToMetadata.cs
+++ b/SabreTools.Metadata.DatFiles.Test/DatFileTests.ToMetadata.cs
@@ -873,7 +873,7 @@ namespace SabreTools.Metadata.DatFiles.Test
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.ReadLong(Data.Models.Metadata.Display.RefreshKey));
+ 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);
@@ -1258,7 +1258,7 @@ namespace SabreTools.Metadata.DatFiles.Test
Assert.Equal(12345, video.ReadLong(Data.Models.Metadata.Video.AspectYKey));
Assert.Equal(12345, video.ReadLong(Data.Models.Metadata.Video.HeightKey));
Assert.Equal("vertical", video.ReadString(Data.Models.Metadata.Video.OrientationKey));
- Assert.Equal(12345, video.ReadLong(Data.Models.Metadata.Video.RefreshKey));
+ 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));
}
diff --git a/SabreTools.Metadata.DatFiles.Test/FormatsTests.cs b/SabreTools.Metadata.DatFiles.Test/FormatsTests.cs
index 8ebb40fb..25af40d0 100644
--- a/SabreTools.Metadata.DatFiles.Test/FormatsTests.cs
+++ b/SabreTools.Metadata.DatFiles.Test/FormatsTests.cs
@@ -880,7 +880,7 @@ namespace SabreTools.Metadata.DatFiles.Test
Assert.NotNull(actual);
Assert.True(actual.SequenceEqual([
nameof(Data.Models.Metadata.Display.DisplayType),
- Data.Models.Metadata.Display.RefreshKey,
+ nameof(Data.Models.Metadata.Display.Refresh),
]));
}
diff --git a/SabreTools.Metadata.DatFiles/DatFile.ToMetadata.cs b/SabreTools.Metadata.DatFiles/DatFile.ToMetadata.cs
index 59a833ec..97a9d6b4 100644
--- a/SabreTools.Metadata.DatFiles/DatFile.ToMetadata.cs
+++ b/SabreTools.Metadata.DatFiles/DatFile.ToMetadata.cs
@@ -936,7 +936,7 @@ 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.RefreshKey] = displayItem.ReadDouble(Data.Models.Metadata.Display.RefreshKey).ToString(),
+ Refresh = displayItem.Refresh,
Screen = displayItem.DisplayType,
[Data.Models.Metadata.Video.WidthKey] = displayItem.ReadLong(Data.Models.Metadata.Display.WidthKey).ToString()
};
diff --git a/SabreTools.Metadata.DatFiles/Formats/Listxml.cs b/SabreTools.Metadata.DatFiles/Formats/Listxml.cs
index 711ea24c..9f902b1a 100644
--- a/SabreTools.Metadata.DatFiles/Formats/Listxml.cs
+++ b/SabreTools.Metadata.DatFiles/Formats/Listxml.cs
@@ -310,8 +310,8 @@ namespace SabreTools.Metadata.DatFiles.Formats
case Display display:
if (display.DisplayType is null)
missingFields.Add(nameof(Data.Models.Metadata.Display.DisplayType));
- if (display.ReadDouble(Data.Models.Metadata.Display.RefreshKey) is null)
- missingFields.Add(Data.Models.Metadata.Display.RefreshKey);
+ if (display.Refresh is null)
+ missingFields.Add(nameof(Data.Models.Metadata.Display.Refresh));
break;
case Sound sound:
diff --git a/SabreTools.Metadata.DatItems/Formats/Display.cs b/SabreTools.Metadata.DatItems/Formats/Display.cs
index e83ac235..fbdfe243 100644
--- a/SabreTools.Metadata.DatItems/Formats/Display.cs
+++ b/SabreTools.Metadata.DatItems/Formats/Display.cs
@@ -29,6 +29,12 @@ namespace SabreTools.Metadata.DatItems.Formats
public override Data.Models.Metadata.ItemType ItemType
=> Data.Models.Metadata.ItemType.Display;
+ public double? Refresh
+ {
+ get => (_internal as Data.Models.Metadata.Display)?.Refresh;
+ set => (_internal as Data.Models.Metadata.Display)?.Refresh = value;
+ }
+
public string? Tag
{
get => (_internal as Data.Models.Metadata.Display)?.Tag;
@@ -64,10 +70,6 @@ namespace SabreTools.Metadata.DatItems.Formats
if (pixClock is not null)
Write(Data.Models.Metadata.Display.PixClockKey, pixClock.ToString());
- double? refresh = ReadDouble(Data.Models.Metadata.Display.RefreshKey);
- if (refresh is not null)
- Write(Data.Models.Metadata.Display.RefreshKey, refresh.ToString());
-
long? rotate = ReadLong(Data.Models.Metadata.Display.RotateKey);
if (rotate is not null)
Write(Data.Models.Metadata.Display.RotateKey, rotate.ToString());
@@ -102,7 +104,7 @@ namespace SabreTools.Metadata.DatItems.Formats
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)));
- Write(Data.Models.Metadata.Display.RefreshKey, NumberHelper.ConvertToDouble(item.ReadString(Data.Models.Metadata.Video.RefreshKey)));
+ Refresh = item.Refresh;
Write(Data.Models.Metadata.Display.WidthKey, NumberHelper.ConvertToInt64(item.ReadString(Data.Models.Metadata.Video.WidthKey)));
switch (item.ReadString(Data.Models.Metadata.Video.OrientationKey))
@@ -131,10 +133,6 @@ namespace SabreTools.Metadata.DatItems.Formats
if (height is not null)
Write(Data.Models.Metadata.Display.HeightKey, height.ToString());
- double? refresh = ReadDouble(Data.Models.Metadata.Video.RefreshKey);
- if (refresh is not null)
- Write(Data.Models.Metadata.Display.RefreshKey, refresh.ToString());
-
long? width = ReadLong(Data.Models.Metadata.Video.WidthKey);
if (width is not null)
Write(Data.Models.Metadata.Display.WidthKey, width.ToString());
diff --git a/SabreTools.Metadata.Filter/FilterObject.cs b/SabreTools.Metadata.Filter/FilterObject.cs
index 7e6f844d..4119d9fa 100644
--- a/SabreTools.Metadata.Filter/FilterObject.cs
+++ b/SabreTools.Metadata.Filter/FilterObject.cs
@@ -476,6 +476,9 @@ namespace SabreTools.Metadata.Filter
case Display item when fieldName == "flipx":
checkValue = item.FlipX.FromYesNo();
return true;
+ case Display item when fieldName == "refresh":
+ checkValue = item.Refresh?.ToString();
+ return true;
case Display item when fieldName == "type":
checkValue = item.DisplayType?.AsStringValue();
return true;
@@ -749,6 +752,9 @@ namespace SabreTools.Metadata.Filter
checkValue = item.Channels?.ToString();
return true;
+ case Video item when fieldName == "refresh":
+ checkValue = item.Refresh?.ToString();
+ return true;
case Video item when fieldName == "screen":
checkValue = item.Screen?.AsStringValue();
return true;
diff --git a/SabreTools.Metadata/ModelBackedItemT.cs b/SabreTools.Metadata/ModelBackedItemT.cs
index cd7fd26f..fb3ecef3 100644
--- a/SabreTools.Metadata/ModelBackedItemT.cs
+++ b/SabreTools.Metadata/ModelBackedItemT.cs
@@ -40,6 +40,7 @@ namespace SabreTools.Metadata
///
/// Field to retrieve
/// Value from the field, if possible
+ /// TODO: Determine if this can be removed
public bool? ReadBool(string fieldName)
=> _internal.ReadBool(fieldName);
@@ -48,6 +49,7 @@ namespace SabreTools.Metadata
///
/// Field to retrieve
/// Value from the field, if possible
+ /// TODO: Determine if this can be removed
public double? ReadDouble(string fieldName)
=> _internal.ReadDouble(fieldName);
diff --git a/SabreTools.Serialization.CrossModel.Test/ClrMameProTests.cs b/SabreTools.Serialization.CrossModel.Test/ClrMameProTests.cs
index 5077fd63..67cdb08c 100644
--- a/SabreTools.Serialization.CrossModel.Test/ClrMameProTests.cs
+++ b/SabreTools.Serialization.CrossModel.Test/ClrMameProTests.cs
@@ -170,7 +170,7 @@ namespace SabreTools.Serialization.CrossModel.Test
Y = "XXXXXX",
AspectX = "XXXXXX",
AspectY = "XXXXXX",
- Freq = "XXXXXX",
+ Freq = 123.45,
};
var sound = new Data.Models.ClrMamePro.Sound
@@ -457,7 +457,7 @@ namespace SabreTools.Serialization.CrossModel.Test
Assert.Equal("XXXXXX", video.Y);
Assert.Equal("XXXXXX", video.AspectX);
Assert.Equal("XXXXXX", video.AspectY);
- Assert.Equal("XXXXXX", video.Freq);
+ Assert.Equal(123.45, video.Freq);
}
///
diff --git a/SabreTools.Serialization.CrossModel.Test/ListxmlTests.cs b/SabreTools.Serialization.CrossModel.Test/ListxmlTests.cs
index fbc8d6c6..80b6682e 100644
--- a/SabreTools.Serialization.CrossModel.Test/ListxmlTests.cs
+++ b/SabreTools.Serialization.CrossModel.Test/ListxmlTests.cs
@@ -126,7 +126,7 @@ namespace SabreTools.Serialization.CrossModel.Test
FlipX = true,
Width = "XXXXXX",
Height = "XXXXXX",
- Refresh = "XXXXXX",
+ Refresh = 123.45,
PixClock = "XXXXXX",
HTotal = "XXXXXX",
HBEnd = "XXXXXX",
@@ -144,7 +144,7 @@ namespace SabreTools.Serialization.CrossModel.Test
Height = "XXXXXX",
AspectX = "XXXXXX",
AspectY = "XXXXXX",
- Refresh = "XXXXXX",
+ Refresh = 123.45,
};
var sound = new Data.Models.Listxml.Sound
@@ -558,7 +558,7 @@ namespace SabreTools.Serialization.CrossModel.Test
Assert.Equal(true, display.FlipX);
Assert.Equal("XXXXXX", display.Width);
Assert.Equal("XXXXXX", display.Height);
- Assert.Equal("XXXXXX", display.Refresh);
+ Assert.Equal(123.45, display.Refresh);
Assert.Equal("XXXXXX", display.PixClock);
Assert.Equal("XXXXXX", display.HTotal);
Assert.Equal("XXXXXX", display.HBEnd);
@@ -580,7 +580,7 @@ namespace SabreTools.Serialization.CrossModel.Test
Assert.Equal("XXXXXX", video.Height);
Assert.Equal("XXXXXX", video.AspectX);
Assert.Equal("XXXXXX", video.AspectY);
- Assert.Equal("XXXXXX", video.Refresh);
+ Assert.Equal(123.45, video.Refresh);
}
///
diff --git a/SabreTools.Serialization.CrossModel.Test/M1Tests.cs b/SabreTools.Serialization.CrossModel.Test/M1Tests.cs
index 57eb1005..d4a5ec0d 100644
--- a/SabreTools.Serialization.CrossModel.Test/M1Tests.cs
+++ b/SabreTools.Serialization.CrossModel.Test/M1Tests.cs
@@ -122,7 +122,7 @@ namespace SabreTools.Serialization.CrossModel.Test
FlipX = true,
Width = "XXXXXX",
Height = "XXXXXX",
- Refresh = "XXXXXX",
+ Refresh = 123.45,
PixClock = "XXXXXX",
HTotal = "XXXXXX",
HBEnd = "XXXXXX",
@@ -140,7 +140,7 @@ namespace SabreTools.Serialization.CrossModel.Test
Height = "XXXXXX",
AspectX = "XXXXXX",
AspectY = "XXXXXX",
- Refresh = "XXXXXX",
+ Refresh = 123.45,
};
var sound = new Data.Models.Listxml.Sound
@@ -552,7 +552,7 @@ namespace SabreTools.Serialization.CrossModel.Test
Assert.Equal(true, display.FlipX);
Assert.Equal("XXXXXX", display.Width);
Assert.Equal("XXXXXX", display.Height);
- Assert.Equal("XXXXXX", display.Refresh);
+ Assert.Equal(123.45, display.Refresh);
Assert.Equal("XXXXXX", display.PixClock);
Assert.Equal("XXXXXX", display.HTotal);
Assert.Equal("XXXXXX", display.HBEnd);
@@ -574,7 +574,7 @@ namespace SabreTools.Serialization.CrossModel.Test
Assert.Equal("XXXXXX", video.Height);
Assert.Equal("XXXXXX", video.AspectX);
Assert.Equal("XXXXXX", video.AspectY);
- Assert.Equal("XXXXXX", video.Refresh);
+ Assert.Equal(123.45, video.Refresh);
}
///
diff --git a/SabreTools.Serialization.CrossModel.Test/MessTests.cs b/SabreTools.Serialization.CrossModel.Test/MessTests.cs
index d1fedb5e..0bc11c0e 100644
--- a/SabreTools.Serialization.CrossModel.Test/MessTests.cs
+++ b/SabreTools.Serialization.CrossModel.Test/MessTests.cs
@@ -122,7 +122,7 @@ namespace SabreTools.Serialization.CrossModel.Test
FlipX = true,
Width = "XXXXXX",
Height = "XXXXXX",
- Refresh = "XXXXXX",
+ Refresh = 123.45,
PixClock = "XXXXXX",
HTotal = "XXXXXX",
HBEnd = "XXXXXX",
@@ -140,7 +140,7 @@ namespace SabreTools.Serialization.CrossModel.Test
Height = "XXXXXX",
AspectX = "XXXXXX",
AspectY = "XXXXXX",
- Refresh = "XXXXXX",
+ Refresh = 123.45,
};
var sound = new Data.Models.Listxml.Sound
@@ -552,7 +552,7 @@ namespace SabreTools.Serialization.CrossModel.Test
Assert.Equal(true, display.FlipX);
Assert.Equal("XXXXXX", display.Width);
Assert.Equal("XXXXXX", display.Height);
- Assert.Equal("XXXXXX", display.Refresh);
+ Assert.Equal(123.45, display.Refresh);
Assert.Equal("XXXXXX", display.PixClock);
Assert.Equal("XXXXXX", display.HTotal);
Assert.Equal("XXXXXX", display.HBEnd);
@@ -574,7 +574,7 @@ namespace SabreTools.Serialization.CrossModel.Test
Assert.Equal("XXXXXX", video.Height);
Assert.Equal("XXXXXX", video.AspectX);
Assert.Equal("XXXXXX", video.AspectY);
- Assert.Equal("XXXXXX", video.Refresh);
+ Assert.Equal(123.45, video.Refresh);
}
///
diff --git a/SabreTools.Serialization.CrossModel/ClrMamePro.Deserializer.cs b/SabreTools.Serialization.CrossModel/ClrMamePro.Deserializer.cs
index a18265e7..27aa5c67 100644
--- a/SabreTools.Serialization.CrossModel/ClrMamePro.Deserializer.cs
+++ b/SabreTools.Serialization.CrossModel/ClrMamePro.Deserializer.cs
@@ -346,7 +346,7 @@ namespace SabreTools.Serialization.CrossModel
Y = item.ReadString(Data.Models.Metadata.Video.HeightKey),
AspectX = item.ReadString(Data.Models.Metadata.Video.AspectXKey),
AspectY = item.ReadString(Data.Models.Metadata.Video.AspectYKey),
- Freq = item.ReadString(Data.Models.Metadata.Video.RefreshKey),
+ Freq = item.Refresh,
};
return video;
}
diff --git a/SabreTools.Serialization.CrossModel/ClrMamePro.Serializer.cs b/SabreTools.Serialization.CrossModel/ClrMamePro.Serializer.cs
index f333c50f..66c50528 100644
--- a/SabreTools.Serialization.CrossModel/ClrMamePro.Serializer.cs
+++ b/SabreTools.Serialization.CrossModel/ClrMamePro.Serializer.cs
@@ -359,7 +359,7 @@ namespace SabreTools.Serialization.CrossModel
[Data.Models.Metadata.Video.HeightKey] = item.Y,
[Data.Models.Metadata.Video.AspectXKey] = item.AspectX,
[Data.Models.Metadata.Video.AspectYKey] = item.AspectY,
- [Data.Models.Metadata.Video.RefreshKey] = item.Freq,
+ Refresh = item.Freq,
};
return video;
}
diff --git a/SabreTools.Serialization.CrossModel/Listxml.Deserializer.cs b/SabreTools.Serialization.CrossModel/Listxml.Deserializer.cs
index 40e0bc67..bc686163 100644
--- a/SabreTools.Serialization.CrossModel/Listxml.Deserializer.cs
+++ b/SabreTools.Serialization.CrossModel/Listxml.Deserializer.cs
@@ -429,7 +429,7 @@ namespace SabreTools.Serialization.CrossModel
FlipX = item.FlipX,
Width = item.ReadString(Data.Models.Metadata.Display.WidthKey),
Height = item.ReadString(Data.Models.Metadata.Display.HeightKey),
- Refresh = item.ReadString(Data.Models.Metadata.Display.RefreshKey),
+ 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),
@@ -664,7 +664,7 @@ namespace SabreTools.Serialization.CrossModel
Height = item.ReadString(Data.Models.Metadata.Video.HeightKey),
AspectX = item.ReadString(Data.Models.Metadata.Video.AspectXKey),
AspectY = item.ReadString(Data.Models.Metadata.Video.AspectYKey),
- Refresh = item.ReadString(Data.Models.Metadata.Video.RefreshKey),
+ Refresh = item.Refresh,
};
return video;
}
diff --git a/SabreTools.Serialization.CrossModel/Listxml.Serializer.cs b/SabreTools.Serialization.CrossModel/Listxml.Serializer.cs
index 2d05c97e..506ad714 100644
--- a/SabreTools.Serialization.CrossModel/Listxml.Serializer.cs
+++ b/SabreTools.Serialization.CrossModel/Listxml.Serializer.cs
@@ -467,7 +467,7 @@ namespace SabreTools.Serialization.CrossModel
FlipX = item.FlipX,
[Data.Models.Metadata.Display.WidthKey] = item.Width,
[Data.Models.Metadata.Display.HeightKey] = item.Height,
- [Data.Models.Metadata.Display.RefreshKey] = item.Refresh,
+ Refresh = item.Refresh,
[Data.Models.Metadata.Display.PixClockKey] = item.PixClock,
[Data.Models.Metadata.Display.HTotalKey] = item.HTotal,
[Data.Models.Metadata.Display.HBEndKey] = item.HBEnd,
@@ -705,7 +705,7 @@ namespace SabreTools.Serialization.CrossModel
[Data.Models.Metadata.Video.HeightKey] = item.Height,
[Data.Models.Metadata.Video.AspectXKey] = item.AspectX,
[Data.Models.Metadata.Video.AspectYKey] = item.AspectY,
- [Data.Models.Metadata.Video.RefreshKey] = item.Refresh,
+ Refresh = item.Refresh,
};
return video;
}
diff --git a/SabreTools.Serialization.Readers.Test/ClrMameProTests.cs b/SabreTools.Serialization.Readers.Test/ClrMameProTests.cs
index d39a222c..3fab116b 100644
--- a/SabreTools.Serialization.Readers.Test/ClrMameProTests.cs
+++ b/SabreTools.Serialization.Readers.Test/ClrMameProTests.cs
@@ -287,7 +287,7 @@ namespace SabreTools.Serialization.Readers.Test
Y = "XXXXXX",
AspectX = "XXXXXX",
AspectY = "XXXXXX",
- Freq = "XXXXXX",
+ Freq = 123.45,
};
var sound = new Data.Models.ClrMamePro.Sound
@@ -574,7 +574,7 @@ namespace SabreTools.Serialization.Readers.Test
Assert.Equal("XXXXXX", video.Y);
Assert.Equal("XXXXXX", video.AspectX);
Assert.Equal("XXXXXX", video.AspectY);
- Assert.Equal("XXXXXX", video.Freq);
+ Assert.Equal(123.45, video.Freq);
}
///
diff --git a/SabreTools.Serialization.Readers.Test/ListxmlTests.cs b/SabreTools.Serialization.Readers.Test/ListxmlTests.cs
index a540749f..e061a3b8 100644
--- a/SabreTools.Serialization.Readers.Test/ListxmlTests.cs
+++ b/SabreTools.Serialization.Readers.Test/ListxmlTests.cs
@@ -193,7 +193,7 @@ namespace SabreTools.Serialization.Readers.Test
FlipX = true,
Width = "XXXXXX",
Height = "XXXXXX",
- Refresh = "XXXXXX",
+ Refresh = 123.45,
PixClock = "XXXXXX",
HTotal = "XXXXXX",
HBEnd = "XXXXXX",
@@ -211,7 +211,7 @@ namespace SabreTools.Serialization.Readers.Test
Height = "XXXXXX",
AspectX = "XXXXXX",
AspectY = "XXXXXX",
- Refresh = "XXXXXX",
+ Refresh = 123.45,
};
var sound = new Data.Models.Listxml.Sound
@@ -625,7 +625,7 @@ namespace SabreTools.Serialization.Readers.Test
Assert.Equal(true, display.FlipX);
Assert.Equal("XXXXXX", display.Width);
Assert.Equal("XXXXXX", display.Height);
- Assert.Equal("XXXXXX", display.Refresh);
+ Assert.Equal(123.45, display.Refresh);
Assert.Equal("XXXXXX", display.PixClock);
Assert.Equal("XXXXXX", display.HTotal);
Assert.Equal("XXXXXX", display.HBEnd);
@@ -647,7 +647,7 @@ namespace SabreTools.Serialization.Readers.Test
Assert.Equal("XXXXXX", video.Height);
Assert.Equal("XXXXXX", video.AspectX);
Assert.Equal("XXXXXX", video.AspectY);
- Assert.Equal("XXXXXX", video.Refresh);
+ Assert.Equal(123.45, video.Refresh);
}
///
diff --git a/SabreTools.Serialization.Readers.Test/M1Tests.cs b/SabreTools.Serialization.Readers.Test/M1Tests.cs
index b4bc6e9c..05e64fba 100644
--- a/SabreTools.Serialization.Readers.Test/M1Tests.cs
+++ b/SabreTools.Serialization.Readers.Test/M1Tests.cs
@@ -189,7 +189,7 @@ namespace SabreTools.Serialization.Readers.Test
FlipX = true,
Width = "XXXXXX",
Height = "XXXXXX",
- Refresh = "XXXXXX",
+ Refresh = 123.45,
PixClock = "XXXXXX",
HTotal = "XXXXXX",
HBEnd = "XXXXXX",
@@ -207,7 +207,7 @@ namespace SabreTools.Serialization.Readers.Test
Height = "XXXXXX",
AspectX = "XXXXXX",
AspectY = "XXXXXX",
- Refresh = "XXXXXX",
+ Refresh = 123.45,
};
var sound = new Data.Models.Listxml.Sound
@@ -619,7 +619,7 @@ namespace SabreTools.Serialization.Readers.Test
Assert.Equal(true, display.FlipX);
Assert.Equal("XXXXXX", display.Width);
Assert.Equal("XXXXXX", display.Height);
- Assert.Equal("XXXXXX", display.Refresh);
+ Assert.Equal(123.45, display.Refresh);
Assert.Equal("XXXXXX", display.PixClock);
Assert.Equal("XXXXXX", display.HTotal);
Assert.Equal("XXXXXX", display.HBEnd);
@@ -641,7 +641,7 @@ namespace SabreTools.Serialization.Readers.Test
Assert.Equal("XXXXXX", video.Height);
Assert.Equal("XXXXXX", video.AspectX);
Assert.Equal("XXXXXX", video.AspectY);
- Assert.Equal("XXXXXX", video.Refresh);
+ Assert.Equal(123.45, video.Refresh);
}
///
diff --git a/SabreTools.Serialization.Readers.Test/MessTests.cs b/SabreTools.Serialization.Readers.Test/MessTests.cs
index 1d3f4744..c325136e 100644
--- a/SabreTools.Serialization.Readers.Test/MessTests.cs
+++ b/SabreTools.Serialization.Readers.Test/MessTests.cs
@@ -189,7 +189,7 @@ namespace SabreTools.Serialization.Readers.Test
FlipX = true,
Width = "XXXXXX",
Height = "XXXXXX",
- Refresh = "XXXXXX",
+ Refresh = 123.45,
PixClock = "XXXXXX",
HTotal = "XXXXXX",
HBEnd = "XXXXXX",
@@ -207,7 +207,7 @@ namespace SabreTools.Serialization.Readers.Test
Height = "XXXXXX",
AspectX = "XXXXXX",
AspectY = "XXXXXX",
- Refresh = "XXXXXX",
+ Refresh = 123.45,
};
var sound = new Data.Models.Listxml.Sound
@@ -619,7 +619,7 @@ namespace SabreTools.Serialization.Readers.Test
Assert.Equal(true, display.FlipX);
Assert.Equal("XXXXXX", display.Width);
Assert.Equal("XXXXXX", display.Height);
- Assert.Equal("XXXXXX", display.Refresh);
+ Assert.Equal(123.45, display.Refresh);
Assert.Equal("XXXXXX", display.PixClock);
Assert.Equal("XXXXXX", display.HTotal);
Assert.Equal("XXXXXX", display.HBEnd);
@@ -641,7 +641,7 @@ namespace SabreTools.Serialization.Readers.Test
Assert.Equal("XXXXXX", video.Height);
Assert.Equal("XXXXXX", video.AspectX);
Assert.Equal("XXXXXX", video.AspectY);
- Assert.Equal("XXXXXX", video.Refresh);
+ Assert.Equal(123.45, video.Refresh);
}
///
diff --git a/SabreTools.Serialization.Readers/ClrMamePro.cs b/SabreTools.Serialization.Readers/ClrMamePro.cs
index 68ebc68b..f2454b1d 100644
--- a/SabreTools.Serialization.Readers/ClrMamePro.cs
+++ b/SabreTools.Serialization.Readers/ClrMamePro.cs
@@ -821,7 +821,7 @@ namespace SabreTools.Serialization.Readers
video.AspectY = kvp.Value;
break;
case "freq":
- video.Freq = kvp.Value;
+ video.Freq = NumberHelper.ConvertToDouble(kvp.Value);
break;
default:
// TODO: Log invalid values
diff --git a/SabreTools.Serialization.Readers/Listxml.cs b/SabreTools.Serialization.Readers/Listxml.cs
index b2fa98bb..ff1c7632 100644
--- a/SabreTools.Serialization.Readers/Listxml.cs
+++ b/SabreTools.Serialization.Readers/Listxml.cs
@@ -580,7 +580,7 @@ namespace SabreTools.Serialization.Readers
obj.FlipX = reader.GetAttribute("flipx").AsYesNo();
obj.Width = reader.GetAttribute("width");
obj.Height = reader.GetAttribute("height");
- obj.Refresh = reader.GetAttribute("refresh");
+ obj.Refresh = NumberHelper.ConvertToDouble(reader.GetAttribute("refresh"));
obj.PixClock = reader.GetAttribute("pixclock");
obj.HTotal = reader.GetAttribute("htotal");
obj.HBEnd = reader.GetAttribute("hbend");
@@ -1181,7 +1181,7 @@ namespace SabreTools.Serialization.Readers
obj.Height = reader.GetAttribute("height");
obj.AspectX = reader.GetAttribute("aspectx");
obj.AspectY = reader.GetAttribute("aspecty");
- obj.Refresh = reader.GetAttribute("refresh");
+ obj.Refresh = NumberHelper.ConvertToDouble(reader.GetAttribute("refresh"));
return obj;
}
diff --git a/SabreTools.Serialization.Readers/M1.cs b/SabreTools.Serialization.Readers/M1.cs
index 308a17b8..fff3aadd 100644
--- a/SabreTools.Serialization.Readers/M1.cs
+++ b/SabreTools.Serialization.Readers/M1.cs
@@ -578,7 +578,7 @@ namespace SabreTools.Serialization.Readers
obj.FlipX = reader.GetAttribute("flipx").AsYesNo();
obj.Width = reader.GetAttribute("width");
obj.Height = reader.GetAttribute("height");
- obj.Refresh = reader.GetAttribute("refresh");
+ obj.Refresh = NumberHelper.ConvertToDouble(reader.GetAttribute("refresh"));
obj.PixClock = reader.GetAttribute("pixclock");
obj.HTotal = reader.GetAttribute("htotal");
obj.HBEnd = reader.GetAttribute("hbend");
@@ -1179,7 +1179,7 @@ namespace SabreTools.Serialization.Readers
obj.Height = reader.GetAttribute("height");
obj.AspectX = reader.GetAttribute("aspectx");
obj.AspectY = reader.GetAttribute("aspecty");
- obj.Refresh = reader.GetAttribute("refresh");
+ obj.Refresh = NumberHelper.ConvertToDouble(reader.GetAttribute("refresh"));
return obj;
}
diff --git a/SabreTools.Serialization.Readers/Mess.cs b/SabreTools.Serialization.Readers/Mess.cs
index 5b93bf45..ef0719a1 100644
--- a/SabreTools.Serialization.Readers/Mess.cs
+++ b/SabreTools.Serialization.Readers/Mess.cs
@@ -578,7 +578,7 @@ namespace SabreTools.Serialization.Readers
obj.FlipX = reader.GetAttribute("flipx").AsYesNo();
obj.Width = reader.GetAttribute("width");
obj.Height = reader.GetAttribute("height");
- obj.Refresh = reader.GetAttribute("refresh");
+ obj.Refresh = NumberHelper.ConvertToDouble(reader.GetAttribute("refresh"));
obj.PixClock = reader.GetAttribute("pixclock");
obj.HTotal = reader.GetAttribute("htotal");
obj.HBEnd = reader.GetAttribute("hbend");
@@ -1179,7 +1179,7 @@ namespace SabreTools.Serialization.Readers
obj.Height = reader.GetAttribute("height");
obj.AspectX = reader.GetAttribute("aspectx");
obj.AspectY = reader.GetAttribute("aspecty");
- obj.Refresh = reader.GetAttribute("refresh");
+ obj.Refresh = NumberHelper.ConvertToDouble(reader.GetAttribute("refresh"));
return obj;
}
diff --git a/SabreTools.Serialization.Writers/ClrMamePro.cs b/SabreTools.Serialization.Writers/ClrMamePro.cs
index 0a6ee433..1a066d65 100644
--- a/SabreTools.Serialization.Writers/ClrMamePro.cs
+++ b/SabreTools.Serialization.Writers/ClrMamePro.cs
@@ -418,7 +418,7 @@ namespace SabreTools.Serialization.Writers
writer.WriteOptionalAttributeString("y", video.Y);
writer.WriteOptionalAttributeString("aspectx", video.AspectX);
writer.WriteOptionalAttributeString("aspecty", video.AspectY);
- writer.WriteOptionalAttributeString("freq", video.Freq);
+ 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 d32b5bb2..cd9e4498 100644
--- a/SabreTools.Serialization.Writers/Listxml.cs
+++ b/SabreTools.Serialization.Writers/Listxml.cs
@@ -395,7 +395,7 @@ namespace SabreTools.Serialization.Writers
writer.WriteOptionalAttributeString("flipx", obj.FlipX.FromYesNo());
writer.WriteOptionalAttributeString("width", obj.Width);
writer.WriteOptionalAttributeString("height", obj.Height);
- writer.WriteRequiredAttributeString("refresh", obj.Refresh);
+ writer.WriteRequiredAttributeString("refresh", obj.Refresh?.ToString("0.000000"));
writer.WriteOptionalAttributeString("pixclock", obj.PixClock);
writer.WriteOptionalAttributeString("htotal", obj.HTotal);
writer.WriteOptionalAttributeString("hbend", obj.HBEnd);
@@ -843,7 +843,7 @@ namespace SabreTools.Serialization.Writers
writer.WriteOptionalAttributeString("height", obj.Height);
writer.WriteOptionalAttributeString("aspectx", obj.AspectX);
writer.WriteOptionalAttributeString("aspecty", obj.AspectY);
- writer.WriteRequiredAttributeString("refresh", obj.Refresh);
+ 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 fe698b6d..cd05a5a8 100644
--- a/SabreTools.Serialization.Writers/M1.cs
+++ b/SabreTools.Serialization.Writers/M1.cs
@@ -393,7 +393,7 @@ namespace SabreTools.Serialization.Writers
writer.WriteOptionalAttributeString("flipx", obj.FlipX.FromYesNo());
writer.WriteOptionalAttributeString("width", obj.Width);
writer.WriteOptionalAttributeString("height", obj.Height);
- writer.WriteRequiredAttributeString("refresh", obj.Refresh);
+ writer.WriteRequiredAttributeString("refresh", obj.Refresh?.ToString("0.000000"));
writer.WriteOptionalAttributeString("pixclock", obj.PixClock);
writer.WriteOptionalAttributeString("htotal", obj.HTotal);
writer.WriteOptionalAttributeString("hbend", obj.HBEnd);
@@ -841,7 +841,7 @@ namespace SabreTools.Serialization.Writers
writer.WriteOptionalAttributeString("height", obj.Height);
writer.WriteOptionalAttributeString("aspectx", obj.AspectX);
writer.WriteOptionalAttributeString("aspecty", obj.AspectY);
- writer.WriteRequiredAttributeString("refresh", obj.Refresh);
+ 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 19f7d305..ff2e2190 100644
--- a/SabreTools.Serialization.Writers/Mess.cs
+++ b/SabreTools.Serialization.Writers/Mess.cs
@@ -393,7 +393,7 @@ namespace SabreTools.Serialization.Writers
writer.WriteOptionalAttributeString("flipx", obj.FlipX.FromYesNo());
writer.WriteOptionalAttributeString("width", obj.Width);
writer.WriteOptionalAttributeString("height", obj.Height);
- writer.WriteRequiredAttributeString("refresh", obj.Refresh);
+ writer.WriteRequiredAttributeString("refresh", obj.Refresh?.ToString("0.000000"));
writer.WriteOptionalAttributeString("pixclock", obj.PixClock);
writer.WriteOptionalAttributeString("htotal", obj.HTotal);
writer.WriteOptionalAttributeString("hbend", obj.HBEnd);
@@ -841,7 +841,7 @@ namespace SabreTools.Serialization.Writers
writer.WriteOptionalAttributeString("height", obj.Height);
writer.WriteOptionalAttributeString("aspectx", obj.AspectX);
writer.WriteOptionalAttributeString("aspecty", obj.AspectY);
- writer.WriteRequiredAttributeString("refresh", obj.Refresh);
+ writer.WriteRequiredAttributeString("refresh", obj.Refresh?.ToString("0.000000"));
writer.WriteEndElement();
}