diff --git a/SabreTools.Serialization/EverdriveSMDB.Deserializer.cs b/SabreTools.Serialization/EverdriveSMDB.Deserializer.cs
index 9d99757e..b907181e 100644
--- a/SabreTools.Serialization/EverdriveSMDB.Deserializer.cs
+++ b/SabreTools.Serialization/EverdriveSMDB.Deserializer.cs
@@ -76,5 +76,42 @@ namespace SabreTools.Serialization
dat.Row = rows.ToArray();
return dat;
}
+
+ // TODO: Add deserialization of entire MetadataFile
+ #region Internal
+
+ ///
+ /// Convert from to an array of
+ ///
+ public static Row[]? ConvertMachineToEverdriveSMDB(Models.Internal.Machine item)
+ {
+ if (item == null)
+ return null;
+
+ var roms = item.Read(Models.Internal.Machine.RomKey);
+ return roms?.Select(ConvertToEverdriveSMDB)?.ToArray();
+ }
+
+ ///
+ /// Convert from to
+ ///
+ private static Row? ConvertToEverdriveSMDB(Models.Internal.Rom? item)
+ {
+ if (item == null)
+ return null;
+
+ var row = new Row
+ {
+ SHA256 = item.ReadString(Models.Internal.Rom.SHA256Key),
+ Name = item.ReadString(Models.Internal.Rom.NameKey),
+ SHA1 = item.ReadString(Models.Internal.Rom.SHA1Key),
+ MD5 = item.ReadString(Models.Internal.Rom.MD5Key),
+ CRC32 = item.ReadString(Models.Internal.Rom.CRCKey),
+ Size = item.ReadString(Models.Internal.Rom.SizeKey),
+ };
+ return row;
+ }
+
+ #endregion
}
}
\ No newline at end of file
diff --git a/SabreTools.Serialization/EverdriveSMDB.Serializer.cs b/SabreTools.Serialization/EverdriveSMDB.Serializer.cs
index f6ed64ba..881be788 100644
--- a/SabreTools.Serialization/EverdriveSMDB.Serializer.cs
+++ b/SabreTools.Serialization/EverdriveSMDB.Serializer.cs
@@ -82,5 +82,66 @@ namespace SabreTools.Serialization
writer.Flush();
}
}
+
+ #region Internal
+
+ ///
+ /// Convert from to
+ ///
+ public static Models.Internal.MetadataFile ConvertToInternalModel(MetadataFile item)
+ {
+ var metadataFile = new Models.Internal.MetadataFile
+ {
+ [Models.Internal.MetadataFile.HeaderKey] = ConvertHeaderToInternalModel(item),
+ };
+
+ if (item?.Row != null && item.Row.Any())
+ metadataFile[Models.Internal.MetadataFile.MachineKey] = item.Row.Select(ConvertMachineToInternalModel).ToArray();
+
+ return metadataFile;
+ }
+
+ ///
+ /// Convert from to
+ ///
+ private static Models.Internal.Header ConvertHeaderToInternalModel(MetadataFile item)
+ {
+ var header = new Models.Internal.Header
+ {
+ [Models.Internal.Header.NameKey] = "Everdrive SMDB",
+ };
+ return header;
+ }
+
+ ///
+ /// Convert from to
+ ///
+ private static Models.Internal.Machine ConvertMachineToInternalModel(Row item)
+ {
+ var machine = new Models.Internal.Machine
+ {
+ [Models.Internal.Machine.RomKey] = ConvertToInternalModel(item),
+ };
+ return machine;
+ }
+
+ ///
+ /// Convert from to
+ ///
+ private static Models.Internal.Rom ConvertToInternalModel(Row item)
+ {
+ var rom = new Models.Internal.Rom
+ {
+ [Models.Internal.Rom.SHA256Key] = item.SHA256,
+ [Models.Internal.Rom.NameKey] = item.Name,
+ [Models.Internal.Rom.SHA1Key] = item.SHA1,
+ [Models.Internal.Rom.MD5Key] = item.MD5,
+ [Models.Internal.Rom.CRCKey] = item.CRC32,
+ [Models.Internal.Rom.SizeKey] = item.Size,
+ };
+ return rom;
+ }
+
+ #endregion
}
}
\ No newline at end of file
diff --git a/SabreTools.Serialization/Internal.EverdriveSMDB.cs b/SabreTools.Serialization/Internal.EverdriveSMDB.cs
deleted file mode 100644
index 6f54f39c..00000000
--- a/SabreTools.Serialization/Internal.EverdriveSMDB.cs
+++ /dev/null
@@ -1,108 +0,0 @@
-using System.Linq;
-using SabreTools.Models.Internal;
-
-namespace SabreTools.Serialization
-{
- ///
- /// Serializer for EverdriveSMDB models to internal structure
- ///
- public partial class Internal
- {
- #region Serialize
-
- ///
- /// Convert from to
- ///
- public static MetadataFile ConvertToInternalModel(Models.EverdriveSMDB.MetadataFile item)
- {
- var metadataFile = new MetadataFile
- {
- [MetadataFile.HeaderKey] = ConvertHeaderToInternalModel(item),
- };
-
- if (item?.Row != null && item.Row.Any())
- metadataFile[MetadataFile.MachineKey] = item.Row.Select(ConvertMachineToInternalModel).ToArray();
-
- return metadataFile;
- }
-
- ///
- /// Convert from to
- ///
- private static Header ConvertHeaderToInternalModel(Models.EverdriveSMDB.MetadataFile item)
- {
- var header = new Header
- {
- [Header.NameKey] = "Everdrive SMDB",
- };
- return header;
- }
-
- ///
- /// Convert from to
- ///
- private static Machine ConvertMachineToInternalModel(Models.EverdriveSMDB.Row item)
- {
- var machine = new Machine
- {
- [Machine.RomKey] = ConvertToInternalModel(item),
- };
- return machine;
- }
-
- ///
- /// Convert from to
- ///
- private static Rom ConvertToInternalModel(Models.EverdriveSMDB.Row item)
- {
- var rom = new Rom
- {
- [Rom.SHA256Key] = item.SHA256,
- [Rom.NameKey] = item.Name,
- [Rom.SHA1Key] = item.SHA1,
- [Rom.MD5Key] = item.MD5,
- [Rom.CRCKey] = item.CRC32,
- [Rom.SizeKey] = item.Size,
- };
- return rom;
- }
-
- #endregion
-
- #region Deserialize
-
- ///
- /// Convert from to an array of
- ///
- public static Models.EverdriveSMDB.Row[]? ConvertMachineToEverdriveSMDB(Machine item)
- {
- if (item == null)
- return null;
-
- var roms = item.Read(Machine.RomKey);
- return roms?.Select(ConvertToEverdriveSMDB)?.ToArray();
- }
-
- ///
- /// Convert from to
- ///
- private static Models.EverdriveSMDB.Row? ConvertToEverdriveSMDB(Rom? item)
- {
- if (item == null)
- return null;
-
- var row = new Models.EverdriveSMDB.Row
- {
- SHA256 = item.ReadString(Rom.SHA256Key),
- Name = item.ReadString(Rom.NameKey),
- SHA1 = item.ReadString(Rom.SHA1Key),
- MD5 = item.ReadString(Rom.MD5Key),
- CRC32 = item.ReadString(Rom.CRCKey),
- Size = item.ReadString(Rom.SizeKey),
- };
- return row;
- }
-
- #endregion
- }
-}
\ No newline at end of file