mirror of
https://github.com/claunia/SabreTools.git
synced 2025-12-16 19:14:27 +00:00
Wire up OfflineList canOpen
This commit is contained in:
@@ -239,8 +239,15 @@ namespace SabreTools.Library.DatFiles
|
||||
/// <summary>
|
||||
/// OfflineList info list
|
||||
/// </summary>
|
||||
[JsonProperty("infos")]
|
||||
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>
|
||||
/// Rom title
|
||||
/// </summary>
|
||||
|
||||
@@ -311,6 +311,16 @@ namespace SabreTools.Library.DatFiles
|
||||
|
||||
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":
|
||||
content = jtr.ReadAsString();
|
||||
Header.RomTitle = (Header.MameConfig == null ? content : Header.RomTitle);
|
||||
@@ -1165,6 +1175,18 @@ namespace SabreTools.Library.DatFiles
|
||||
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))
|
||||
{
|
||||
jtw.WritePropertyName("romtitle");
|
||||
|
||||
@@ -162,7 +162,6 @@ namespace SabreTools.Library.DatFiles
|
||||
reader.Skip();
|
||||
break;
|
||||
|
||||
// TODO: Use header values
|
||||
case "canopen":
|
||||
ReadCanOpen(reader.ReadSubtree());
|
||||
|
||||
@@ -170,7 +169,7 @@ namespace SabreTools.Library.DatFiles
|
||||
reader.Skip();
|
||||
break;
|
||||
|
||||
// TODO: Use header values
|
||||
// TODO: Use all header values
|
||||
case "newdat":
|
||||
ReadNewDat(reader.ReadSubtree());
|
||||
|
||||
@@ -241,7 +240,7 @@ namespace SabreTools.Library.DatFiles
|
||||
private void ReadCanOpen(XmlReader reader)
|
||||
{
|
||||
// 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 (reader == null)
|
||||
@@ -264,7 +263,7 @@ namespace SabreTools.Library.DatFiles
|
||||
switch (reader.Name.ToLowerInvariant())
|
||||
{
|
||||
case "extension":
|
||||
extensions.Add(reader.ReadElementContentAsString());
|
||||
Header.CanOpen.Add(reader.ReadElementContentAsString());
|
||||
break;
|
||||
|
||||
default:
|
||||
@@ -783,9 +782,18 @@ namespace SabreTools.Library.DatFiles
|
||||
xtw.WriteEndElement();
|
||||
}
|
||||
|
||||
if (Header.CanOpen != null)
|
||||
{
|
||||
xtw.WriteStartElement("canOpen");
|
||||
xtw.WriteElementString("extension", ".bin");
|
||||
|
||||
foreach (string extension in Header.CanOpen)
|
||||
{
|
||||
xtw.WriteElementString("extension", extension);
|
||||
}
|
||||
|
||||
// End canOpen
|
||||
xtw.WriteEndElement();
|
||||
}
|
||||
|
||||
xtw.WriteStartElement("newDat");
|
||||
xtw.WriteElementString("datVersionURL", Header.Url);
|
||||
|
||||
@@ -222,7 +222,19 @@ namespace SabreTools.Library.DatFiles
|
||||
Header.ScreenshotsHeight = (Header.ScreenshotsHeight == null ? value : Header.ScreenshotsHeight);
|
||||
break;
|
||||
|
||||
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":
|
||||
Header.RomTitle = (Header.RomTitle == null ? value : Header.RomTitle);
|
||||
@@ -814,6 +826,22 @@ namespace SabreTools.Library.DatFiles
|
||||
case "screenshots-height":
|
||||
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 "rom title":
|
||||
case "rom-title":
|
||||
|
||||
Reference in New Issue
Block a user