# HG changeset patch # User e085711 # Date 1311934651 -32400 # Node ID 5970410efee71717e7dd9816b2124e6cb78d367d # Parent fe5925bb9a7e67faa89ab0b115977bd5879706c9 modify VncProxyService. EncodingRAW -> EncodingZlib diff -r fe5925bb9a7e -r 5970410efee7 src/myVncProxy/MyRfbProto.java --- a/src/myVncProxy/MyRfbProto.java Thu Jul 28 18:03:26 2011 +0900 +++ b/src/myVncProxy/MyRfbProto.java Fri Jul 29 19:17:31 2011 +0900 @@ -141,30 +141,22 @@ cliListTmp.add(sock); } - void mark(int len) throws IOException { - is.mark(len); - } - - void reset() throws IOException { - is.reset(); - } - boolean markSupported() { return is.markSupported(); } void readServerInit() throws IOException { - mark(255); + is.mark(255); skipBytes(20); int nlen = readU32(); int blen = 20 + 4 + nlen; initData = new byte[blen]; - reset(); + is.reset(); - mark(blen); + is.mark(blen); readFully(initData); - reset(); + is.reset(); framebufferWidth = readU16(); framebufferHeight = readU16(); @@ -302,7 +294,7 @@ } void bufResetSend(int size) throws IOException { - reset(); + is.reset(); int len = size; if (available() < size) len = available(); @@ -313,7 +305,7 @@ void regiFramebufferUpdate() throws IOException { - mark(20); + is.mark(20); messageType = readU8(); skipBytes(1); rectangles = readU16(); @@ -322,9 +314,10 @@ rectW = readU16(); rectH = readU16(); encoding = readU32(); + System.out.println("encoding = "+encoding); if (encoding == 16) zLen = readU32(); - reset(); + is.reset(); /* int dataLen; switch (encoding) { @@ -360,11 +353,11 @@ switch (encoding) { case RfbProto.EncodingRaw: dataLen = rectW * rectH * 4 + 16; - mark(dataLen); + is.mark(dataLen); break; case RfbProto.EncodingCopyRect: dataLen = 16 + 4; - mark(dataLen); + is.mark(dataLen); break; case RfbProto.EncodingRRE: case RfbProto.EncodingCoRRE: @@ -373,11 +366,19 @@ case RfbProto.EncodingTight: case RfbProto.EncodingZRLE: dataLen = zLen + 20; - mark(dataLen); + is.mark(dataLen); + break; + case RfbProto.EncodingXCursor: + case RfbProto.EncodingRichCursor: + int pixArray = rectW * rectH * 4; + int u8Array = (int)Math.floor((rectW + 7)/8) * rectH; + dataLen = pixArray + u8Array; + printFramebufferUpdate(); + is.mark(dataLen); break; default: dataLen = 1000000; - mark(dataLen); + is.mark(dataLen); } return dataLen; } @@ -386,7 +387,7 @@ byte buffer[] = new byte[dataLen]; readFully(buffer); multicastqueue.put(buffer); - reset(); + is.reset(); /* for (Socket cli : cliList) { @@ -469,6 +470,8 @@ 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); switch (encoding) { case RfbProto.EncodingRaw: System.out.println("rectW * rectH * 4 + 16 =" + rectW * rectH * 4 diff -r fe5925bb9a7e -r 5970410efee7 src/myVncProxy/ProxyVncCanvas.java --- a/src/myVncProxy/ProxyVncCanvas.java Thu Jul 28 18:03:26 2011 +0900 +++ b/src/myVncProxy/ProxyVncCanvas.java Fri Jul 29 19:17:31 2011 +0900 @@ -362,15 +362,15 @@ long count = 0; while (true) { -// System.out.println("\ncount=" + count); - + System.out.println("\ncount=" + count); + count++; /** * read Data from parents and send Data to Client. */ - rfb.sendDataToClient(); - + rfb.sendDataToClient(); + int bufSize = (int)rfb.getNumBytesRead(); // Read message type from the server. diff -r fe5925bb9a7e -r 5970410efee7 src/myVncProxy/RfbProto.java --- a/src/myVncProxy/RfbProto.java Thu Jul 28 18:03:26 2011 +0900 +++ b/src/myVncProxy/RfbProto.java Fri Jul 29 19:17:31 2011 +0900 @@ -474,6 +474,7 @@ "Tight encoding"); // Supported pseudo-encoding types + encodingCaps.add(EncodingCompressLevel0, TightVncVendor, SigEncodingCompressLevel0, "Compression level"); encodingCaps.add(EncodingQualityLevel0, TightVncVendor, @@ -488,6 +489,7 @@ "LastRect protocol extension"); encodingCaps.add(EncodingNewFBSize, TightVncVendor, SigEncodingNewFBSize, "Framebuffer size change"); + } // diff -r fe5925bb9a7e -r 5970410efee7 src/myVncProxy/VncProxyService.java --- a/src/myVncProxy/VncProxyService.java Thu Jul 28 18:03:26 2011 +0900 +++ b/src/myVncProxy/VncProxyService.java Fri Jul 29 19:17:31 2011 +0900 @@ -353,11 +353,11 @@ int[] encodings = new int[20]; int nEncodings = 0; +/* encodings[nEncodings++] = preferredEncoding; if (options.useCopyRect) { encodings[nEncodings++] = RfbProto.EncodingCopyRect; } - if (preferredEncoding != RfbProto.EncodingTight) { encodings[nEncodings++] = RfbProto.EncodingTight; } @@ -367,9 +367,11 @@ if (preferredEncoding != RfbProto.EncodingHextile) { encodings[nEncodings++] = RfbProto.EncodingHextile; } +*/ if (preferredEncoding != RfbProto.EncodingZlib) { encodings[nEncodings++] = RfbProto.EncodingZlib; } +/* if (preferredEncoding != RfbProto.EncodingCoRRE) { encodings[nEncodings++] = RfbProto.EncodingCoRRE; } @@ -385,14 +387,14 @@ encodings[nEncodings++] = RfbProto.EncodingQualityLevel0 + options.jpegQuality; } - if (options.requestCursorUpdates) { encodings[nEncodings++] = RfbProto.EncodingXCursor; encodings[nEncodings++] = RfbProto.EncodingRichCursor; if (!options.ignoreCursorUpdates) encodings[nEncodings++] = RfbProto.EncodingPointerPos; } - + */ + encodings[nEncodings++] = RfbProto.EncodingLastRect; encodings[nEncodings++] = RfbProto.EncodingNewFBSize;