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
diff --git a/java/com/tigervnc/rfb/CMsgReaderV3.java b/java/com/tigervnc/rfb/CMsgReaderV3.java
index 6d9e254..915b1e0 100644
--- a/java/com/tigervnc/rfb/CMsgReaderV3.java
+++ b/java/com/tigervnc/rfb/CMsgReaderV3.java
@@ -51,6 +51,8 @@
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 @@
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();