mirror of
https://github.com/novnc/noVNC.git
synced 2026-05-27 15:39:41 +00:00
This commit restructures noVNC, splitting it into the core directory and the app directory, with the former containing core noVNC parts, and the latter containing parts specific to the application.
41 lines
1.1 KiB
JavaScript
41 lines
1.1 KiB
JavaScript
var zlib = require('pako/lib/zlib/inflate.js');
|
|
var ZStream = require('pako/lib/zlib/zstream.js');
|
|
|
|
function Inflate() {
|
|
this.strm = new ZStream();
|
|
this.chunkSize = 1024 * 10 * 10;
|
|
this.strm.output = new Uint8Array(this.chunkSize);
|
|
this.windowBits = 5;
|
|
|
|
zlib.inflateInit(this.strm, this.windowBits);
|
|
};
|
|
|
|
Inflate.prototype = {
|
|
inflate: function (data, flush, expected) {
|
|
this.strm.input = data;
|
|
this.strm.avail_in = this.strm.input.length;
|
|
this.strm.next_in = 0;
|
|
this.strm.next_out = 0;
|
|
|
|
// resize our output buffer if it's too small
|
|
// (we could just use multiple chunks, but that would cause an extra
|
|
// allocation each time to flatten the chunks)
|
|
if (expected > this.chunkSize) {
|
|
this.chunkSize = expected;
|
|
this.strm.output = new Uint8Array(this.chunkSize);
|
|
}
|
|
|
|
this.strm.avail_out = this.chunkSize;
|
|
|
|
zlib.inflate(this.strm, flush);
|
|
|
|
return new Uint8Array(this.strm.output.buffer, 0, this.strm.next_out);
|
|
},
|
|
|
|
reset: function () {
|
|
zlib.inflateReset(this.strm);
|
|
}
|
|
};
|
|
|
|
module.exports = { Inflate: Inflate };
|