Added basic almost-functional Tight support, from tightrealvnc project. Decoder only.


git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@14 3789f03b-4d11-0410-bbf8-ca57d06f2519
diff --git a/rfb/ConnParams.cxx b/rfb/ConnParams.cxx
index 9552940..3a406ac 100644
--- a/rfb/ConnParams.cxx
+++ b/rfb/ConnParams.cxx
@@ -28,6 +28,7 @@
 ConnParams::ConnParams()
   : majorVersion(0), minorVersion(0), width(0), height(0), useCopyRect(false),
     supportsLocalCursor(false), supportsDesktopResize(false),
+    supportsLastRect(false), qualityLevel(-1),
     name_(0), nEncodings_(0), encodings_(0),
     currentEncoding_(encodingRaw), verStrPos(0)
 {
@@ -87,6 +88,8 @@
   nEncodings_ = nEncodings;
   useCopyRect = false;
   supportsLocalCursor = false;
+  supportsLastRect = false;
+  qualityLevel = -1;
   currentEncoding_ = encodingRaw;
 
   for (int i = nEncodings-1; i >= 0; i--) {
@@ -98,6 +101,11 @@
       supportsLocalCursor = true;
     else if (encodings[i] == pseudoEncodingDesktopSize)
       supportsDesktopResize = true;
+    else if (encodings[i] == pseudoEncodingLastRect)
+      supportsLastRect = true;
+    else if (encodings[i] >= pseudoEncodingQualityLevel0 &&
+             encodings[i] <= pseudoEncodingQualityLevel9)
+      qualityLevel = encodings[i] - pseudoEncodingQualityLevel0;
     else if (encodings[i] <= encodingMax && Encoder::supported(encodings[i]))
       currentEncoding_ = encodings[i];
   }