Mercurial > hg > Applications > TightVNC_orginal
view src/main/java/com/glavsoft/rfb/protocol/TreeTask.java @ 19:ea83f4be0cc9
remove is and os
fix numberOfRectangle fill().
author | Taninari YU <you@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Wed, 29 Aug 2012 21:28:18 +0900 |
parents | e654b2e4de64 |
children | 6a4312344a5a |
line wrap: on
line source
package com.glavsoft.rfb.protocol; import jp.ac.u_ryukyu.treevnc.server.*; import com.glavsoft.exceptions.CommonException; import com.glavsoft.exceptions.TransportException; import com.glavsoft.rfb.ClipboardController; import com.glavsoft.rfb.IRepaintController; import com.glavsoft.rfb.encoding.EncodingType; import com.glavsoft.rfb.encoding.decoder.DecodersContainer; import com.glavsoft.rfb.encoding.decoder.FramebufferUpdateRectangle; import com.glavsoft.transport.Reader; public class TreeTask extends ReceiverTask { final static String versionMsg_3_855 = "RFB 003.855\n"; private Reader reader; private MyRfbProtoProxy rfb; private ProtocolContext context; public TreeTask(Reader reader, IRepaintController repaintController, ClipboardController clipboardController, DecodersContainer decoders, ProtocolContext context, boolean flag) { super(reader, repaintController, clipboardController, decoders, context, true); this.context = context; this.reader = reader; } @Override public void framebufferUpdateMessage() throws CommonException { reader.readByte(); // padding int numberOfRectangles = reader.readUInt16(); // number of rectangles while (numberOfRectangles-- > 0) { FramebufferUpdateRectangle rect = new FramebufferUpdateRectangle(); rect.fill(reader); int zrleLength = getZrleLength(rect); reader.reset(); rfb.readSendData(zrleLength, reader); boolean fullUpdateNeeded = false; int w = context.getFbWidth(); int h = context.getFbHeight(); rfb.writeFramebufferUpdateRequest(0, 0, w, h, !fullUpdateNeeded); // rfb.checkDelayData(); } } private int getZrleLength(FramebufferUpdateRectangle rect) throws TransportException { int zrleLength = 0; if (rect.getEncodingType() == EncodingType.ZRLE || rect.getEncodingType() == EncodingType.ZRLEE || rect.getEncodingType() == EncodingType.ZLIB) { zrleLength = reader.readInt32(); ; } return zrleLength + 20; } @Override public void setRfb(MyRfbProtoProxy _rfb) { rfb = _rfb; } }