private void ReadCompressionHeader(BinaryReader reader) { string signature = reader.ReadString(4); if (signature != DcpSignature) { throw new Exception("Signature was not DCP"); } signature = reader.ReadString(4); if (signature != DeflateCompression.DeflateSignature) { throw new NotImplementedException($"Compression not implemented ({signature}) "); } Compression = DeflateCompression.Read(reader); signature = reader.ReadString(4); if (signature != DcaSignature) { throw new Exception("Signature was not DCA"); } int dcaHeaderSize = reader.ReadInt32(); if (dcaHeaderSize != DcaHeaderSize) { throw new Exception("Unsupported DCA header size."); } }
public static DeflateCompression Read(BinaryReader reader) { DeflateCompression result = new DeflateCompression(); int headerSize = reader.ReadInt32(); result.Level = reader.ReadInt32(); reader.Skip(16); return(result); }