Mercurial > hg > Members > riono > TreeVNC_ja_comment
diff src/main/java/com/glavsoft/rfb/protocol/TreeTask.java @ 26:73b13bc335c2
add ZRLEESender.java, NullRenderer.java and NullRepaintController.java
author | one |
---|---|
date | Thu, 30 Aug 2012 16:51:46 +0900 |
parents | 1fe39e8ba3e9 |
children | 85958cba5d15 |
line wrap: on
line diff
--- a/src/main/java/com/glavsoft/rfb/protocol/TreeTask.java Thu Aug 30 15:14:31 2012 +0900 +++ b/src/main/java/com/glavsoft/rfb/protocol/TreeTask.java Thu Aug 30 16:51:46 2012 +0900 @@ -2,32 +2,29 @@ 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.client.FramebufferUpdateRequestMessage; -import com.glavsoft.rfb.client.SetPixelFormatMessage; import com.glavsoft.rfb.encoding.EncodingType; import com.glavsoft.rfb.encoding.decoder.Decoder; import com.glavsoft.rfb.encoding.decoder.DecodersContainer; -import com.glavsoft.rfb.encoding.decoder.FramebufferUpdateRectangle; -import com.glavsoft.rfb.encoding.decoder.RichCursorDecoder; import com.glavsoft.transport.Reader; +import com.glavsoft.rfb.encoding.decoder.ZRLEESender; public class TreeTask extends ReceiverTask { final static String versionMsg_3_855 = "RFB 003.855\n"; - private MyRfbProtoProxy rfb; public TreeTask(Reader reader, IRepaintController repaintController, ClipboardController clipboardController, - DecodersContainer decoders, ProtocolContext context, MyRfbProtoProxy _rfb) { - super(reader, repaintController, clipboardController, decoders, + DecodersContainer decoders, ProtocolContext context, MyRfbProtoProxy rfb) { + super(reader, new NullRepaintController(), clipboardController, decoders, context, true); - rfb = _rfb; + Decoder decoder = new ZRLEESender(rfb); + decoders.setDecoderByType(EncodingType.ZLIB, decoder); + decoders.setDecoderByType(EncodingType.ZRLE, decoder); } - /* + /* public void framebufferUpdateMessage() throws CommonException { + * * (non-Javadoc) * proxy * no Repaint @@ -38,54 +35,6 @@ * no context.send(); * if necessary ZRLEE -> ZRLE * readSendData(); + * */ - @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); - - Decoder decoder = decoders.getDecoderByType(rect.getEncodingType()); - logger.finest(rect.toString() + (0 == numberOfRectangles ? "\n---" : "")); - if (decoder != null) { - int zrleLength = getZrleLength(rect); - reader.reset(); - rfb.readSendData(zrleLength, reader); - } else if (rect.getEncodingType() == EncodingType.RICH_CURSOR) { - } else if (rect.getEncodingType() == EncodingType.CURSOR_POS) { - } else if (rect.getEncodingType() == EncodingType.DESKTOP_SIZE) { - fullscreenFbUpdateIncrementalRequest = - new FramebufferUpdateRequestMessage(0, 0, rect.width, rect.height, true); - context.sendMessage(new FramebufferUpdateRequestMessage(0, 0, rect.width, rect.height, false)); - } else - throw new CommonException("Unprocessed encoding: " + rect.toString()); - } - synchronized (this) { - if (needSendPixelFormat) { - needSendPixelFormat = false; - context.setPixelFormat(pixelFormat); - context.sendMessage(new SetPixelFormatMessage(pixelFormat)); - logger.fine("sent: "+pixelFormat); - context.sendRefreshMessage(); - logger.fine("sent: nonincremental fb update"); - } else { - context.sendMessage(fullscreenFbUpdateIncrementalRequest); - } - } - } - - 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; - } - }