Пример #1
0
        static void HandleEncode(string input, string output, bool legacy, IConsole console)
        {
            var inputBytes = File.ReadAllBytes(input);

            byte[] outputBytes = null;

            if (legacy)
            {
                // Legacy encode.
                var amount = MzxYaz.Encode(inputBytes, inputBytes.Length, out var result);
                if (amount >= 0)
                {
                    outputBytes = new byte[amount];
                    Buffer.BlockCopy(result, 0, outputBytes, 0, outputBytes.Length);
                }
            }
            else
            {
                // New encode.
                var amount = Yaz.Encode(inputBytes, out var compressed);
                outputBytes = new byte[amount];
                compressed.AsSpan(0, amount).CopyTo(outputBytes);
            }

            File.WriteAllBytes(output, outputBytes);
        }
Пример #2
0
        public byte[] DecodeMzx1()
        {
            var compressed = data;

            using (var memoryStream = new MemoryStream(compressed))
            {
                return(MzxYaz.Decode(memoryStream, compressed.Length));
            }
        }
Пример #3
0
        public void GlobalSetup()
        {
            var input = new byte[N];

            if (UseRandom)
            {
                new Random(42).NextBytes(input);
            }

            var newSize = MzxYaz.Encode(input, input.Length, out var result);

            if (newSize >= 0)
            {
                data = new byte[newSize];
                Buffer.BlockCopy(result, 0, data, 0, data.Length);
            }
        }
Пример #4
0
        static void HandleDecode(string input, string output, bool legacy, IConsole console)
        {
            var inputBytes = File.ReadAllBytes(input);

            byte[] outputBytes = null;

            // Perform decode.
            if (legacy)
            {
                // Legacy decode.
                using (var memoryStream = new MemoryStream(inputBytes))
                {
                    outputBytes = MzxYaz.Decode(memoryStream, inputBytes.Length);
                }
            }
            else
            {
                // New decode.
                outputBytes = Yaz.Decode(inputBytes);
            }

            File.WriteAllBytes(output, outputBytes);
        }
Пример #5
0
 public byte[] EncodeMzx1()
 {
     MzxYaz.Encode(data, data.Length, out var result);
     return(result);
 }