diff --git a/SabreTools.Serialization/Internal.Deserializer.cs b/SabreTools.Serialization/Internal.Deserializer.cs index 443e8e15..dbcc1263 100644 --- a/SabreTools.Serialization/Internal.Deserializer.cs +++ b/SabreTools.Serialization/Internal.Deserializer.cs @@ -1278,19 +1278,6 @@ namespace SabreTools.Serialization return dump; } - /// - /// Convert from to - /// - public static Models.OpenMSX.Original ConvertToOpenMSX(Models.Internal.Original item) - { - var original = new Models.OpenMSX.Original - { - Value = item.ReadString(Models.Internal.Original.ValueKey), - Content = item.ReadString(Models.Internal.Original.ContentKey), - }; - return original; - } - /// /// Convert from to /// @@ -1306,6 +1293,19 @@ namespace SabreTools.Serialization return megaRom; } + /// + /// Convert from to + /// + public static Models.OpenMSX.Original ConvertToOpenMSX(Models.Internal.Original item) + { + var original = new Models.OpenMSX.Original + { + Value = item.ReadString(Models.Internal.Original.ValueKey), + Content = item.ReadString(Models.Internal.Original.ContentKey), + }; + return original; + } + /// /// Convert from to /// @@ -1356,5 +1356,64 @@ namespace SabreTools.Serialization } #endregion + + #region SeparatedValue + + /// + /// Convert from to + /// + public static Models.SeparatedValue.Row ConvertToSeparatedValue(Models.Internal.Disk item) + { + var row = new Models.SeparatedValue.Row + { + Type = "disk", + DiskName = item.ReadString(Models.Internal.Disk.NameKey), + MD5 = item.ReadString(Models.Internal.Disk.MD5Key), + SHA1 = item.ReadString(Models.Internal.Disk.SHA1Key), + Status = item.ReadString(Models.Internal.Disk.StatusKey), + }; + return row; + } + + /// + /// Convert from to + /// + public static Models.SeparatedValue.Row ConvertToSeparatedValue(Models.Internal.Media item) + { + var row = new Models.SeparatedValue.Row + { + Type = "media", + DiskName = item.ReadString(Models.Internal.Media.NameKey), + MD5 = item.ReadString(Models.Internal.Media.MD5Key), + SHA1 = item.ReadString(Models.Internal.Media.SHA1Key), + SHA256 = item.ReadString(Models.Internal.Media.SHA256Key), + SpamSum = item.ReadString(Models.Internal.Media.SpamSumKey), + }; + return row; + } + + /// + /// Convert from to + /// + public static Models.SeparatedValue.Row ConvertToSeparatedValue(Models.Internal.Rom item) + { + var row = new Models.SeparatedValue.Row + { + Type = "rom", + RomName = item.ReadString(Models.Internal.Rom.NameKey), + Size = item.ReadString(Models.Internal.Rom.SizeKey), + CRC = item.ReadString(Models.Internal.Rom.CRCKey), + MD5 = item.ReadString(Models.Internal.Rom.MD5Key), + SHA1 = item.ReadString(Models.Internal.Rom.SHA1Key), + SHA256 = item.ReadString(Models.Internal.Rom.SHA256Key), + SHA384 = item.ReadString(Models.Internal.Rom.SHA384Key), + SHA512 = item.ReadString(Models.Internal.Rom.SHA512Key), + SpamSum = item.ReadString(Models.Internal.Rom.SpamSumKey), + Status = item.ReadString(Models.Internal.Rom.StatusKey), + }; + return row; + } + + #endregion } } \ No newline at end of file diff --git a/SabreTools.Serialization/Internal.Serializer.cs b/SabreTools.Serialization/Internal.Serializer.cs index a3a3f292..a5f5f11b 100644 --- a/SabreTools.Serialization/Internal.Serializer.cs +++ b/SabreTools.Serialization/Internal.Serializer.cs @@ -457,7 +457,7 @@ namespace SabreTools.Serialization #region Listrom /// - /// Convert from to or + /// Convert from to /// public static Models.Internal.DatItem ConvertFromListrom(Models.Listrom.Row item) { @@ -1259,7 +1259,7 @@ namespace SabreTools.Serialization public static Models.Internal.Dump ConvertFromOpenMSX(Models.OpenMSX.Dump item) { var dump = new Models.Internal.Dump(); - + if (item.Original != null) dump[Models.Internal.Dump.OriginalKey] = ConvertFromOpenMSX(item.Original); @@ -1310,7 +1310,7 @@ namespace SabreTools.Serialization } #endregion - + #region RomCenter /// @@ -1329,5 +1329,48 @@ namespace SabreTools.Serialization } #endregion + + #region SeparatedValue + + /// + /// Convert from to + /// + public static Models.Internal.DatItem? ConvertFromSeparatedValue(Models.SeparatedValue.Row item) + { + return item.Type switch + { + "disk" => new Models.Internal.Disk + { + [Models.Internal.Disk.NameKey] = item.DiskName, + [Models.Internal.Disk.MD5Key] = item.MD5, + [Models.Internal.Disk.SHA1Key] = item.SHA1, + [Models.Internal.Disk.StatusKey] = item.Status, + }, + "media" => new Models.Internal.Media + { + [Models.Internal.Media.NameKey] = item.DiskName, + [Models.Internal.Media.MD5Key] = item.MD5, + [Models.Internal.Media.SHA1Key] = item.SHA1, + [Models.Internal.Media.SHA256Key] = item.SHA256, + [Models.Internal.Media.SpamSumKey] = item.SpamSum, + }, + "rom" => new Models.Internal.Rom + { + [Models.Internal.Rom.NameKey] = item.RomName, + [Models.Internal.Rom.SizeKey] = item.Size, + [Models.Internal.Rom.CRCKey] = item.CRC, + [Models.Internal.Rom.MD5Key] = item.MD5, + [Models.Internal.Rom.SHA1Key] = item.SHA1, + [Models.Internal.Rom.SHA256Key] = item.SHA256, + [Models.Internal.Rom.SHA384Key] = item.SHA384, + [Models.Internal.Rom.SHA512Key] = item.SHA512, + [Models.Internal.Rom.SpamSumKey] = item.SpamSum, + [Models.Internal.Rom.StatusKey] = item.Status, + }, + _ => null, + }; + } + + #endregion } } \ No newline at end of file