summaryrefslogtreecommitdiffstats
path: root/java/com/tigervnc/rfb/CMsgReaderV3.java
diff options
context:
space:
mode:
authorBrian Hinz <bphinz@users.sourceforge.net>2012-02-12 20:44:29 +0000
committerBrian Hinz <bphinz@users.sourceforge.net>2012-02-12 20:44:29 +0000
commitaf15db239a665030087fe146b20d4b3213708f3d (patch)
tree2efad69694d73cdb8fc90af86af26ef44e10b084 /java/com/tigervnc/rfb/CMsgReaderV3.java
parent8d37f2054b6da02957b12d02aaf96dd5eecc89c7 (diff)
downloadtigervnc-af15db239a665030087fe146b20d4b3213708f3d.tar.gz
tigervnc-af15db239a665030087fe146b20d4b3213708f3d.zip
Adds support for fence & continuous updates extensions to java viewer. Adds low level hooks for TurboVNC fine grained quality controls.
git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@4847 3789f03b-4d11-0410-bbf8-ca57d06f2519
Diffstat (limited to 'java/com/tigervnc/rfb/CMsgReaderV3.java')
-rw-r--r--java/com/tigervnc/rfb/CMsgReaderV3.java29
1 files changed, 29 insertions, 0 deletions
diff --git a/java/com/tigervnc/rfb/CMsgReaderV3.java b/java/com/tigervnc/rfb/CMsgReaderV3.java
index 6d9e254b..915b1e01 100644
--- a/java/com/tigervnc/rfb/CMsgReaderV3.java
+++ b/java/com/tigervnc/rfb/CMsgReaderV3.java
@@ -51,6 +51,8 @@ public class CMsgReaderV3 extends CMsgReader {
case MsgTypes.msgTypeSetColourMapEntries: readSetColourMapEntries(); break;
case MsgTypes.msgTypeBell: readBell(); break;
case MsgTypes.msgTypeServerCutText: readServerCutText(); break;
+ case MsgTypes.msgTypeServerFence: readFence(); break;
+ case MsgTypes.msgTypeEndOfContinuousUpdates: readEndOfContinuousUpdates(); break;
default:
vlog.error("unknown message type "+type);
throw new Exception("unknown message type");
@@ -136,6 +138,33 @@ public class CMsgReaderV3 extends CMsgReader {
handler.setExtendedDesktopSize(x, y, w, h, layout);
}
+ void readFence()
+ {
+ int flags;
+ int len;
+ byte[] data = new byte[64];
+
+ is.skip(3);
+
+ flags = is.readU32();
+
+ len = is.readU8();
+ if (len > data.length) {
+ System.out.println("Ignoring fence with too large payload\n");
+ is.skip(len);
+ return;
+ }
+
+ is.readBytes(data, 0, len);
+
+ handler.fence(flags, len, data);
+ }
+
+ void readEndOfContinuousUpdates()
+ {
+ handler.endOfContinuousUpdates();
+ }
+
void readClientRedirect(int x, int y, int w, int h)
{
int port = is.readU16();