From 09fa99bc323cb08960d25fd5af891195c46a94fc Mon Sep 17 00:00:00 2001 From: Matt Nadareski Date: Fri, 4 Aug 2023 14:02:42 -0400 Subject: [PATCH] Add Logiqx internal converters --- .../Internal.Deserializer.cs | 166 ++++++++++++++++++ .../Internal.Serializer.cs | 166 ++++++++++++++++++ 2 files changed, 332 insertions(+) diff --git a/SabreTools.Serialization/Internal.Deserializer.cs b/SabreTools.Serialization/Internal.Deserializer.cs index 8fcc5cb2..b8f00b7f 100644 --- a/SabreTools.Serialization/Internal.Deserializer.cs +++ b/SabreTools.Serialization/Internal.Deserializer.cs @@ -1066,5 +1066,171 @@ namespace SabreTools.Serialization } #endregion + + #region Logiqx + + /// + /// Convert from to + /// + public static Models.Logiqx.Archive ConvertToLogiqx(Models.Internal.Archive item) + { + var archive = new Models.Logiqx.Archive + { + Name = item.ReadString(Models.Internal.Archive.NameKey), + }; + return archive; + } + + /// + /// Convert from to + /// + public static Models.Logiqx.BiosSet ConvertToLogiqx(Models.Internal.BiosSet item) + { + var biosset = new Models.Logiqx.BiosSet + { + Name = item.ReadString(Models.Internal.BiosSet.NameKey), + Description = item.ReadString(Models.Internal.BiosSet.DescriptionKey), + Default = item.ReadString(Models.Internal.BiosSet.DefaultKey), + }; + return biosset; + } + + /// + /// Convert from to + /// + public static Models.Logiqx.DeviceRef ConvertToLogiqx(Models.Internal.DeviceRef item) + { + var deviceRef = new Models.Logiqx.DeviceRef + { + Name = item.ReadString(Models.Internal.DipSwitch.NameKey), + }; + return deviceRef; + } + + /// + /// Convert from to + /// + public static Models.Logiqx.Disk ConvertToLogiqx(Models.Internal.Disk item) + { + var disk = new Models.Logiqx.Disk + { + Name = item.ReadString(Models.Internal.Disk.NameKey), + MD5 = item.ReadString(Models.Internal.Disk.MD5Key), + SHA1 = item.ReadString(Models.Internal.Disk.SHA1Key), + Merge = item.ReadString(Models.Internal.Disk.MergeKey), + Status = item.ReadString(Models.Internal.Disk.StatusKey), + Region = item.ReadString(Models.Internal.Disk.RegionKey), + }; + return disk; + } + + /// + /// Convert from to + /// + public static Models.Logiqx.Driver ConvertToLogiqx(Models.Internal.Driver item) + { + var driver = new Models.Logiqx.Driver + { + Status = item.ReadString(Models.Internal.Driver.StatusKey), + Emulation = item.ReadString(Models.Internal.Driver.EmulationKey), + Cocktail = item.ReadString(Models.Internal.Driver.CocktailKey), + SaveState = item.ReadString(Models.Internal.Driver.SaveStateKey), + RequiresArtwork = item.ReadString(Models.Internal.Driver.RequiresArtworkKey), + Unofficial = item.ReadString(Models.Internal.Driver.UnofficialKey), + NoSoundHardware = item.ReadString(Models.Internal.Driver.NoSoundHardwareKey), + Incomplete = item.ReadString(Models.Internal.Driver.IncompleteKey), + }; + return driver; + } + + /// + /// Convert from to + /// + public static Models.Logiqx.Media ConvertToLogiqx(Models.Internal.Media item) + { + var media = new Models.Logiqx.Media + { + Name = 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 media; + } + + /// + /// Convert from to + /// + public static Models.Logiqx.Release ConvertToLogiqx(Models.Internal.Release item) + { + var release = new Models.Logiqx.Release + { + Name = item.ReadString(Models.Internal.Release.NameKey), + Region = item.ReadString(Models.Internal.Release.RegionKey), + Language = item.ReadString(Models.Internal.Release.LanguageKey), + Date = item.ReadString(Models.Internal.Release.DateKey), + Default = item.ReadString(Models.Internal.Release.DefaultKey), + }; + return release; + } + + /// + /// Convert from to + /// + public static Models.Logiqx.Rom ConvertToLogiqx(Models.Internal.Rom item) + { + var rom = new Models.Logiqx.Rom + { + Name = 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), + xxHash364 = item.ReadString(Models.Internal.Rom.xxHash364Key), + xxHash3128 = item.ReadString(Models.Internal.Rom.xxHash3128Key), + Merge = item.ReadString(Models.Internal.Rom.MergeKey), + Status = item.ReadString(Models.Internal.Rom.StatusKey), + Serial = item.ReadString(Models.Internal.Rom.SerialKey), + Header = item.ReadString(Models.Internal.Rom.HeaderKey), + Date = item.ReadString(Models.Internal.Rom.DateKey), + Inverted = item.ReadString(Models.Internal.Rom.InvertedKey), + MIA = item.ReadString(Models.Internal.Rom.MIAKey), + }; + return rom; + } + + /// + /// Convert from to + /// + public static Models.Logiqx.Sample ConvertToLogiqx(Models.Internal.Sample item) + { + var sample = new Models.Logiqx.Sample + { + Name = item.ReadString(Models.Internal.Sample.NameKey), + }; + return sample; + } + + /// + /// Convert from to + /// + public static Models.Logiqx.SoftwareList ConvertToLogiqx(Models.Internal.SoftwareList item) + { + var softwareList = new Models.Logiqx.SoftwareList + { + Tag = item.ReadString(Models.Internal.SoftwareList.TagKey), + Name = item.ReadString(Models.Internal.SoftwareList.NameKey), + Status = item.ReadString(Models.Internal.SoftwareList.StatusKey), + Filter = item.ReadString(Models.Internal.SoftwareList.FilterKey), + }; + return softwareList; + } + + #endregion } } \ No newline at end of file diff --git a/SabreTools.Serialization/Internal.Serializer.cs b/SabreTools.Serialization/Internal.Serializer.cs index 940b0f49..63dd8b16 100644 --- a/SabreTools.Serialization/Internal.Serializer.cs +++ b/SabreTools.Serialization/Internal.Serializer.cs @@ -1067,5 +1067,171 @@ namespace SabreTools.Serialization } #endregion + + #region Logiqx + + /// + /// Convert from to + /// + public static Models.Internal.Archive ConvertFromLogiqx(Models.Logiqx.Archive item) + { + var archive = new Models.Internal.Archive + { + [Models.Internal.Archive.NameKey] = item.Name, + }; + return archive; + } + + /// + /// Convert from to + /// + public static Models.Internal.BiosSet ConvertFromLogiqx(Models.Logiqx.BiosSet item) + { + var biosset = new Models.Internal.BiosSet + { + [Models.Internal.BiosSet.NameKey] = item.Name, + [Models.Internal.BiosSet.DescriptionKey] = item.Description, + [Models.Internal.BiosSet.DefaultKey] = item.Default, + }; + return biosset; + } + + /// + /// Convert from to + /// + public static Models.Internal.DeviceRef ConvertFromLogiqx(Models.Logiqx.DeviceRef item) + { + var deviceRef = new Models.Internal.DeviceRef + { + [Models.Internal.DeviceRef.NameKey] = item.Name, + }; + return deviceRef; + } + + /// + /// Convert from to + /// + public static Models.Internal.Disk ConvertFromLogiqx(Models.Logiqx.Disk item) + { + var disk = new Models.Internal.Disk + { + [Models.Internal.Disk.NameKey] = item.Name, + [Models.Internal.Disk.MD5Key] = item.MD5, + [Models.Internal.Disk.SHA1Key] = item.SHA1, + [Models.Internal.Disk.MergeKey] = item.Merge, + [Models.Internal.Disk.StatusKey] = item.Status, + [Models.Internal.Disk.RegionKey] = item.Region, + }; + return disk; + } + + /// + /// Convert from to + /// + public static Models.Internal.Driver ConvertFromLogiqx(Models.Logiqx.Driver item) + { + var driver = new Models.Internal.Driver + { + [Models.Internal.Driver.StatusKey] = item.Status, + [Models.Internal.Driver.EmulationKey] = item.Emulation, + [Models.Internal.Driver.CocktailKey] = item.Cocktail, + [Models.Internal.Driver.SaveStateKey] = item.SaveState, + [Models.Internal.Driver.RequiresArtworkKey] = item.RequiresArtwork, + [Models.Internal.Driver.UnofficialKey] = item.Unofficial, + [Models.Internal.Driver.NoSoundHardwareKey] = item.NoSoundHardware, + [Models.Internal.Driver.IncompleteKey] = item.Incomplete, + }; + return driver; + } + + /// + /// Convert from to + /// + public static Models.Internal.Media ConvertFromLogiqx(Models.Logiqx.Media item) + { + var media = new Models.Internal.Media + { + [Models.Internal.Media.NameKey] = item.Name, + [Models.Internal.Media.MD5Key] = item.MD5, + [Models.Internal.Media.SHA1Key] = item.SHA1, + [Models.Internal.Media.SHA256Key] = item.SHA256, + [Models.Internal.Media.SpamSumKey] = item.SpamSum, + }; + return media; + } + + /// + /// Convert from to + /// + public static Models.Internal.Release ConvertFromLogiqx(Models.Logiqx.Release item) + { + var release = new Models.Internal.Release + { + [Models.Internal.Release.NameKey] = item.Name, + [Models.Internal.Release.RegionKey] = item.Region, + [Models.Internal.Release.LanguageKey] = item.Language, + [Models.Internal.Release.DateKey] = item.Date, + [Models.Internal.Release.DefaultKey] = item.Default, + }; + return release; + } + + /// + /// Convert from to + /// + public static Models.Internal.Rom ConvertFromLogiqx(Models.Logiqx.Rom item) + { + var rom = new Models.Internal.Rom + { + [Models.Internal.Rom.NameKey] = item.Name, + [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.xxHash364Key] = item.xxHash364, + [Models.Internal.Rom.xxHash3128Key] = item.xxHash3128, + [Models.Internal.Rom.MergeKey] = item.Merge, + [Models.Internal.Rom.StatusKey] = item.Status, + [Models.Internal.Rom.SerialKey] = item.Serial, + [Models.Internal.Rom.HeaderKey] = item.Header, + [Models.Internal.Rom.DateKey] = item.Date, + [Models.Internal.Rom.InvertedKey] = item.Inverted, + [Models.Internal.Rom.MIAKey] = item.MIA, + }; + return rom; + } + + /// + /// Convert from to + /// + public static Models.Internal.Sample ConvertFromLogiqx(Models.Logiqx.Sample item) + { + var sample = new Models.Internal.Sample + { + [Models.Internal.Sample.NameKey] = item.Name, + }; + return sample; + } + + /// + /// Convert from to + /// + public static Models.Internal.SoftwareList ConvertFromLogiqx(Models.Logiqx.SoftwareList item) + { + var softwareList = new Models.Internal.SoftwareList + { + [Models.Internal.SoftwareList.TagKey] = item.Tag, + [Models.Internal.SoftwareList.NameKey] = item.Name, + [Models.Internal.SoftwareList.StatusKey] = item.Status, + [Models.Internal.SoftwareList.FilterKey] = item.Filter, + }; + return softwareList; + } + + #endregion } } \ No newline at end of file