public override bool AddSong(PlatformData data, SongData song, ProgressIndicator progress) { int index = int.Parse(song.ID.Substring(3)); //song.ID = "dlc" + ImportMap.GetShortName(song.Name); FormatData formatdata = new TemporaryFormatData(song, data); NeversoftMetadata.SaveSongItem(formatdata); DirectoryNode dir = data.Session["rootdir"] as DirectoryNode; FileNode binfile = dir.Navigate(Util.Pad(index.ToString(), 3) + ".bin") as FileNode; if (binfile == null) { return(false); } DlcBin bin = new DlcBin(binfile.Data); U8 u8 = new U8(bin.Data); FileNode chartpak = u8.Root.Find(song.ID + "_song.pak.ngc", SearchOption.AllDirectories) as FileNode; FileNode textpak = u8.Root.Find(song.ID + "_text.pak.ngc", SearchOption.AllDirectories) as FileNode; FileNode audiofile = u8.Root.Find(song.ID + ".bik", SearchOption.AllDirectories) as FileNode; if (chartpak == null || textpak == null || audiofile == null) { return(false); } ChartFormatGH4.Instance.Create(formatdata, new Stream[] { chartpak.Data, textpak.Data }, PlatformGH5WiiDisc.ImportExpertPlus); if (audiofile != null) { AudioFormatBink.Instance.Create(formatdata, audiofile.Data, null, null); } data.AddSong(formatdata); chartpak.Data.Close(); return(true); }
public override bool AddSong(PlatformData data, SongData song, ProgressIndicator progress) { FormatData formatdata = new TemporaryFormatData(song, data); NeversoftMetadata.SaveSongItem(formatdata); DirectoryNode dir = data.Session["rootdir"] as DirectoryNode; FileNode chartpak = dir.Navigate("songs/" + song.ID + ".pak.ngc", false, true) as FileNode; if (chartpak == null) { return(false); } if (data.Game == Game.GuitarHero5 || data.Game == Game.BandHero) { ChartFormatGH5.Instance.Create(formatdata, new Stream[] { chartpak.Data }, ImportExpertPlus); } else { ChartFormatGH4.Instance.Create(formatdata, new Stream[] { chartpak.Data }, ImportExpertPlus); } FileNode audiofile = dir.Navigate("music/" + song.ID + ".bik", false, true) as FileNode; FileNode previewfile = dir.Navigate("music/" + song.ID + "_preview.bik", false, true) as FileNode; if (audiofile != null) { AudioFormatBink.Instance.Create(formatdata, audiofile.Data, previewfile == null ? null : previewfile.Data, null); } data.AddSong(formatdata); chartpak.Data.Close(); return(true); }