Mercurial > hg > Applications > TreeVNC
annotate src/main/java/com/glavsoft/rfb/encoding/decoder/ZRLEESender.java @ 380:aef5cbdd84ab
Fix compare SerialNumber flag
author | innparusu |
---|---|
date | Wed, 02 Sep 2015 17:33:06 +0900 |
parents | 60abae693629 |
children | 47c018aed50e |
rev | line source |
---|---|
26
73b13bc335c2
add ZRLEESender.java, NullRenderer.java and NullRepaintController.java
one
parents:
diff
changeset
|
1 package com.glavsoft.rfb.encoding.decoder; |
73b13bc335c2
add ZRLEESender.java, NullRenderer.java and NullRepaintController.java
one
parents:
diff
changeset
|
2 |
232
6ee4cdca104c
send value of port and localhost in checkdelay framebufferupdate, and get this.
oc
parents:
207
diff
changeset
|
3 import java.io.UnsupportedEncodingException; |
6ee4cdca104c
send value of port and localhost in checkdelay framebufferupdate, and get this.
oc
parents:
207
diff
changeset
|
4 |
207 | 5 import jp.ac.u_ryukyu.treevnc.TreeRFBProto; |
26
73b13bc335c2
add ZRLEESender.java, NullRenderer.java and NullRepaintController.java
one
parents:
diff
changeset
|
6 |
73b13bc335c2
add ZRLEESender.java, NullRenderer.java and NullRepaintController.java
one
parents:
diff
changeset
|
7 import com.glavsoft.drawing.Renderer; |
73b13bc335c2
add ZRLEESender.java, NullRenderer.java and NullRepaintController.java
one
parents:
diff
changeset
|
8 import com.glavsoft.exceptions.TransportException; |
73b13bc335c2
add ZRLEESender.java, NullRenderer.java and NullRepaintController.java
one
parents:
diff
changeset
|
9 import com.glavsoft.rfb.encoding.EncodingType; |
73b13bc335c2
add ZRLEESender.java, NullRenderer.java and NullRepaintController.java
one
parents:
diff
changeset
|
10 import com.glavsoft.transport.Reader; |
73b13bc335c2
add ZRLEESender.java, NullRenderer.java and NullRepaintController.java
one
parents:
diff
changeset
|
11 |
73b13bc335c2
add ZRLEESender.java, NullRenderer.java and NullRepaintController.java
one
parents:
diff
changeset
|
12 public class ZRLEESender extends Decoder { |
66 | 13 |
239 | 14 private TreeRFBProto rfb; |
26
73b13bc335c2
add ZRLEESender.java, NullRenderer.java and NullRepaintController.java
one
parents:
diff
changeset
|
15 |
239 | 16 public ZRLEESender(TreeRFBProto rfb) { |
17 this.rfb = rfb; | |
18 } | |
66 | 19 |
239 | 20 public ZRLEESender() { |
21 } | |
66 | 22 |
239 | 23 @Override |
24 public void decode(Reader reader, Renderer renderer, | |
275 | 25 FramebufferUpdateRectangle rect) throws TransportException, UnsupportedEncodingException { |
239 | 26 // TreeVNC handling |
185 | 27 int dataLen = getZrleLength(rect, reader); |
190 | 28 byte[] bytes = new byte[rect.width * rect.height * renderer.getBytesPerPixel()]; |
319 | 29 // byte[] bytes = new byte[renderer.getWidth() * renderer.getHeight() * renderer.getBytesPerPixel()]; |
189 | 30 reader.reset(); |
239 | 31 if (rfb.hasViewer()) { |
32 ZRLEDecoder decoder = new ZRLEDecoder(); | |
33 if (rfb.isTreeManager()) { | |
264 | 34 rfb.readSendData(dataLen, reader, bytes, rect); |
239 | 35 decoder.decode1(renderer, rect, bytes, 0); |
36 return; | |
37 } else if (!rfb.getCuiVersion()) { | |
264 | 38 rfb.readSendData(dataLen, reader, null, rect); |
380 | 39 reader.reset(); |
40 reader.skip(16); | |
239 | 41 decoder.decode(reader, renderer, rect); |
42 return; | |
43 } | |
44 } | |
380 | 45 rfb.readSendData(dataLen, reader, bytes, rect); |
239 | 46 } |
26
73b13bc335c2
add ZRLEESender.java, NullRenderer.java and NullRepaintController.java
one
parents:
diff
changeset
|
47 |
239 | 48 private int getZrleLength(FramebufferUpdateRectangle rect, Reader reader) |
49 throws TransportException { | |
50 int zrleLength = 0; | |
51 if (rect.getEncodingType() == EncodingType.ZRLE | |
52 || rect.getEncodingType() == EncodingType.ZRLEE | |
53 || rect.getEncodingType() == EncodingType.ZLIB) { | |
54 zrleLength = reader.readInt32(); | |
55 } | |
56 return zrleLength + 20; | |
57 } | |
66 | 58 |
26
73b13bc335c2
add ZRLEESender.java, NullRenderer.java and NullRepaintController.java
one
parents:
diff
changeset
|
59 } |