diff src/main/java/com/glavsoft/rfb/protocol/ReceiverTask.java @ 420:0ad52aac3bc3

Send repeat FramebufferUpdateRequest from Timer class
author Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
date Mon, 18 Jan 2016 17:37:58 +0900
parents 7e811f33b99d
children 752788fdae03
line wrap: on
line diff
--- a/src/main/java/com/glavsoft/rfb/protocol/ReceiverTask.java	Fri Jan 01 02:39:25 2016 +0900
+++ b/src/main/java/com/glavsoft/rfb/protocol/ReceiverTask.java	Mon Jan 18 17:37:58 2016 +0900
@@ -117,6 +117,15 @@
     @Override
     public void run() {
         isRunning = true;
+        if (rfb.isTreeManager()) {
+            timer = new Timer("framebufferUpdate-request-timer", true);
+            timer.schedule(new TimerTask() {
+                @Override
+                public void run() {
+                    context.sendMessage(new FramebufferUpdateRequestMessage(rfb.getX(), rfb.getY(), rfb.frameSizeWidth * rfb.getRetinaScale(), rfb.frameSizeHeight * rfb.getRetinaScale(), false));
+                }
+            }, 0, 100);
+        }
         while (isRunning) {
             try {
                 reader.available();
@@ -358,8 +367,6 @@
                     logger.fine("sent: " + pixelFormat);
                     context.sendRefreshMessage();
                     logger.fine("sent: nonincremental fb update");
-                } else {
-                    context.sendMessage(new FramebufferUpdateRequestMessage(rfb.getX(), rfb.getY(), rfb.getSingleWidth() * rfb.getRetinaScale(), rfb.getSingleHeight() * rfb.getRetinaScale(), false));
                 }
             }
         }
@@ -377,6 +384,10 @@
 
     public void stopTask() {
         isRunning = false;
+        if (timer != null) {
+            timer.cancel();
+            timer.purge();
+        }
     }
 
     private void connectionFinished() {