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;
-	}
-
 }