Add OpenMSX internal converters

This commit is contained in:
Matt Nadareski
2023-08-04 14:32:31 -04:00
parent 1cdd288590
commit c62f6e0004
2 changed files with 148 additions and 0 deletions

View File

@@ -1250,5 +1250,65 @@ namespace SabreTools.Serialization
}
#endregion
#region OpenMSX
/// <summary>
/// Convert from <cref="Models.OpenMSX.Dump"/> to <cref="Models.Internal.Dump"/>
/// </summary>
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);
switch (item.Rom)
{
case Models.OpenMSX.Rom rom:
dump[Models.Internal.Dump.RomKey] = ConvertFromOpenMSX(rom);
break;
case Models.OpenMSX.MegaRom megaRom:
dump[Models.Internal.Dump.MegaRomKey] = ConvertFromOpenMSX(megaRom);
break;
case Models.OpenMSX.SCCPlusCart sccPlusCart:
dump[Models.Internal.Dump.SCCPlusCartKey] = ConvertFromOpenMSX(sccPlusCart);
break;
}
return dump;
}
/// <summary>
/// Convert from <cref="Models.OpenMSX.Original"/> to <cref="Models.Internal.Rom"/>
/// </summary>
public static Models.Internal.Original ConvertFromOpenMSX(Models.OpenMSX.Original item)
{
var original = new Models.Internal.Original
{
[Models.Internal.Original.ValueKey] = item.Value,
[Models.Internal.Original.ContentKey] = item.Content,
};
return original;
}
/// <summary>
/// Convert from <cref="Models.OpenMSX.RomBase"/> to <cref="Models.Internal.Rom"/>
/// </summary>
public static Models.Internal.Rom ConvertFromOpenMSX(Models.OpenMSX.RomBase item)
{
var rom = new Models.Internal.Rom
{
[Models.Internal.Rom.StartKey] = item.Start,
[Models.Internal.Rom.TypeKey] = item.Type,
[Models.Internal.Rom.SHA1Key] = item.Hash,
[Models.Internal.Rom.RemarkKey] = item.Remark,
};
return rom;
}
#endregion
}
}