using System; namespace ScreenConnect; public class DeflateEncoder : DeflateCoder { private CoderCompressionLevel compressionLevel; private CoderCompressionStrategy compressionStrategy; public DeflateEncoder(CoderCompressionLevel compressionLevel, CoderCompressionStrategy compressionStrategy, DeflateWrapper wrapper) : base(wrapper) { this.compressionLevel = compressionLevel; this.compressionStrategy = compressionStrategy; Initialize(); } protected unsafe override int Initialize(IntPtr stream, byte* version, int streamSize, int windowBits) { return NativeLibrarySingleton.Instance.deflateInit2_(stream, compressionLevel, 8, windowBits, 9, compressionStrategy, version, streamSize); } protected override int Process(IntPtr stream, CoderFlushType flushType) { return NativeLibrarySingleton.Instance.deflate(stream, flushType); } protected override int End(IntPtr stream) { return NativeLibrarySingleton.Instance.deflateEnd(stream); } }