From 78a3c22dea20e2121f3c6236273e25b1eb55cabc Mon Sep 17 00:00:00 2001 From: Matt Nadareski Date: Mon, 23 May 2016 13:23:13 -0700 Subject: [PATCH] Refactor write header --- SabreHelper/Output.cs | 146 ++++++++++++++++++++++-------------------- 1 file changed, 77 insertions(+), 69 deletions(-) diff --git a/SabreHelper/Output.cs b/SabreHelper/Output.cs index d1bc4f76..2ea5dd01 100644 --- a/SabreHelper/Output.cs +++ b/SabreHelper/Output.cs @@ -84,75 +84,8 @@ namespace SabreTools.Helper FileStream fs = File.Create(outfile); StreamWriter sw = new StreamWriter(fs, Encoding.UTF8); - string header = ""; - switch (datdata.OutputFormat) - { - case OutputFormat.ClrMamePro: - header = "clrmamepro (\n" + - "\tname \"" + HttpUtility.HtmlEncode(datdata.Name) + "\"\n" + - "\tdescription \"" + HttpUtility.HtmlEncode(datdata.Description) + "\"\n" + - "\tcategory \"" + HttpUtility.HtmlEncode(datdata.Category) + "\"\n" + - "\tversion \"" + HttpUtility.HtmlEncode(datdata.Version) + "\"\n" + - "\tdate \"" + HttpUtility.HtmlEncode(datdata.Date) + "\"\n" + - "\tauthor \"" + HttpUtility.HtmlEncode(datdata.Author) + "\"\n" + - "\tcomment \"" + HttpUtility.HtmlEncode(datdata.Comment) + "\"\n" + - (datdata.ForcePacking == ForcePacking.Unzip ? "\tforcezipping no\n" : "") + - ")\n"; - break; - case OutputFormat.RomCenter: - header = "[CREDITS]\n" + - "author=" + HttpUtility.HtmlEncode(datdata.Author) + "\n" + - "version=" + HttpUtility.HtmlEncode(datdata.Version) + "\n" + - "comment=" + HttpUtility.HtmlEncode(datdata.Comment) + "\n" + - "[DAT]\n" + - "version=2.50\n" + - "split=" + (datdata.ForceMerging == ForceMerging.Split ? "1" : "0") + "\n" + - "merge=" + (datdata.ForceMerging == ForceMerging.Full ? "1" : "0") + "\n" + - "[EMULATOR]\n" + - "refname=" + HttpUtility.HtmlEncode(datdata.Name) + "\n" + - "version=" + HttpUtility.HtmlEncode(datdata.Description) + "\n" + - "[GAMES]\n"; - break; - case OutputFormat.SabreDat: - header = "\n" + - "\n\n" + - "\n" + - "\t
\n" + - "\t\t" + HttpUtility.HtmlEncode(datdata.Name) + "\n" + - "\t\t" + HttpUtility.HtmlEncode(datdata.Description) + "\n" + - "\t\t" + HttpUtility.HtmlEncode(datdata.Category) + "\n" + - "\t\t" + HttpUtility.HtmlEncode(datdata.Version) + "\n" + - "\t\t" + HttpUtility.HtmlEncode(datdata.Date) + "\n" + - "\t\t" + HttpUtility.HtmlEncode(datdata.Author) + "\n" + - "\t\t" + HttpUtility.HtmlEncode(datdata.Comment) + "\n" + - (!String.IsNullOrEmpty(datdata.Type) && datdata.ForcePacking != ForcePacking.Unzip ? - "\t\t\n" + - (!String.IsNullOrEmpty(datdata.Type) ? "\t\t\t\n" : "") + - (datdata.ForcePacking == ForcePacking.Unzip ? "\t\t\t\n" : "") + - "\t\t\n" : "") + - "\t
\n" + - "\t\n"; - break; - case OutputFormat.Xml: - header = "\n" + - "\n\n" + - "\n" + - "\t
\n" + - "\t\t" + HttpUtility.HtmlEncode(datdata.Name) + "\n" + - "\t\t" + HttpUtility.HtmlEncode(datdata.Description) + "\n" + - "\t\t" + HttpUtility.HtmlEncode(datdata.Category) + "\n" + - "\t\t" + HttpUtility.HtmlEncode(datdata.Version) + "\n" + - "\t\t" + HttpUtility.HtmlEncode(datdata.Date) + "\n" + - "\t\t" + HttpUtility.HtmlEncode(datdata.Author) + "\n" + - "\t\t" + HttpUtility.HtmlEncode(datdata.Comment) + "\n" + - (!String.IsNullOrEmpty(datdata.Type) ? "\t\t" + datdata.Type + "\n" : "") + - (datdata.ForcePacking == ForcePacking.Unzip ? "\t\t\n" : "") + - "\t
\n"; - break; - } - - // Write the header out - sw.Write(header); + // Write out the header + WriteHeader(sw, datdata); // Write out each of the machines and roms int depth = 2, last = -1; @@ -409,5 +342,80 @@ namespace SabreTools.Helper return true; } + + public static bool WriteHeader(StreamWriter sw, DatData datdata) + { + string header = ""; + switch (datdata.OutputFormat) + { + case OutputFormat.ClrMamePro: + header = "clrmamepro (\n" + + "\tname \"" + HttpUtility.HtmlEncode(datdata.Name) + "\"\n" + + "\tdescription \"" + HttpUtility.HtmlEncode(datdata.Description) + "\"\n" + + "\tcategory \"" + HttpUtility.HtmlEncode(datdata.Category) + "\"\n" + + "\tversion \"" + HttpUtility.HtmlEncode(datdata.Version) + "\"\n" + + "\tdate \"" + HttpUtility.HtmlEncode(datdata.Date) + "\"\n" + + "\tauthor \"" + HttpUtility.HtmlEncode(datdata.Author) + "\"\n" + + "\tcomment \"" + HttpUtility.HtmlEncode(datdata.Comment) + "\"\n" + + (datdata.ForcePacking == ForcePacking.Unzip ? "\tforcezipping no\n" : "") + + ")\n"; + break; + case OutputFormat.RomCenter: + header = "[CREDITS]\n" + + "author=" + HttpUtility.HtmlEncode(datdata.Author) + "\n" + + "version=" + HttpUtility.HtmlEncode(datdata.Version) + "\n" + + "comment=" + HttpUtility.HtmlEncode(datdata.Comment) + "\n" + + "[DAT]\n" + + "version=2.50\n" + + "split=" + (datdata.ForceMerging == ForceMerging.Split ? "1" : "0") + "\n" + + "merge=" + (datdata.ForceMerging == ForceMerging.Full ? "1" : "0") + "\n" + + "[EMULATOR]\n" + + "refname=" + HttpUtility.HtmlEncode(datdata.Name) + "\n" + + "version=" + HttpUtility.HtmlEncode(datdata.Description) + "\n" + + "[GAMES]\n"; + break; + case OutputFormat.SabreDat: + header = "\n" + + "\n\n" + + "\n" + + "\t
\n" + + "\t\t" + HttpUtility.HtmlEncode(datdata.Name) + "\n" + + "\t\t" + HttpUtility.HtmlEncode(datdata.Description) + "\n" + + "\t\t" + HttpUtility.HtmlEncode(datdata.Category) + "\n" + + "\t\t" + HttpUtility.HtmlEncode(datdata.Version) + "\n" + + "\t\t" + HttpUtility.HtmlEncode(datdata.Date) + "\n" + + "\t\t" + HttpUtility.HtmlEncode(datdata.Author) + "\n" + + "\t\t" + HttpUtility.HtmlEncode(datdata.Comment) + "\n" + + (!String.IsNullOrEmpty(datdata.Type) && datdata.ForcePacking != ForcePacking.Unzip ? + "\t\t\n" + + (!String.IsNullOrEmpty(datdata.Type) ? "\t\t\t\n" : "") + + (datdata.ForcePacking == ForcePacking.Unzip ? "\t\t\t\n" : "") + + "\t\t\n" : "") + + "\t
\n" + + "\t\n"; + break; + case OutputFormat.Xml: + header = "\n" + + "\n\n" + + "\n" + + "\t
\n" + + "\t\t" + HttpUtility.HtmlEncode(datdata.Name) + "\n" + + "\t\t" + HttpUtility.HtmlEncode(datdata.Description) + "\n" + + "\t\t" + HttpUtility.HtmlEncode(datdata.Category) + "\n" + + "\t\t" + HttpUtility.HtmlEncode(datdata.Version) + "\n" + + "\t\t" + HttpUtility.HtmlEncode(datdata.Date) + "\n" + + "\t\t" + HttpUtility.HtmlEncode(datdata.Author) + "\n" + + "\t\t" + HttpUtility.HtmlEncode(datdata.Comment) + "\n" + + (!String.IsNullOrEmpty(datdata.Type) ? "\t\t" + datdata.Type + "\n" : "") + + (datdata.ForcePacking == ForcePacking.Unzip ? "\t\t\n" : "") + + "\t
\n"; + break; + } + + // Write the header out + sw.Write(header); + + return true; + } } }