Beispiel #1
0
        /// <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);
        }
Beispiel #2
0
        /// <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);
        }