changeset 229:5eb8aa65f387

fix checkdelay number-of-rectangle, and send checkdelay to lower node.
author oc
date Mon, 06 Oct 2014 18:17:37 +0900
parents 358484c9d4a3
children f4ea9ff04741
files src/main/java/com/glavsoft/rfb/protocol/ReceiverTask.java src/main/java/jp/ac/u_ryukyu/treevnc/TreeRFBProto.java src/main/java/jp/ac/u_ryukyu/treevnc/UpdateRectangleMessage.java
diffstat 3 files changed, 18 insertions(+), 14 deletions(-) [+]
line wrap: on
line diff
--- a/src/main/java/com/glavsoft/rfb/protocol/ReceiverTask.java	Mon Oct 06 12:02:56 2014 +0900
+++ b/src/main/java/com/glavsoft/rfb/protocol/ReceiverTask.java	Mon Oct 06 18:17:37 2014 +0900
@@ -219,10 +219,6 @@
         reader.readByte(); // padding
         int numberOfRectangles = reader.readUInt16();
         
-        if (numberOfRectangles == 1234) {
-            System.out.println("1~~~~~~~~");
-        }
-        
         while (numberOfRectangles-- > 0) {
             FramebufferUpdateRectangle rect = new FramebufferUpdateRectangle();
             rect.fill(reader);
@@ -269,6 +265,9 @@
                 //				repaintController.repaintCursor();
             } else if (rect.getEncodingType() == EncodingType.CHECK_DELAY) {
                 readCheckDelay(reader);
+                int length = reader.readInt32();
+                reader.reset();
+                rfb.readSendData(length + 24, reader, null);
                 System.out.println("rect.time=" + rect.time);
             } else
                 throw new CommonException("Unprocessed encoding: " + rect.toString());
--- a/src/main/java/jp/ac/u_ryukyu/treevnc/TreeRFBProto.java	Mon Oct 06 12:02:56 2014 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/treevnc/TreeRFBProto.java	Mon Oct 06 18:17:37 2014 +0900
@@ -62,6 +62,7 @@
     private TreeVncRootSelectionPanel rootSelectionPanel;
     private boolean isTreeManager;
     private String vncInterface;
+    private int i;
 
     public TreeRFBProto(boolean isTreeManager) {
         rThread = new RequestScreenThread(this);
@@ -541,17 +542,19 @@
         header.limit(16);
         if (header.get(0) == FramebufferUpdate) {
             int encoding = header.getInt(12);
-
-            LinkedList<ByteBuffer> checkdelay = new LinkedList<ByteBuffer>();
-            long time = System.currentTimeMillis();
-//            System.out.println("time =" + time);
-            checkdelay.add(new UpdateRectangleMessage(0, 0, 0, 0, time, EncodingType.CHECK_DELAY).getMessage());
-            this.addSerialNumber(checkdelay);
-            multicastqueue.put(checkdelay);
-
+            
+            
+            if (i%20 == 0) {
+                LinkedList<ByteBuffer> checkdelay = new LinkedList<ByteBuffer>();
+                long time = System.currentTimeMillis();
+                checkdelay.add(new UpdateRectangleMessage(0, 0, 0, 0, time, EncodingType.CHECK_DELAY).getMessage());
+                this.addSerialNumber(checkdelay);
+                multicastqueue.put(checkdelay);
+              } i++;
+            
             
             if (encoding == EncodingType.ZRLE.getId()
-                    || encoding == EncodingType.ZLIB.getId()) { 
+                    || encoding == EncodingType.ZLIB.getId()) {
                 // recompress into ZREE
                 // uncompressed result is remain in bytes
                 ByteBuffer len = multicastqueue.allocate(4);
@@ -589,6 +592,8 @@
                 }
                 return;
             }
+            
+            
             //    ZRLEE is already compressed
             bufs.add(header);
             if (dataLen > 16) {
--- a/src/main/java/jp/ac/u_ryukyu/treevnc/UpdateRectangleMessage.java	Mon Oct 06 12:02:56 2014 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/treevnc/UpdateRectangleMessage.java	Mon Oct 06 18:17:37 2014 +0900
@@ -15,7 +15,7 @@
 		msg = ByteBuffer.allocate(24).order(ByteOrder.BIG_ENDIAN);
 		msg.put((byte) 0); // FrameBufferUpdate
 		msg.put((byte) 0); // padding
-		msg.putShort((short) 1234); // number of rectangle
+		msg.putShort((short) 1); // number of rectangle
 		msg.putShort((short) i);
 		msg.putShort((short) j);
 		msg.putShort((short) width);