comparison src/main/java/com/glavsoft/rfb/protocol/ReceiverTask.java @ 419:7e811f33b99d

Adhoc implement multi display
author Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
date Fri, 01 Jan 2016 02:39:25 +0900
parents c225c7963778
children 0ad52aac3bc3
comparison
equal deleted inserted replaced
418:0543c380308c 419:7e811f33b99d
86 Decoder decoder = new ZRLEESender(rfb); 86 Decoder decoder = new ZRLEESender(rfb);
87 decoders.setDecoderByType(EncodingType.ZLIB, decoder); 87 decoders.setDecoderByType(EncodingType.ZLIB, decoder);
88 decoders.setDecoderByType(EncodingType.ZRLE, decoder); 88 decoders.setDecoderByType(EncodingType.ZRLE, decoder);
89 decoders.setDecoderByType(EncodingType.ZRLEE, decoder); 89 decoders.setDecoderByType(EncodingType.ZRLEE, decoder);
90 90
91 if(!rfb.getCuiVersion()) 91 if(!rfb.getCuiVersion()) {
92 if (rfb.filterSingleDisplay) { 92 if (rfb.filterSingleDisplay) {
93 renderer = repaintController.createRenderer(reader, context.getFbWidth(), context.getFbHeight(), context.getPixelFormat()); 93 renderer = repaintController.createRenderer(reader, context.getFbWidth(), context.getFbHeight(), context.getPixelFormat());
94 fullscreenFbUpdateIncrementalRequest = new FramebufferUpdateRequestMessage(0, 0, rfb.getSingleWidth(), rfb.getSingleHeight(), false); 94 fullscreenFbUpdateIncrementalRequest = new FramebufferUpdateRequestMessage(0, 0, rfb.getSingleWidth(), rfb.getSingleHeight(), false);
95 } else { 95 } else {
96 renderer = repaintController.createRenderer(reader, context.getFbWidth(), context.getFbHeight(), context.getPixelFormat()); 96 renderer = repaintController.createRenderer(reader, context.getFbWidth(), context.getFbHeight(), context.getPixelFormat());
97 fullscreenFbUpdateIncrementalRequest = new FramebufferUpdateRequestMessage(0, 0, context.getFbWidth(), context.getFbHeight(), false); 97 fullscreenFbUpdateIncrementalRequest = new FramebufferUpdateRequestMessage(rfb.getX(), rfb.getY(), rfb.frameSizeWidth * rfb.getRetinaScale(), rfb.frameSizeHeight * rfb.getRetinaScale(), false);
98 } 98 }
99 }
99 if(rfb.isTreeManager()) { 100 if(rfb.isTreeManager()) {
100 fullscreenFbUpdateIncrementalRequest.sendFullScreenRequest(); 101 fullscreenFbUpdateIncrementalRequest.sendFullScreenRequest();
101 connectionFinished(); 102 connectionFinished();
102 if(rfb.fixingSize) { 103 if(rfb.fixingSize) {
103 timer = new Timer("framebufferUpdate-request-timer", true); 104 timer = new Timer("framebufferUpdate-request-timer", true);
104 timer.schedule(new TimerTask() { 105 timer.schedule(new TimerTask() {
105 @Override 106 @Override
106 public void run() { 107 public void run() {
107 context.setFbWidth(rfb.fixingSizeWidth); 108 context.setFbWidth(rfb.fixingSizeWidth);
108 context.setFbHeight(rfb.fixingSizeHeight); 109 context.setFbHeight(rfb.fixingSizeHeight);
109 context.sendMessage(new FramebufferUpdateRequestMessage(0, 0, context.getFbWidth(), context.getFbHeight(), true)); 110 context.sendMessage(new FramebufferUpdateRequestMessage(rfb.getX(), rfb.getY(), rfb.frameSizeWidth * rfb.getRetinaScale(), rfb.frameSizeHeight * rfb.getRetinaScale(), true));
110 } 111 }
111 }, 0, 100); 112 }, 0, 100);
112 } 113 }
113 } 114 }
114 } 115 }
128 // client has 8byte packet sequence number 129 // client has 8byte packet sequence number
129 // add serial number flag (4byte) 130 // add serial number flag (4byte)
130 reader.mark(20+8+4); 131 reader.mark(20+8+4);
131 getLost(reader); //check seq consistency 132 getLost(reader); //check seq consistency
132 } else { 133 } else {
133 reader.mark(20+8); 134 reader.mark(20+4);
134 } 135 }
135
136 byte messageId = reader.readByte(); 136 byte messageId = reader.readByte();
137
137 switch (messageId) { 138 switch (messageId) {
138 case FRAMEBUFFER_UPDATE: 139 case FRAMEBUFFER_UPDATE:
139 // logger.fine("Server message: FramebufferUpdate (0)"); 140 // logger.fine("Server message: FramebufferUpdate (0)");
140 framebufferUpdateMessage(); 141 framebufferUpdateMessage();
141 break; 142 break;
356 context.sendMessage(new SetPixelFormatMessage(pixelFormat)); 357 context.sendMessage(new SetPixelFormatMessage(pixelFormat));
357 logger.fine("sent: " + pixelFormat); 358 logger.fine("sent: " + pixelFormat);
358 context.sendRefreshMessage(); 359 context.sendRefreshMessage();
359 logger.fine("sent: nonincremental fb update"); 360 logger.fine("sent: nonincremental fb update");
360 } else { 361 } else {
361 context.sendMessage(new FramebufferUpdateRequestMessage(0, 0, context.getFbWidth(), context.getFbHeight(), false)); 362 context.sendMessage(new FramebufferUpdateRequestMessage(rfb.getX(), rfb.getY(), rfb.getSingleWidth() * rfb.getRetinaScale(), rfb.getSingleHeight() * rfb.getRetinaScale(), false));
362 } 363 }
363 } 364 }
364 } 365 }
365 } 366 }
366 367