Wire up remaining Logiqx header values

This commit is contained in:
Matt Nadareski
2020-08-20 17:23:19 -07:00
parent e139b0f8f2
commit 7555523799
4 changed files with 258 additions and 34 deletions

View File

@@ -203,14 +203,41 @@ namespace SabreTools.Library.DatFiles
[JsonProperty("build")] [JsonProperty("build")]
public string Build { get; set; } public string Build { get; set; }
// TODO: Implement the following header values: /// <summary>
// - romcenter.plugin /// RomCenter rom mode
// - romcenter.rommode (merged|split|unmerged) "split" /// </summary>
// - romcenter.biosmode (merged|split|unmerged) "split" [JsonProperty("rommode")]
// - romcenter.samplemode (merged|unmerged) "merged" public string RomMode { get; set; } // (merged|split|unmerged) "split"
// - romcenter.lockrommode (yes|no) "no"
// - romcenter.lockbiosmode (yes|no) "no" /// <summary>
// - romcenter.locksamplemode (yes|no) "no" /// RomCenter bios mode
/// </summary>
[JsonProperty("biosmode")]
public string BiosMode { get; set; } // (merged|split|unmerged) "split"
/// <summary>
/// RomCenter sample mode
/// </summary>
[JsonProperty("samplemode")]
public string SampleMode { get; set; } // (merged|unmerged) "merged"
/// <summary>
/// RomCenter lock rom mode
/// </summary>
[JsonProperty("lockrommode")]
public bool? LockRomMode { get; set; } // (yes|no) "no"
/// <summary>
/// RomCenter lock bios mode
/// </summary>
[JsonProperty("lockbiosmode")]
public bool? LockBiosMode { get; set; } // (yes|no) "no"
/// <summary>
/// RomCenter lock sample mode
/// </summary>
[JsonProperty("locksamplemode")]
public bool? LockSampleMode { get; set; } // (yes|no) "no"
#endregion #endregion
@@ -229,7 +256,7 @@ namespace SabreTools.Library.DatFiles
/// <summary> /// <summary>
/// System /// System
/// </summary> /// </summary>
/// <remarks>Known as "plugin" in RomCenter</remarks> /// <remarks>Known as "plugin" in Logiqx and RomCenter</remarks>
[JsonProperty("system")] [JsonProperty("system")]
public string System { get; set; } public string System { get; set; }
@@ -260,7 +287,7 @@ namespace SabreTools.Library.DatFiles
// TODO: Implement the following header values: // TODO: Implement the following header values:
// - newdat.datversionurl (currently reads and writes to Header.Url, not strictly correct) // - newdat.datversionurl (currently reads and writes to Header.Url, not strictly correct)
// - newdat.daturl (currently writes to Header.Url, not strictly correct) // - newdat.daturl (currently writes to Header.Url, not strictly correct)
// - newdat.daturl[fileName] (currently writes to Header.FileName, not strictly correct) // - newdat.daturl[fileName] (currently writes to Header.FileName + ".zip", not strictly correct)
// - newdat.imurl (currently writes to Header.Url, not strictly correct) // - newdat.imurl (currently writes to Header.Url, not strictly correct)
// - search[...].to.find[operation, value (Int32?)] // - search[...].to.find[operation, value (Int32?)]
// - search[...].to[value, default (true|false), auto (true, false)] // - search[...].to[value, default (true|false), auto (true, false)]

View File

@@ -234,6 +234,36 @@ namespace SabreTools.Library.DatFiles
Header.Build = (Header.Build == null ? content : Header.Build); Header.Build = (Header.Build == null ? content : Header.Build);
break; break;
case "rommode":
content = jtr.ReadAsString();
Header.RomMode = (Header.RomMode == null ? content : Header.RomMode);
break;
case "biosmode":
content = jtr.ReadAsString();
Header.BiosMode = (Header.BiosMode == null ? content : Header.BiosMode);
break;
case "samplemode":
content = jtr.ReadAsString();
Header.Build = (Header.SampleMode == null ? content : Header.SampleMode);
break;
case "lockrommode":
content = jtr.ReadAsString();
Header.LockRomMode = (Header.LockRomMode == null ? content.AsYesNo() : Header.LockRomMode);
break;
case "lockbiosmode":
content = jtr.ReadAsString();
Header.LockBiosMode = (Header.LockBiosMode == null ? content.AsYesNo() : Header.LockBiosMode);
break;
case "locksamplemode":
content = jtr.ReadAsString();
Header.LockSampleMode = (Header.LockSampleMode == null ? content.AsYesNo() : Header.LockSampleMode);
break;
#endregion #endregion
#region OfflineList #region OfflineList
@@ -1141,6 +1171,69 @@ namespace SabreTools.Library.DatFiles
jtw.WriteValue(Header.Build); jtw.WriteValue(Header.Build);
} }
if (!string.IsNullOrWhiteSpace(Header.RomMode))
{
jtw.WritePropertyName("rommode");
jtw.WriteValue(Header.RomMode);
}
if (!string.IsNullOrWhiteSpace(Header.BiosMode))
{
jtw.WritePropertyName("biosmode");
jtw.WriteValue(Header.BiosMode);
}
if (!string.IsNullOrWhiteSpace(Header.SampleMode))
{
jtw.WritePropertyName("samplemode");
jtw.WriteValue(Header.SampleMode);
}
if (Header.LockRomMode != null)
{
switch (Header.LockRomMode)
{
case true:
jtw.WritePropertyName("lockrommode");
jtw.WriteValue("yes");
break;
case false:
jtw.WritePropertyName("lockrommode");
jtw.WriteValue("no");
break;
}
}
if (Header.LockBiosMode != null)
{
switch (Header.LockBiosMode)
{
case true:
jtw.WritePropertyName("lockbiosmode");
jtw.WriteValue("yes");
break;
case false:
jtw.WritePropertyName("lockbiosmode");
jtw.WriteValue("no");
break;
}
}
if (Header.LockSampleMode != null)
{
switch (Header.LockSampleMode)
{
case true:
jtw.WritePropertyName("locksamplemode");
jtw.WriteValue("yes");
break;
case false:
jtw.WritePropertyName("locksamplemode");
jtw.WriteValue("no");
break;
}
}
#endregion #endregion
#region OfflineList #region OfflineList

View File

@@ -237,35 +237,23 @@ namespace SabreTools.Library.DatFiles
if (Header.System == null) if (Header.System == null)
Header.System = reader.GetAttribute("plugin"); Header.System = reader.GetAttribute("plugin");
if (reader.GetAttribute("rommode") != null) if (Header.RomMode == null)
{ Header.RomMode = reader.GetAttribute("rommode");
// (merged|split|unmerged) "split"
}
if (reader.GetAttribute("biosmode") != null) if (Header.BiosMode == null)
{ Header.BiosMode = reader.GetAttribute("biosmode");
// (merged|split|unmerged) "split"
}
if (reader.GetAttribute("samplemode") != null) if (Header.SampleMode == null)
{ Header.SampleMode = reader.GetAttribute("samplemode");
// (merged|unmerged) "merged"
}
if (reader.GetAttribute("lockrommode") != null) if (Header.LockRomMode == null)
{ Header.LockRomMode = reader.GetAttribute("lockrommode").AsYesNo();
// (yes|no) "no"
}
if (reader.GetAttribute("lockbiosmode") != null) if (Header.LockBiosMode == null)
{ Header.LockBiosMode = reader.GetAttribute("lockbiosmode").AsYesNo();
// (yes|no) "no"
}
if (reader.GetAttribute("locksamplemode") != null) if (Header.LockSampleMode == null)
{ Header.LockSampleMode = reader.GetAttribute("locksamplemode").AsYesNo();
// (yes|no) "no"
}
reader.Read(); reader.Read();
break; break;
@@ -863,6 +851,68 @@ namespace SabreTools.Library.DatFiles
xtw.WriteEndElement(); xtw.WriteEndElement();
} }
if (Header.System != null
|| Header.RomMode != null || Header.LockRomMode != null
|| Header.BiosMode != null || Header.LockBiosMode != null
|| Header.SampleMode != null || Header.LockSampleMode != null)
{
xtw.WriteStartElement("romcenter");
if (!string.IsNullOrWhiteSpace(Header.System))
xtw.WriteAttributeString("plugin", Header.System);
if (!string.IsNullOrWhiteSpace(Header.RomMode))
xtw.WriteAttributeString("rommode", Header.RomMode);
if (!string.IsNullOrWhiteSpace(Header.BiosMode))
xtw.WriteAttributeString("biosmode", Header.BiosMode);
if (!string.IsNullOrWhiteSpace(Header.SampleMode))
xtw.WriteAttributeString("samplemode", Header.SampleMode);
if (Header.LockRomMode != null)
{
switch (Header.LockRomMode)
{
case true:
xtw.WriteAttributeString("lockrommode", "yes");
break;
case false:
xtw.WriteAttributeString("lockrommode", "no");
break;
}
}
if (Header.LockBiosMode != null)
{
switch (Header.LockBiosMode)
{
case true:
xtw.WriteAttributeString("lockbiosmode", "yes");
break;
case false:
xtw.WriteAttributeString("lockbiosmode", "no");
break;
}
}
if (Header.LockSampleMode != null)
{
switch (Header.LockSampleMode)
{
case true:
xtw.WriteAttributeString("locksamplemode", "yes");
break;
case false:
xtw.WriteAttributeString("locksamplemode", "no");
break;
}
}
// End romcenter
xtw.WriteEndElement();
}
// End header // End header
xtw.WriteEndElement(); xtw.WriteEndElement();

View File

@@ -206,6 +206,30 @@ namespace SabreTools.Library.DatFiles
Header.Build = (Header.Build == null ? value : Header.Build); Header.Build = (Header.Build == null ? value : Header.Build);
break; break;
case "DatFile.RomMode":
Header.RomMode = (Header.RomMode == null ? value : Header.RomMode);
break;
case "DatFile.BiosMode":
Header.BiosMode = (Header.BiosMode == null ? value : Header.BiosMode);
break;
case "DatFile.SampleMode":
Header.SampleMode = (Header.SampleMode == null ? value : Header.SampleMode);
break;
case "DatFile.LockRomMode":
Header.LockRomMode = (Header.LockRomMode == null ? value.AsYesNo() : Header.LockRomMode);
break;
case "DatFile.LockBiosMode":
Header.LockBiosMode = (Header.LockBiosMode == null ? value.AsYesNo() : Header.LockBiosMode);
break;
case "DatFile.LockSampleMode":
Header.LockSampleMode = (Header.LockSampleMode == null ? value.AsYesNo() : Header.LockSampleMode);
break;
#endregion #endregion
#region OfflineList #region OfflineList
@@ -810,6 +834,36 @@ namespace SabreTools.Library.DatFiles
case "build": case "build":
return "DatFile.Build"; return "DatFile.Build";
case "rommode":
case "rom mode":
case "rom-mode":
return "DatFile.RomMode";
case "biosmode":
case "bios mode":
case "bios-mode":
return "DatFile.BiosMode";
case "samplemode":
case "sample mode":
case "sample-mode":
return "DatFile.SampleMode";
case "lockrommode":
case "lock rom mode":
case "lock-rom-mode":
return "DatFile.LockRomMode";
case "lockbiosmode":
case "lock bios mode":
case "lock-bios-mode":
return "DatFile.LockBiosMode";
case "locksamplemode":
case "lock sample mode":
case "lock-sample-mode":
return "DatFile.LockSampleMode";
#endregion #endregion
#region OfflineList #region OfflineList