MCPcopy Create free account
hub / github.com/CoderLine/alphaTab / _compress

Method _compress

packages/alphatab/src/zip/ZipWriter.ts:93–128  ·  view source on GitHub ↗
(output: IWriteable, data: Uint8Array, compressionMode: number)

Source from the content-addressed store, hash-verified

91 }
92
93 private _compress(output: IWriteable, data: Uint8Array, compressionMode: number): number {
94 if (compressionMode !== ZipEntry.CompressionMethodDeflate) {
95 const crc = new Crc32();
96 crc.update(data, 0, data.length);
97 output.write(data, 0, data.length);
98 return crc.value;
99 }
100 const buffer: Uint8Array = new Uint8Array(512);
101
102 // init deflater
103 this._deflater.reset();
104
105 // write data
106 this._deflater.setInput(data, 0, data.length);
107 while (!this._deflater.isNeedingInput) {
108 const len = this._deflater.deflate(buffer, 0, buffer.length);
109 if (len <= 0) {
110 break;
111 }
112
113 output.write(buffer, 0, len);
114 }
115
116 // let deflater finish up
117 this._deflater.finish();
118 while (!this._deflater.isFinished) {
119 const len = this._deflater.deflate(buffer, 0, buffer.length);
120 if (len <= 0) {
121 break;
122 }
123
124 output.write(buffer, 0, len);
125 }
126
127 return this._deflater.inputCrc;
128 }
129
130 public end() {
131 const startOfCentralDirectory = this._data.bytesWritten;

Callers 1

writeEntryMethod · 0.95

Calls 6

updateMethod · 0.95
writeMethod · 0.65
resetMethod · 0.65
setInputMethod · 0.45
deflateMethod · 0.45
finishMethod · 0.45

Tested by

no test coverage detected