--- /dev/null
+/*
+ * noVNC: HTML5 VNC client
+ * Copyright (C) 2017 Pierre Ossman for Cendio AB
+ * Licensed under MPL 2.0 (see LICENSE.txt)
+ *
+ * See README.md for usage and integration instructions.
+ */
+
+export var encodings = {
+ encodingRaw: 0,
+ encodingCopyRect: 1,
+ encodingRRE: 2,
+ encodingHextile: 5,
+ encodingTight: 7,
+
+ pseudoEncodingQualityLevel9: -23,
+ pseudoEncodingQualityLevel0: -32,
+ pseudoEncodingDesktopSize: -223,
+ pseudoEncodingLastRect: -224,
+ pseudoEncodingCursor: -239,
+ pseudoEncodingQEMUExtendedKeyEvent: -258,
+ pseudoEncodingTightPNG: -260,
+ pseudoEncodingExtendedDesktopSize: -308,
+ pseudoEncodingXvp: -309,
+ pseudoEncodingFence: -312,
+ pseudoEncodingContinuousUpdates: -313,
+ pseudoEncodingCompressLevel9: -247,
+ pseudoEncodingCompressLevel0: -256,
+}
+
+export function encodingName(num) {
+ switch (num) {
+ case encodings.encodingRaw: return "Raw";
+ case encodings.encodingCopyRect: return "CopyRect";
+ case encodings.encodingRRE: return "RRE";
+ case encodings.encodingHextile: return "Hextile";
+ case encodings.encodingTight: return "Tight";
+ default: return "[unknown encoding " + num + "]";
+ }
+}
import KeyTable from "./input/keysym.js";
import XtScancode from "./input/xtscancodes.js";
import Inflator from "./inflator.js";
+import { encodings, encodingName } from "./encodings.js";
/*jslint white: false, browser: true */
/*global window, Util, Display, Keyboard, Mouse, Websock, Websock_native, Base64, DES, KeyTable, Inflator, XtScancode */
];
this._encHandlers = {};
- this._encNames = {};
this._encStats = {};
this._sock = null; // Websock object
// Create lookup tables based on encoding number
for (var i = 0; i < this._encodings.length; i++) {
this._encHandlers[this._encodings[i][1]] = this._encHandlers[this._encodings[i][0]];
- this._encNames[this._encodings[i][1]] = this._encodings[i][0];
this._encStats[this._encodings[i][1]] = [0, 0];
}
for (i = 0; i < this._encodings.length; i++) {
s = this._encStats[this._encodings[i][1]];
if (s[0] + s[1] > 0) {
- Log.Info(" " + this._encodings[i][0] + ": " + s[0] + " rects");
+ Log.Info(" " + encodingName(this._encodings[i][1]) + ": " + s[0] + " rects");
}
}
Log.Info("Encoding stats since page load:");
for (i = 0; i < this._encodings.length; i++) {
s = this._encStats[this._encodings[i][1]];
- Log.Info(" " + this._encodings[i][0] + ": " + s[1] + " rects");
+ Log.Info(" " + encodingName(this._encodings[i][1]) + ": " + s[1] + " rects");
}
},
{'x': this._FBU.x, 'y': this._FBU.y,
'width': this._FBU.width, 'height': this._FBU.height,
'encoding': this._FBU.encoding,
- 'encodingName': this._encNames[this._FBU.encoding]});
+ 'encodingName': encodingName(this._FBU.encoding)});
+ }
if (!this._encNames[this._FBU.encoding]) {
this._fail("Unexpected server message",
{'x': this._FBU.x, 'y': this._FBU.y,
'width': this._FBU.width, 'height': this._FBU.height,
'encoding': this._FBU.encoding,
- 'encodingName': this._encNames[this._FBU.encoding]});
+ 'encodingName': encodingName(this._FBU.encoding)});
return true; // We finished this FBU
},