/// <summary> /// Converts data to its unencoded format /// </summary> /// <param name="From">Data</param> /// <param name="To">destination file (extension added automatically)</param> /// <returns>true, if successful</returns> public static bool Convert(byte[] From, string To) { FType FileType = WADfile.GetType(From); if (File.Exists(To)) { File.Delete(To); } switch (FileType) { //just copy the file for these case FType.XM: case FType.IT: case FType.MID: case FType.WAV: case FType.MP3: Program.Log(ConsoleColor.Green, "Copying DATA -> {0}", FileType); File.WriteAllBytes(To + "." + FileType.ToString(), From); break; case FType.OGG: Program.Log(ConsoleColor.Green, "Copying DATA -> {0}", FileType); File.WriteAllBytes(To + "." + FileType.ToString(), From); break; case FType.MUS: Program.Log(ConsoleColor.Yellow, "Converting MUS -> MID"); using (MemoryStream IN = new MemoryStream(From)) { using (FileStream OUT = File.Create(To + ".MID")) { MUS2MID.Convert(IN, OUT); } } break; case FType.RAWAUDIO: SaveAudio(From, To + ".WAV"); break; case FType.VIRTUAL: Program.Log(ConsoleColor.Yellow, "Not converting virtual entry"); return(false); default: try { ToImage(From, To + ".PNG"); } catch { return(false); } break; } return(true); }
/// <summary> /// Converts data to its unencoded format /// </summary> /// <param name="From">Data</param> /// <param name="To">destination file (extension added automatically)</param> /// <returns>true, if successful</returns> public static bool Convert(byte[] From, string To) { FType FileType = GetDataType(From); if (File.Exists(To)) { Program.Log(Verbosity.Debug, "Deleting existing file {0}", To); File.Delete(To); } switch (FileType) { //just copy the file for these case FType.XM: case FType.IT: case FType.MID: case FType.WAV: case FType.MP3: case FType.OGG: Program.Log(Verbosity.Debug, "Copying DATA -> {0}", FileType); File.WriteAllBytes(To + "." + FileType.ToString(), From); break; case FType.MUS: Program.Log(Verbosity.Debug, "Converting MUS -> MID"); using (MemoryStream IN = new MemoryStream(From)) { using (FileStream OUT = File.Create(To + ".MID")) { MUS2MID.Convert(IN, OUT); } } break; case FType.RAWAUDIO: SaveAudio(From, To + ".WAV"); break; case FType.VIRTUAL: Program.Log(Verbosity.Debug, "Not converting virtual entry"); return(false); default: try { ToImage(From, To + ".PNG"); } catch { Program.Log(Verbosity.Log, "Unable to find suitable format for DATA. Skipping Convert()"); return(false); } break; } return(true); }