/// <summary> /// Converts RS1 Song Object to *.sng File /// </summary> /// <param name="rs1Song"></param> /// <param name="outputPath"></param> /// <returns>Path to binary *.sng file</returns> public string SongToSngFilePath(Song rs1Song, string outputPath) { string rs1XmlPath; using (var obj = new Rs1Converter()) rs1XmlPath = obj.SongToXml(rs1Song, outputPath, true); ArrangementType arrangementType; if (rs1Song.Arrangement.ToLower() == "bass") { arrangementType = ArrangementType.Bass; } else { arrangementType = ArrangementType.Guitar; } var sngFilePath = Path.ChangeExtension(rs1XmlPath, ".sng"); SngFileWriter.Write(rs1XmlPath, sngFilePath, arrangementType, new Platform(GamePlatform.Pc, GameVersion.None)); if (File.Exists(rs1XmlPath)) { File.Delete(rs1XmlPath); } return(sngFilePath); }
/// <summary> /// Song2014 to ASCII Tablature /// </summary> /// <param name="rs2014Song"></param> /// <param name="outputDir"></param> /// <param name="allDif"></param> public void Song2014ToAsciiTab(Song2014 rs2014Song, string outputDir, bool allDif) { if (rs2014Song == null || String.IsNullOrEmpty(outputDir)) { return; } // convert to Song Song rs1Song; using (var obj = new Rs2014Converter()) rs1Song = obj.Song2014ToSong(rs2014Song); Console.WriteLine("Converted Song2014 To Song"); //if (false) // write Xml files for debugging //{ // using (Rs2014Converter obj = new Rs2014Converter()) // obj.Song2014ToXml(rs2014Song, outputDir, true); // using (Rs1Converter obj = new Rs1Converter()) // obj.SongToXml(rs1Song, outputDir, true); //} // convert to SngFile string rs1SngFilePath; using (var obj = new Rs1Converter()) rs1SngFilePath = obj.SongToSngFilePath(rs1Song, outputDir); Console.WriteLine("Converted Song To SngFile"); // convert to AsciiTab using (var s2Tab = new Sng2Tab()) s2Tab.Convert(rs1SngFilePath, outputDir, allDif); Console.WriteLine("Converted SngFile To AsciiTab"); if (File.Exists(rs1SngFilePath)) { File.Delete(rs1SngFilePath); } }