mirror of
https://github.com/claunia/SabreTools.git
synced 2025-12-16 19:14:27 +00:00
Wire up infos for OfflineList
This commit is contained in:
@@ -236,6 +236,11 @@ namespace SabreTools.Library.DatFiles
|
|||||||
[JsonProperty("screenshotsheight")]
|
[JsonProperty("screenshotsheight")]
|
||||||
public string ScreenshotsHeight { get; set; }
|
public string ScreenshotsHeight { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// OfflineList info list
|
||||||
|
/// </summary>
|
||||||
|
public List<Tuple<string, bool?, bool?, bool?>> Infos { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Rom title
|
/// Rom title
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@@ -253,6 +253,64 @@ namespace SabreTools.Library.DatFiles
|
|||||||
Header.ScreenshotsHeight = (Header.ScreenshotsHeight == null ? content : Header.ScreenshotsHeight);
|
Header.ScreenshotsHeight = (Header.ScreenshotsHeight == null ? content : Header.ScreenshotsHeight);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case "infos":
|
||||||
|
Header.Infos = new List<Tuple<string, bool?, bool?, bool?>>();
|
||||||
|
jtr.Read(); // Start Array
|
||||||
|
while (!sr.EndOfStream)
|
||||||
|
{
|
||||||
|
jtr.Read(); // Start object (or end array)
|
||||||
|
if (jtr.TokenType == JsonToken.EndArray)
|
||||||
|
break;
|
||||||
|
|
||||||
|
// Get default values
|
||||||
|
string nameValue = string.Empty;
|
||||||
|
bool? visibleValue = null;
|
||||||
|
bool? inNamingOptionValue = null;
|
||||||
|
bool? defaultValue = null;
|
||||||
|
|
||||||
|
jtr.Read();
|
||||||
|
while (!sr.EndOfStream)
|
||||||
|
{
|
||||||
|
// If we hit the end of the machine, return
|
||||||
|
if (jtr.TokenType == JsonToken.EndObject)
|
||||||
|
return;
|
||||||
|
|
||||||
|
// We don't care about anything except properties
|
||||||
|
if (jtr.TokenType != JsonToken.PropertyName)
|
||||||
|
{
|
||||||
|
jtr.Read();
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (jtr.Value)
|
||||||
|
{
|
||||||
|
case "name":
|
||||||
|
nameValue = jtr.ReadAsString();
|
||||||
|
break;
|
||||||
|
case "visible":
|
||||||
|
visibleValue = jtr.ReadAsString().AsYesNo();
|
||||||
|
break;
|
||||||
|
case "inNamingOption":
|
||||||
|
inNamingOptionValue = jtr.ReadAsString().AsYesNo();
|
||||||
|
break;
|
||||||
|
case "default":
|
||||||
|
defaultValue = jtr.ReadAsString().AsYesNo();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
jtr.Read(); // End object
|
||||||
|
}
|
||||||
|
|
||||||
|
// Add the new info tuple
|
||||||
|
Header.Infos.Add(new Tuple<string, bool?, bool?, bool?>(
|
||||||
|
nameValue,
|
||||||
|
visibleValue,
|
||||||
|
inNamingOptionValue,
|
||||||
|
defaultValue));
|
||||||
|
}
|
||||||
|
|
||||||
|
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);
|
||||||
@@ -1086,6 +1144,27 @@ namespace SabreTools.Library.DatFiles
|
|||||||
jtw.WriteValue(Header.ScreenshotsHeight);
|
jtw.WriteValue(Header.ScreenshotsHeight);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (Header.Infos != null)
|
||||||
|
{
|
||||||
|
jtw.WritePropertyName("infos");
|
||||||
|
jtw.WriteStartArray();
|
||||||
|
foreach (var info in Header.Infos)
|
||||||
|
{
|
||||||
|
jtw.WriteStartObject();
|
||||||
|
jtw.WritePropertyName("name");
|
||||||
|
jtw.WriteValue(info.Item1);
|
||||||
|
jtw.WritePropertyName("visible");
|
||||||
|
jtw.WriteValue(info.Item2.ToString());
|
||||||
|
jtw.WritePropertyName("inNamingOption");
|
||||||
|
jtw.WriteValue(info.Item3.ToString());
|
||||||
|
jtw.WritePropertyName("default");
|
||||||
|
jtw.WriteValue(info.Item4.ToString());
|
||||||
|
jtw.WriteEndObject();
|
||||||
|
}
|
||||||
|
|
||||||
|
jtw.WriteEndArray();
|
||||||
|
}
|
||||||
|
|
||||||
if (!string.IsNullOrWhiteSpace(Header.RomTitle))
|
if (!string.IsNullOrWhiteSpace(Header.RomTitle))
|
||||||
{
|
{
|
||||||
jtw.WritePropertyName("romtitle");
|
jtw.WritePropertyName("romtitle");
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ using System.Xml;
|
|||||||
using SabreTools.Library.Data;
|
using SabreTools.Library.Data;
|
||||||
using SabreTools.Library.DatItems;
|
using SabreTools.Library.DatItems;
|
||||||
using SabreTools.Library.IO;
|
using SabreTools.Library.IO;
|
||||||
|
using SabreTools.Library.Tools;
|
||||||
|
|
||||||
namespace SabreTools.Library.DatFiles
|
namespace SabreTools.Library.DatFiles
|
||||||
{
|
{
|
||||||
@@ -154,7 +155,6 @@ namespace SabreTools.Library.DatFiles
|
|||||||
Header.ScreenshotsHeight = (Header.ScreenshotsHeight == null ? content : Header.ScreenshotsHeight);
|
Header.ScreenshotsHeight = (Header.ScreenshotsHeight == null ? content : Header.ScreenshotsHeight);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
// TODO: Use header values
|
|
||||||
case "infos":
|
case "infos":
|
||||||
ReadInfos(reader.ReadSubtree());
|
ReadInfos(reader.ReadSubtree());
|
||||||
|
|
||||||
@@ -208,6 +208,9 @@ namespace SabreTools.Library.DatFiles
|
|||||||
if (reader == null)
|
if (reader == null)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
// Setup the infos object
|
||||||
|
Header.Infos = new List<Tuple<string, bool?, bool?, bool?>>();
|
||||||
|
|
||||||
// Otherwise, add what is possible
|
// Otherwise, add what is possible
|
||||||
reader.MoveToContent();
|
reader.MoveToContent();
|
||||||
|
|
||||||
@@ -221,104 +224,13 @@ namespace SabreTools.Library.DatFiles
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get all infos items
|
// Add all tuples to the info list
|
||||||
switch (reader.Name.ToLowerInvariant())
|
Header.Infos.Add(new Tuple<string, bool?, bool?, bool?>(
|
||||||
{
|
reader.Name.ToLowerInvariant(),
|
||||||
case "title":
|
reader.GetAttribute("visible").AsYesNo(),
|
||||||
reader.GetAttribute("visible"); // (true|false)
|
reader.GetAttribute("inNamingOption").AsYesNo(),
|
||||||
reader.GetAttribute("inNamingOption"); // (true|false)
|
reader.GetAttribute("default").AsYesNo()));
|
||||||
reader.GetAttribute("default"); // (true|false)
|
reader.Read();
|
||||||
reader.Read();
|
|
||||||
break;
|
|
||||||
|
|
||||||
case "location":
|
|
||||||
reader.GetAttribute("visible"); // (true|false)
|
|
||||||
reader.GetAttribute("inNamingOption"); // (true|false)
|
|
||||||
reader.GetAttribute("default"); // (true|false)
|
|
||||||
reader.Read();
|
|
||||||
break;
|
|
||||||
|
|
||||||
case "publisher":
|
|
||||||
reader.GetAttribute("visible"); // (true|false)
|
|
||||||
reader.GetAttribute("inNamingOption"); // (true|false)
|
|
||||||
reader.GetAttribute("default"); // (true|false)
|
|
||||||
reader.Read();
|
|
||||||
break;
|
|
||||||
|
|
||||||
case "sourcerom":
|
|
||||||
reader.GetAttribute("visible"); // (true|false)
|
|
||||||
reader.GetAttribute("inNamingOption"); // (true|false)
|
|
||||||
reader.GetAttribute("default"); // (true|false)
|
|
||||||
reader.Read();
|
|
||||||
break;
|
|
||||||
|
|
||||||
case "savetype":
|
|
||||||
reader.GetAttribute("visible"); // (true|false)
|
|
||||||
reader.GetAttribute("inNamingOption"); // (true|false)
|
|
||||||
reader.GetAttribute("default"); // (true|false)
|
|
||||||
reader.Read();
|
|
||||||
break;
|
|
||||||
|
|
||||||
case "romsize":
|
|
||||||
reader.GetAttribute("visible"); // (true|false)
|
|
||||||
reader.GetAttribute("inNamingOption"); // (true|false)
|
|
||||||
reader.GetAttribute("default"); // (true|false)
|
|
||||||
reader.Read();
|
|
||||||
break;
|
|
||||||
|
|
||||||
case "releasenumber":
|
|
||||||
reader.GetAttribute("visible"); // (true|false)
|
|
||||||
reader.GetAttribute("inNamingOption"); // (true|false)
|
|
||||||
reader.GetAttribute("default"); // (true|false)
|
|
||||||
reader.Read();
|
|
||||||
break;
|
|
||||||
|
|
||||||
case "languagenumber":
|
|
||||||
reader.GetAttribute("visible"); // (true|false)
|
|
||||||
reader.GetAttribute("inNamingOption"); // (true|false)
|
|
||||||
reader.GetAttribute("default"); // (true|false)
|
|
||||||
reader.Read();
|
|
||||||
break;
|
|
||||||
|
|
||||||
case "comment":
|
|
||||||
reader.GetAttribute("visible"); // (true|false)
|
|
||||||
reader.GetAttribute("inNamingOption"); // (true|false)
|
|
||||||
reader.GetAttribute("default"); // (true|false)
|
|
||||||
reader.Read();
|
|
||||||
break;
|
|
||||||
|
|
||||||
case "romcrc":
|
|
||||||
reader.GetAttribute("visible"); // (true|false)
|
|
||||||
reader.GetAttribute("inNamingOption"); // (true|false)
|
|
||||||
reader.GetAttribute("default"); // (true|false)
|
|
||||||
reader.Read();
|
|
||||||
break;
|
|
||||||
|
|
||||||
case "im1crc":
|
|
||||||
reader.GetAttribute("visible"); // (true|false)
|
|
||||||
reader.GetAttribute("inNamingOption"); // (true|false)
|
|
||||||
reader.GetAttribute("default"); // (true|false)
|
|
||||||
reader.Read();
|
|
||||||
break;
|
|
||||||
|
|
||||||
case "im2crc":
|
|
||||||
reader.GetAttribute("visible"); // (true|false)
|
|
||||||
reader.GetAttribute("inNamingOption"); // (true|false)
|
|
||||||
reader.GetAttribute("default"); // (true|false)
|
|
||||||
reader.Read();
|
|
||||||
break;
|
|
||||||
|
|
||||||
case "languages":
|
|
||||||
reader.GetAttribute("visible"); // (true|false)
|
|
||||||
reader.GetAttribute("inNamingOption"); // (true|false)
|
|
||||||
reader.GetAttribute("default"); // (true|false)
|
|
||||||
reader.Read();
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
|
||||||
reader.Read();
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -854,89 +766,23 @@ namespace SabreTools.Library.DatFiles
|
|||||||
xtw.WriteElementString("screenshotsWidth", Header.ScreenshotsWidth ?? string.Empty);
|
xtw.WriteElementString("screenshotsWidth", Header.ScreenshotsWidth ?? string.Empty);
|
||||||
xtw.WriteElementString("screenshotsHeight", Header.ScreenshotsHeight ?? string.Empty);
|
xtw.WriteElementString("screenshotsHeight", Header.ScreenshotsHeight ?? string.Empty);
|
||||||
|
|
||||||
xtw.WriteStartElement("infos");
|
if (Header.Infos != null)
|
||||||
|
{
|
||||||
|
xtw.WriteStartElement("infos");
|
||||||
|
|
||||||
xtw.WriteStartElement("title");
|
foreach (var info in Header.Infos)
|
||||||
xtw.WriteAttributeString("visible", "false");
|
{
|
||||||
xtw.WriteAttributeString("inNamingOption", "true");
|
xtw.WriteStartElement(info.Item1);
|
||||||
xtw.WriteAttributeString("default", "false");
|
xtw.WriteAttributeString("visible", info.Item2.ToString());
|
||||||
xtw.WriteEndElement();
|
xtw.WriteAttributeString("inNamingOption", info.Item3.ToString());
|
||||||
|
xtw.WriteAttributeString("default", info.Item4.ToString());
|
||||||
xtw.WriteStartElement("location");
|
xtw.WriteEndElement();
|
||||||
xtw.WriteAttributeString("visible", "true");
|
}
|
||||||
xtw.WriteAttributeString("inNamingOption", "true");
|
|
||||||
xtw.WriteAttributeString("default", "true");
|
|
||||||
xtw.WriteEndElement();
|
|
||||||
|
|
||||||
xtw.WriteStartElement("publisher");
|
|
||||||
xtw.WriteAttributeString("visible", "true");
|
|
||||||
xtw.WriteAttributeString("inNamingOption", "true");
|
|
||||||
xtw.WriteAttributeString("default", "true");
|
|
||||||
xtw.WriteEndElement();
|
|
||||||
|
|
||||||
xtw.WriteStartElement("sourceRom");
|
|
||||||
xtw.WriteAttributeString("visible", "true");
|
|
||||||
xtw.WriteAttributeString("inNamingOption", "true");
|
|
||||||
xtw.WriteAttributeString("default", "true");
|
|
||||||
xtw.WriteEndElement();
|
|
||||||
|
|
||||||
xtw.WriteStartElement("saveType");
|
|
||||||
xtw.WriteAttributeString("visible", "true");
|
|
||||||
xtw.WriteAttributeString("inNamingOption", "true");
|
|
||||||
xtw.WriteAttributeString("default", "true");
|
|
||||||
xtw.WriteEndElement();
|
|
||||||
|
|
||||||
xtw.WriteStartElement("romSize");
|
|
||||||
xtw.WriteAttributeString("visible", "true");
|
|
||||||
xtw.WriteAttributeString("inNamingOption", "true");
|
|
||||||
xtw.WriteAttributeString("default", "true");
|
|
||||||
xtw.WriteEndElement();
|
|
||||||
|
|
||||||
xtw.WriteStartElement("releaseNumber");
|
|
||||||
xtw.WriteAttributeString("visible", "true");
|
|
||||||
xtw.WriteAttributeString("inNamingOption", "true");
|
|
||||||
xtw.WriteAttributeString("default", "false");
|
|
||||||
xtw.WriteEndElement();
|
|
||||||
|
|
||||||
xtw.WriteStartElement("languageNumber");
|
|
||||||
xtw.WriteAttributeString("visible", "true");
|
|
||||||
xtw.WriteAttributeString("inNamingOption", "true");
|
|
||||||
xtw.WriteAttributeString("default", "false");
|
|
||||||
xtw.WriteEndElement();
|
|
||||||
|
|
||||||
xtw.WriteStartElement("comment");
|
|
||||||
xtw.WriteAttributeString("visible", "true");
|
|
||||||
xtw.WriteAttributeString("inNamingOption", "true");
|
|
||||||
xtw.WriteAttributeString("default", "false");
|
|
||||||
xtw.WriteEndElement();
|
|
||||||
|
|
||||||
xtw.WriteStartElement("romCRC");
|
|
||||||
xtw.WriteAttributeString("visible", "true");
|
|
||||||
xtw.WriteAttributeString("inNamingOption", "true");
|
|
||||||
xtw.WriteAttributeString("default", "false");
|
|
||||||
xtw.WriteEndElement();
|
|
||||||
|
|
||||||
xtw.WriteStartElement("im1CRC");
|
|
||||||
xtw.WriteAttributeString("visible", "false");
|
|
||||||
xtw.WriteAttributeString("inNamingOption", "false");
|
|
||||||
xtw.WriteAttributeString("default", "false");
|
|
||||||
xtw.WriteEndElement();
|
|
||||||
|
|
||||||
xtw.WriteStartElement("im2CRC");
|
|
||||||
xtw.WriteAttributeString("visible", "false");
|
|
||||||
xtw.WriteAttributeString("inNamingOption", "false");
|
|
||||||
xtw.WriteAttributeString("default", "false");
|
|
||||||
xtw.WriteEndElement();
|
|
||||||
|
|
||||||
xtw.WriteStartElement("languages");
|
|
||||||
xtw.WriteAttributeString("visible", "true");
|
|
||||||
xtw.WriteAttributeString("inNamingOption", "true");
|
|
||||||
xtw.WriteAttributeString("default", "true");
|
|
||||||
xtw.WriteEndElement();
|
|
||||||
|
|
||||||
// End infos
|
|
||||||
xtw.WriteEndElement();
|
|
||||||
|
|
||||||
|
// End infos
|
||||||
|
xtw.WriteEndElement();
|
||||||
|
}
|
||||||
|
|
||||||
xtw.WriteStartElement("canOpen");
|
xtw.WriteStartElement("canOpen");
|
||||||
xtw.WriteElementString("extension", ".bin");
|
xtw.WriteElementString("extension", ".bin");
|
||||||
xtw.WriteEndElement();
|
xtw.WriteEndElement();
|
||||||
|
|||||||
@@ -222,6 +222,8 @@ 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.RomTitle":
|
case "DatFile.RomTitle":
|
||||||
Header.RomTitle = (Header.RomTitle == null ? value : Header.RomTitle);
|
Header.RomTitle = (Header.RomTitle == null ? value : Header.RomTitle);
|
||||||
break;
|
break;
|
||||||
|
|||||||
Reference in New Issue
Block a user