Wire up OfflineList canOpen

This commit is contained in:
Matt Nadareski
2020-08-20 16:30:16 -07:00
parent 0b782557b9
commit f498890417
4 changed files with 73 additions and 8 deletions

View File

@@ -239,8 +239,15 @@ namespace SabreTools.Library.DatFiles
/// <summary> /// <summary>
/// OfflineList info list /// OfflineList info list
/// </summary> /// </summary>
[JsonProperty("infos")]
public List<Tuple<string, bool?, bool?, bool?>> Infos { get; set; } public List<Tuple<string, bool?, bool?, bool?>> Infos { get; set; }
/// <summary>
/// OfflineList can-open extensions
/// </summary>
[JsonProperty("canopen")]
public List<string> CanOpen { get; set; }
/// <summary> /// <summary>
/// Rom title /// Rom title
/// </summary> /// </summary>

View File

@@ -311,6 +311,16 @@ namespace SabreTools.Library.DatFiles
break; break;
case "canopen":
Header.CanOpen = new List<string>();
jtr.Read(); // Start Array
while (!sr.EndOfStream && jtr.TokenType != JsonToken.EndArray)
{
Header.CanOpen.Add(jtr.ReadAsString());
}
break;
case "romtitle": case "romtitle":
content = jtr.ReadAsString(); content = jtr.ReadAsString();
Header.RomTitle = (Header.MameConfig == null ? content : Header.RomTitle); Header.RomTitle = (Header.MameConfig == null ? content : Header.RomTitle);
@@ -1165,6 +1175,18 @@ namespace SabreTools.Library.DatFiles
jtw.WriteEndArray(); jtw.WriteEndArray();
} }
if (Header.CanOpen != null)
{
jtw.WritePropertyName("canopen");
jtw.WriteStartArray();
foreach (string extension in Header.CanOpen)
{
jtw.WriteValue(extension);
}
jtw.WriteEndArray();
}
if (!string.IsNullOrWhiteSpace(Header.RomTitle)) if (!string.IsNullOrWhiteSpace(Header.RomTitle))
{ {
jtw.WritePropertyName("romtitle"); jtw.WritePropertyName("romtitle");

View File

@@ -162,7 +162,6 @@ namespace SabreTools.Library.DatFiles
reader.Skip(); reader.Skip();
break; break;
// TODO: Use header values
case "canopen": case "canopen":
ReadCanOpen(reader.ReadSubtree()); ReadCanOpen(reader.ReadSubtree());
@@ -170,7 +169,7 @@ namespace SabreTools.Library.DatFiles
reader.Skip(); reader.Skip();
break; break;
// TODO: Use header values // TODO: Use all header values
case "newdat": case "newdat":
ReadNewDat(reader.ReadSubtree()); ReadNewDat(reader.ReadSubtree());
@@ -241,7 +240,7 @@ namespace SabreTools.Library.DatFiles
private void ReadCanOpen(XmlReader reader) private void ReadCanOpen(XmlReader reader)
{ {
// Prepare all internal variables // Prepare all internal variables
List<string> extensions = new List<string>(); Header.CanOpen = new List<string>();
// If there's no subtree to the configuration, skip it // If there's no subtree to the configuration, skip it
if (reader == null) if (reader == null)
@@ -264,7 +263,7 @@ namespace SabreTools.Library.DatFiles
switch (reader.Name.ToLowerInvariant()) switch (reader.Name.ToLowerInvariant())
{ {
case "extension": case "extension":
extensions.Add(reader.ReadElementContentAsString()); Header.CanOpen.Add(reader.ReadElementContentAsString());
break; break;
default: default:
@@ -783,9 +782,18 @@ namespace SabreTools.Library.DatFiles
xtw.WriteEndElement(); xtw.WriteEndElement();
} }
xtw.WriteStartElement("canOpen"); if (Header.CanOpen != null)
xtw.WriteElementString("extension", ".bin"); {
xtw.WriteEndElement(); xtw.WriteStartElement("canOpen");
foreach (string extension in Header.CanOpen)
{
xtw.WriteElementString("extension", extension);
}
// End canOpen
xtw.WriteEndElement();
}
xtw.WriteStartElement("newDat"); xtw.WriteStartElement("newDat");
xtw.WriteElementString("datVersionURL", Header.Url); xtw.WriteElementString("datVersionURL", Header.Url);

View File

@@ -222,7 +222,19 @@ namespace SabreTools.Library.DatFiles
Header.ScreenshotsHeight = (Header.ScreenshotsHeight == null ? value : Header.ScreenshotsHeight); Header.ScreenshotsHeight = (Header.ScreenshotsHeight == null ? value : Header.ScreenshotsHeight);
break; break;
// TODO: Figure out how Header.Infos could be read in case "DatFile.Infos":
// TODO: Figure out how Header.Infos could be read in
break;
case "DatFile.CanOpen":
Header.CanOpen = new List<string>();
var extensions = value.Split(';');
foreach (var extension in extensions)
{
Header.CanOpen.Add(extension);
}
break;
case "DatFile.RomTitle": case "DatFile.RomTitle":
Header.RomTitle = (Header.RomTitle == null ? value : Header.RomTitle); Header.RomTitle = (Header.RomTitle == null ? value : Header.RomTitle);
@@ -814,6 +826,22 @@ namespace SabreTools.Library.DatFiles
case "screenshots-height": case "screenshots-height":
return "DatFile.ScreenshotsHeight"; return "DatFile.ScreenshotsHeight";
case "offlineinfos":
case "offline infos":
case "offline-infos":
case "olinfos":
case "ol infos":
case "ol-infos":
case "offlinelistinfos":
case "offlinelist infos":
case "offlinelist-infos":
return "DatFile.Infos";
case "canopen":
case "can open":
case "can-open":
return "DatFile.CanOpen";
case "romtitle": case "romtitle":
case "rom title": case "rom title":
case "rom-title": case "rom-title":