Mercurial > hg > Members > nobuyasu > tightVNCProxy
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