mirror of
https://github.com/claunia/SabreTools.git
synced 2025-12-16 19:14:27 +00:00
Add ListXML header fields
This commit is contained in:
@@ -13,9 +13,9 @@ namespace SabreTools.Library.DatFiles
|
||||
/// </summary>
|
||||
public class DatHeader : ICloneable
|
||||
{
|
||||
#region Publicly facing variables
|
||||
#region Fields
|
||||
|
||||
#region Data common to most DAT types
|
||||
#region Common Fields
|
||||
|
||||
/// <summary>
|
||||
/// External name of the DAT
|
||||
@@ -178,6 +178,32 @@ namespace SabreTools.Library.DatFiles
|
||||
|
||||
#endregion
|
||||
|
||||
#region ListXML Fields
|
||||
|
||||
/// <summary>
|
||||
/// Debug build flag
|
||||
/// </summary>
|
||||
[JsonProperty("debug")]
|
||||
public bool? Debug { get; set; } = false;
|
||||
|
||||
/// <summary>
|
||||
/// MAME configuration name
|
||||
/// </summary>
|
||||
[JsonProperty("mameconfig")]
|
||||
public string MameConfig { get; set; }
|
||||
|
||||
#endregion
|
||||
|
||||
#region Missfile Fields
|
||||
|
||||
/// <summary>
|
||||
/// Output the item name
|
||||
/// </summary>
|
||||
[JsonIgnore]
|
||||
public bool UseRomName { get; set; }
|
||||
|
||||
#endregion
|
||||
|
||||
#region Write pre-processing
|
||||
|
||||
/// <summary>
|
||||
@@ -224,16 +250,6 @@ namespace SabreTools.Library.DatFiles
|
||||
|
||||
#endregion
|
||||
|
||||
#region Data specific to the Miss DAT type
|
||||
|
||||
/// <summary>
|
||||
/// Output the item name
|
||||
/// </summary>
|
||||
[JsonIgnore]
|
||||
public bool UseRomName { get; set; }
|
||||
|
||||
#endregion
|
||||
|
||||
#region Depot Information
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -120,6 +120,8 @@ namespace SabreTools.Library.DatFiles
|
||||
string content;
|
||||
switch (jtr.Value)
|
||||
{
|
||||
#region Common
|
||||
|
||||
case "name":
|
||||
content = jtr.ReadAsString();
|
||||
Header.Name = (Header.Name == null ? content : Header.Name);
|
||||
@@ -180,6 +182,11 @@ namespace SabreTools.Library.DatFiles
|
||||
Header.Comment = (Header.Comment == null ? content : Header.Comment);
|
||||
break;
|
||||
|
||||
case "header":
|
||||
content = jtr.ReadAsString();
|
||||
Header.HeaderSkipper = (Header.HeaderSkipper == null ? content : Header.HeaderSkipper);
|
||||
break;
|
||||
|
||||
case "type": // This is exclusive to TruRip XML
|
||||
content = jtr.ReadAsString();
|
||||
Header.Type = (Header.Type == null ? content : Header.Type);
|
||||
@@ -192,23 +199,34 @@ namespace SabreTools.Library.DatFiles
|
||||
|
||||
break;
|
||||
|
||||
case "forcepacking":
|
||||
if (Header.ForcePacking == ForcePacking.None)
|
||||
Header.ForcePacking = jtr.ReadAsString().AsForcePacking();
|
||||
|
||||
break;
|
||||
|
||||
case "forcenodump":
|
||||
if (Header.ForceNodump == ForceNodump.None)
|
||||
Header.ForceNodump = jtr.ReadAsString().AsForceNodump();
|
||||
|
||||
break;
|
||||
|
||||
case "header":
|
||||
content = jtr.ReadAsString();
|
||||
Header.HeaderSkipper = (Header.HeaderSkipper == null ? content : Header.HeaderSkipper);
|
||||
case "forcepacking":
|
||||
if (Header.ForcePacking == ForcePacking.None)
|
||||
Header.ForcePacking = jtr.ReadAsString().AsForcePacking();
|
||||
|
||||
break;
|
||||
|
||||
#endregion
|
||||
|
||||
#region ListXML
|
||||
|
||||
case "debug":
|
||||
content = jtr.ReadAsString();
|
||||
Header.Debug = (Header.Debug == null ? content.AsYesNo() : Header.Debug);
|
||||
break;
|
||||
|
||||
case "mameconfig":
|
||||
content = jtr.ReadAsString();
|
||||
Header.MameConfig = (Header.MameConfig == null ? content : Header.MameConfig);
|
||||
break;
|
||||
|
||||
#endregion
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
@@ -875,6 +893,8 @@ namespace SabreTools.Library.DatFiles
|
||||
jtw.WritePropertyName("header");
|
||||
jtw.WriteStartObject();
|
||||
|
||||
#region Common
|
||||
|
||||
jtw.WritePropertyName("name");
|
||||
jtw.WriteValue(Header.Name);
|
||||
jtw.WritePropertyName("description");
|
||||
@@ -977,6 +997,32 @@ namespace SabreTools.Library.DatFiles
|
||||
jtw.WriteValue(Header.HeaderSkipper);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region ListXML
|
||||
|
||||
if (Header.Debug != null)
|
||||
{
|
||||
jtw.WritePropertyName("debug");
|
||||
switch (Header.Debug)
|
||||
{
|
||||
case true:
|
||||
jtw.WriteValue("yes"));
|
||||
break;
|
||||
case false:
|
||||
jtw.WriteValue("no");
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(Header.MameConfig))
|
||||
{
|
||||
jtw.WritePropertyName("mameconfig");
|
||||
jtw.WriteValue(Header.MameConfig);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
// End header
|
||||
jtw.WriteEndObject();
|
||||
|
||||
|
||||
@@ -66,8 +66,8 @@ namespace SabreTools.Library.DatFiles
|
||||
case "mame":
|
||||
Header.Name = (Header.Name == null ? xtr.GetAttribute("build") : Header.Name);
|
||||
Header.Description = (Header.Description == null ? Header.Name : Header.Description);
|
||||
string mame_debug = xtr.GetAttribute("debug"); // (yes|no) "no"
|
||||
string mame_mameconfig = xtr.GetAttribute("mameconfig"); // CDATA
|
||||
Header.Debug = (Header.Debug == null ? xtr.GetAttribute("debug").AsYesNo() : Header.Debug);
|
||||
Header.MameConfig = (Header.MameConfig == null ? xtr.GetAttribute("mameconfig") : Header.MameConfig);
|
||||
xtr.Read();
|
||||
break;
|
||||
|
||||
@@ -310,6 +310,9 @@ namespace SabreTools.Library.DatFiles
|
||||
reader.Read();
|
||||
break;
|
||||
|
||||
// TODO: Should these be new DatItem types?
|
||||
// TODO: Should any be additional Machine fields?
|
||||
|
||||
case "chip":
|
||||
// string chip_name = reader.GetAttribute("name");
|
||||
// string chip_tag = reader.GetAttribute("tag");
|
||||
@@ -665,8 +668,21 @@ namespace SabreTools.Library.DatFiles
|
||||
|
||||
xtw.WriteStartElement("mame");
|
||||
xtw.WriteAttributeString("build", Header.Name);
|
||||
//xtw.WriteAttributeString("debug", Debug);
|
||||
//xtw.WriteAttributeString("mameconfig", MameConfig);
|
||||
if (Header.Debug != null)
|
||||
{
|
||||
switch (Header.Debug)
|
||||
{
|
||||
case true:
|
||||
xtw.WriteAttributeString("debug", "yes");
|
||||
break;
|
||||
case false:
|
||||
xtw.WriteAttributeString("debug", "no");
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (!string.IsNullOrEmpty(Header.MameConfig))
|
||||
xtw.WriteAttributeString("mameconfig", Header.MameConfig);
|
||||
|
||||
xtw.Flush();
|
||||
}
|
||||
|
||||
@@ -116,6 +116,8 @@ namespace SabreTools.Library.DatFiles
|
||||
{
|
||||
#region DatFile
|
||||
|
||||
#region Common
|
||||
|
||||
case "DatFile.FileName":
|
||||
Header.FileName = (Header.FileName== null ? value : Header.FileName);
|
||||
break;
|
||||
@@ -186,6 +188,20 @@ namespace SabreTools.Library.DatFiles
|
||||
|
||||
#endregion
|
||||
|
||||
#region ListXML
|
||||
|
||||
case "DatFile.Debug":
|
||||
Header.Debug = (Header.Debug == null ? value.AsYesNo() : Header.Debug);
|
||||
break;
|
||||
|
||||
case "DatFile.MameConfig":
|
||||
Header.MameConfig = (Header.MameConfig == null ? value : Header.MameConfig);
|
||||
break;
|
||||
|
||||
#endregion
|
||||
|
||||
#endregion // DatFile
|
||||
|
||||
#region Machine
|
||||
|
||||
#region Common
|
||||
@@ -654,6 +670,8 @@ namespace SabreTools.Library.DatFiles
|
||||
{
|
||||
#region DatFile
|
||||
|
||||
#region Common
|
||||
|
||||
case "file":
|
||||
case "filename":
|
||||
case "file name":
|
||||
@@ -721,6 +739,20 @@ namespace SabreTools.Library.DatFiles
|
||||
|
||||
#endregion
|
||||
|
||||
#region ListXML
|
||||
|
||||
case "debug":
|
||||
return "DatFile.Debug";
|
||||
|
||||
case "mameconfig":
|
||||
case "mame config":
|
||||
case "mame-config":
|
||||
return "DatFile.MameConfig";
|
||||
|
||||
#endregion
|
||||
|
||||
#endregion // DatFile
|
||||
|
||||
#region Machine
|
||||
|
||||
#region Common
|
||||
|
||||
Reference in New Issue
Block a user