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); }
public byte[] DecodeMzx1() { var compressed = data; using (var memoryStream = new MemoryStream(compressed)) { return(MzxYaz.Decode(memoryStream, compressed.Length)); } }
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); } }
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); }
public byte[] EncodeMzx1() { MzxYaz.Encode(data, data.Length, out var result); return(result); }