annotate src/main/java/jp/ac/u_ryukyu/alicevnc/ReceiveUpdateRectangle.java @ 11:aff2d0bb9c50

Viewable multi display
author YU
date Thu, 18 Sep 2014 21:37:03 +0900
parents 65d989192d63
children 66c06ebbced1
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
2
e046eb8a3ac1 succeed to repaint another viewer
YU
parents:
diff changeset
1 package jp.ac.u_ryukyu.alicevnc;
e046eb8a3ac1 succeed to repaint another viewer
YU
parents:
diff changeset
2
5
c05d3b89b446 Send DecodeInfo to Children Nodes. but occur ArrayIndexOutOfBoundsException.
YU
parents: 4
diff changeset
3 import java.util.ArrayList;
c05d3b89b446 Send DecodeInfo to Children Nodes. but occur ArrayIndexOutOfBoundsException.
YU
parents: 4
diff changeset
4
2
e046eb8a3ac1 succeed to repaint another viewer
YU
parents:
diff changeset
5 import com.glavsoft.exceptions.TransportException;
4
9a24e36d8ed7 use constructor for setting parms
YU
parents: 2
diff changeset
6 import com.glavsoft.rfb.encoding.EncodingType;
10
65d989192d63 change Protocol aliceVNCMessage
YU
parents: 5
diff changeset
7 import com.glavsoft.rfb.encoding.decoder.AliceVNCMessage;
2
e046eb8a3ac1 succeed to repaint another viewer
YU
parents:
diff changeset
8 import com.glavsoft.rfb.encoding.decoder.FramebufferUpdateRectangle;
e046eb8a3ac1 succeed to repaint another viewer
YU
parents:
diff changeset
9 import com.glavsoft.rfb.encoding.decoder.ZRLEDecoder;
e046eb8a3ac1 succeed to repaint another viewer
YU
parents:
diff changeset
10
e046eb8a3ac1 succeed to repaint another viewer
YU
parents:
diff changeset
11 import alice.codesegment.CodeSegment;
e046eb8a3ac1 succeed to repaint another viewer
YU
parents:
diff changeset
12 import alice.datasegment.CommandType;
e046eb8a3ac1 succeed to repaint another viewer
YU
parents:
diff changeset
13 import alice.datasegment.Receiver;
e046eb8a3ac1 succeed to repaint another viewer
YU
parents:
diff changeset
14
e046eb8a3ac1 succeed to repaint another viewer
YU
parents:
diff changeset
15 public class ReceiveUpdateRectangle extends CodeSegment{
e046eb8a3ac1 succeed to repaint another viewer
YU
parents:
diff changeset
16
e046eb8a3ac1 succeed to repaint another viewer
YU
parents:
diff changeset
17 private Receiver info = ids.create(CommandType.PEEK);
e046eb8a3ac1 succeed to repaint another viewer
YU
parents:
diff changeset
18 private Receiver info1 = ids.create(CommandType.TAKE);
5
c05d3b89b446 Send DecodeInfo to Children Nodes. but occur ArrayIndexOutOfBoundsException.
YU
parents: 4
diff changeset
19 private Receiver info2= ids.create(CommandType.PEEK);
c05d3b89b446 Send DecodeInfo to Children Nodes. but occur ArrayIndexOutOfBoundsException.
YU
parents: 4
diff changeset
20
2
e046eb8a3ac1 succeed to repaint another viewer
YU
parents:
diff changeset
21 public ReceiveUpdateRectangle(){
e046eb8a3ac1 succeed to repaint another viewer
YU
parents:
diff changeset
22 info.setKey("Holder");
10
65d989192d63 change Protocol aliceVNCMessage
YU
parents: 5
diff changeset
23 info1.setKey("aliceVNCMessage");
5
c05d3b89b446 Send DecodeInfo to Children Nodes. but occur ArrayIndexOutOfBoundsException.
YU
parents: 4
diff changeset
24 info2.setKey("_CLIST");
2
e046eb8a3ac1 succeed to repaint another viewer
YU
parents:
diff changeset
25 }
5
c05d3b89b446 Send DecodeInfo to Children Nodes. but occur ArrayIndexOutOfBoundsException.
YU
parents: 4
diff changeset
26
10
65d989192d63 change Protocol aliceVNCMessage
YU
parents: 5
diff changeset
27 @Override
2
e046eb8a3ac1 succeed to repaint another viewer
YU
parents:
diff changeset
28 public void run() {
e046eb8a3ac1 succeed to repaint another viewer
YU
parents:
diff changeset
29 try {
10
65d989192d63 change Protocol aliceVNCMessage
YU
parents: 5
diff changeset
30 RenderAndControllerHolder holder = info.asClass(RenderAndControllerHolder.class);
65d989192d63 change Protocol aliceVNCMessage
YU
parents: 5
diff changeset
31 AliceVNCMessage message = info1.asClass(AliceVNCMessage.class);
65d989192d63 change Protocol aliceVNCMessage
YU
parents: 5
diff changeset
32
65d989192d63 change Protocol aliceVNCMessage
YU
parents: 5
diff changeset
33 if (message.getEncodingType() == EncodingType.ZRLE){
65d989192d63 change Protocol aliceVNCMessage
YU
parents: 5
diff changeset
34 ZRLEDecoder decoder = new ZRLEDecoder();
65d989192d63 change Protocol aliceVNCMessage
YU
parents: 5
diff changeset
35 decoder.decode(message, holder.getRenderer());
65d989192d63 change Protocol aliceVNCMessage
YU
parents: 5
diff changeset
36 FramebufferUpdateRectangle rect = new FramebufferUpdateRectangle(
65d989192d63 change Protocol aliceVNCMessage
YU
parents: 5
diff changeset
37 message.x, message.y, message.width, message.height);
65d989192d63 change Protocol aliceVNCMessage
YU
parents: 5
diff changeset
38
65d989192d63 change Protocol aliceVNCMessage
YU
parents: 5
diff changeset
39 rect.encodingType = EncodingType.byId(message.encodingTypeId);
65d989192d63 change Protocol aliceVNCMessage
YU
parents: 5
diff changeset
40 holder.getRepaintController().repaintBitmap(rect);
65d989192d63 change Protocol aliceVNCMessage
YU
parents: 5
diff changeset
41
65d989192d63 change Protocol aliceVNCMessage
YU
parents: 5
diff changeset
42
11
aff2d0bb9c50 Viewable multi display
YU
parents: 10
diff changeset
43 } else if (message.getEncodingType() == EncodingType.DESKTOP_SIZE) {
10
65d989192d63 change Protocol aliceVNCMessage
YU
parents: 5
diff changeset
44 holder.setRenderer(
65d989192d63 change Protocol aliceVNCMessage
YU
parents: 5
diff changeset
45 holder.getRepaintController().createRenderer(null ,message.width,
11
aff2d0bb9c50 Viewable multi display
YU
parents: 10
diff changeset
46 message.height, message.getPixelFormat())
10
65d989192d63 change Protocol aliceVNCMessage
YU
parents: 5
diff changeset
47 );
65d989192d63 change Protocol aliceVNCMessage
YU
parents: 5
diff changeset
48
65d989192d63 change Protocol aliceVNCMessage
YU
parents: 5
diff changeset
49
65d989192d63 change Protocol aliceVNCMessage
YU
parents: 5
diff changeset
50 }
5
c05d3b89b446 Send DecodeInfo to Children Nodes. but occur ArrayIndexOutOfBoundsException.
YU
parents: 4
diff changeset
51
10
65d989192d63 change Protocol aliceVNCMessage
YU
parents: 5
diff changeset
52 @SuppressWarnings("unchecked")
65d989192d63 change Protocol aliceVNCMessage
YU
parents: 5
diff changeset
53 ArrayList<String> clist = info2.asClass(ArrayList.class);
65d989192d63 change Protocol aliceVNCMessage
YU
parents: 5
diff changeset
54 for (String node : clist){
65d989192d63 change Protocol aliceVNCMessage
YU
parents: 5
diff changeset
55 if (!"parent".equals(node))
65d989192d63 change Protocol aliceVNCMessage
YU
parents: 5
diff changeset
56 ods.put(node, "aliceVNCMessage", info1.getVal());
65d989192d63 change Protocol aliceVNCMessage
YU
parents: 5
diff changeset
57 }
65d989192d63 change Protocol aliceVNCMessage
YU
parents: 5
diff changeset
58 new ReceiveUpdateRectangle();
65d989192d63 change Protocol aliceVNCMessage
YU
parents: 5
diff changeset
59
2
e046eb8a3ac1 succeed to repaint another viewer
YU
parents:
diff changeset
60 } catch (TransportException e) {
e046eb8a3ac1 succeed to repaint another viewer
YU
parents:
diff changeset
61 e.printStackTrace();
e046eb8a3ac1 succeed to repaint another viewer
YU
parents:
diff changeset
62 }
e046eb8a3ac1 succeed to repaint another viewer
YU
parents:
diff changeset
63 }
e046eb8a3ac1 succeed to repaint another viewer
YU
parents:
diff changeset
64
e046eb8a3ac1 succeed to repaint another viewer
YU
parents:
diff changeset
65 }