예제 #1
0
파일: Main.cs 프로젝트: MetLob/tinke
        public static FormatCompress Get_Format(FileStream input, bool arm9)
        {
            CompressionFormat fmt = null;

            foreach (FormatCompress f in Enum.GetValues(typeof(FormatCompress)))
            {
                switch (f)
                {
                    //case FormatCompress.LZOVL: fmt = new LZOvl(); break;
                    case FormatCompress.LZ10: fmt = new LZ10(); break;
                    case FormatCompress.LZ11: fmt = new LZ11(); break;
                    case FormatCompress.RLE: fmt = new RLE(); break;
                    case FormatCompress.HUFF: fmt = new Huffman(); break;
                }

                if (fmt == null)
                    continue;

                long fLength = input.Length;
                if (arm9)
                    fLength -= 0xC;

                if (fmt.Supports(input, fLength))
                    return f;
            }

            return FormatCompress.Invalid;
        }
예제 #2
0
파일: Main.cs 프로젝트: MetLob/tinke
        public static FormatCompress Get_Format(string input)
        {
            CompressionFormat fmt = null;

            foreach (FormatCompress f in Enum.GetValues(typeof(FormatCompress)))
            {
                switch (f)
                {
                    //case FormatCompress.LZOVL: fmt = new LZOvl(); break;
                    case FormatCompress.LZ10: fmt = new LZ10(); break;
                    case FormatCompress.LZ11: fmt = new LZ11(); break;
                    case FormatCompress.RLE: fmt = new RLE(); break;
                    case FormatCompress.HUFF: fmt = new Huffman(); break;
                }

                if (fmt == null)
                    continue;

                if (fmt.Supports(input))
                    return f;
            }

            return FormatCompress.Invalid;
        }