diff src/myVncProxy/MyRfbProto.java @ 127:97bb1436e34c

change encode to Hextile from ZRLE
author e085711
date Tue, 02 Aug 2011 13:17:23 +0900
parents 762d2b7f1db2
children fa2122e5c807
line wrap: on
line diff
--- a/src/myVncProxy/MyRfbProto.java	Tue Aug 02 03:07:22 2011 +0900
+++ b/src/myVncProxy/MyRfbProto.java	Tue Aug 02 13:17:23 2011 +0900
@@ -39,7 +39,6 @@
 	private int rectW;
 	private int rectH;
 	private int encoding;
-	private int zLen;
 	private int bytesPixel;
 
 	private ServerSocket servSock;
@@ -296,10 +295,7 @@
 
 	void bufResetSend(int size) throws IOException {
 		is.reset();
-		int len = size;
-		if (available() < size)
-			len = available();
-		byte buffer[] = new byte[len];
+		byte buffer[] = new byte[size];
 		readFully(buffer);
 		sendData(buffer);
 	}
@@ -315,71 +311,35 @@
 		rectW = readU16();
 		rectH = readU16();
 		encoding = readU32();
-		System.out.println("encoding = "+ encoding);
-		switch (encoding) {
-		case RfbProto.EncodingZRLE:
-			zLen = readU32();
-			break;
-		case RfbProto.EncodingTight:
-			int comp_ctl = readU8();
-			zLen = 1;
-			if (comp_ctl == TightFill) {
-				if (bytesPixel == 1 ) {
-//					int idx = readU8();
-					zLen++;
-				}else {
-/*
-					byte[] buf = new byte[3];
-					readFully(buf);
-*/
-					zLen += 3;
-				}
-			}
-			if ( comp_ctl == TightJpeg) {
-/*
-				byte[] jpegData = new byte[readCompactLen()];
-				readFully(jpegData);
-*/
-				zLen += 3;
-				zLen += readCompactLen();
-			}
-			break;
-		default:
-			
-		}
-			
-		is.reset();
-/*
+
 		int dataLen;
 		switch (encoding) {
 		case RfbProto.EncodingRaw:
 			dataLen = rectW * rectH * 4 + 16;
-			mark(dataLen);
 			break;
-						case RfbProto.EncodingCopyRect:
-			dataLen = 16 + 4;
-			mark(dataLen);
+		case RfbProto.EncodingZRLE:
+			int zLen = readU32();
+			dataLen = zLen + 20;
 			break;
 		case RfbProto.EncodingRRE:
 		case RfbProto.EncodingCoRRE:
 		case RfbProto.EncodingHextile:
-			
 		case RfbProto.EncodingZlib:
 		case RfbProto.EncodingTight:
-		case RfbProto.EncodingZRLE:
-			dataLen = zLen + 20;
-			mark(dataLen);
-			break;
+		// dataLen <= EncodingRaw
 		default:
-			dataLen = 1000000;
-			mark(dataLen);
+			dataLen = rectW * rectH * 4 + 16;
+			break;
 		}
-	
-*/	
-	
+		System.out.println("dataLen = "+dataLen);
+		is.reset();
+		is.mark(dataLen);
+
 	}
 
+	
 	int checkAndMark() throws IOException {
+/*
 		int dataLen;
 		switch (encoding) {
 		case RfbProto.EncodingRaw:
@@ -415,6 +375,8 @@
 			is.mark(dataLen);
 		}
 		return dataLen;
+*/
+		return 0;
 	}
 	
 	void readSendData(int dataLen) throws IOException {
@@ -510,8 +472,9 @@
 		System.out.println("messageType=" + messageType);
 		System.out.println("rectangles=" + rectangles);
 		System.out.println("encoding=" + encoding);
-		System.out.println("rectX = "+rectX+": rectY = "+rectY);
-		System.out.println("rectW = "+rectW+": rectH = "+rectH);
+		System.out.println("rectX = "+ rectX +": rectY = "+rectY);
+		System.out.println("rectW = "+ rectW +": rectH = "+rectH);
+		System.out.println("rectW * rectH = " + rectW * rectH);
 		switch (encoding) {
 		case RfbProto.EncodingRaw:
 			System.out.println("rectW * rectH * 4 + 16 =" + rectW * rectH * 4