comparison src/main/java/jp/ac/u_ryukyu/alicevnc/ReceiveServerInitMessage.java @ 3:9d932f70b29a

create MyServerInitMessage. ServerInitMessage could not send with MessagePack for including PixelFormat class
author YU
date Sat, 13 Sep 2014 19:48:08 +0900
parents e046eb8a3ac1
children 7c7a9b23c291
comparison
equal deleted inserted replaced
2:e046eb8a3ac1 3:9d932f70b29a
1 package jp.ac.u_ryukyu.alicevnc; 1 package jp.ac.u_ryukyu.alicevnc;
2 2
3 import com.glavsoft.drawing.Renderer; 3 import com.glavsoft.drawing.Renderer;
4 import com.glavsoft.rfb.IRepaintController; 4 import com.glavsoft.rfb.IRepaintController;
5 import com.glavsoft.rfb.encoding.PixelFormat;
5 import com.glavsoft.rfb.encoding.ServerInitMessage; 6 import com.glavsoft.rfb.encoding.ServerInitMessage;
6 import com.glavsoft.rfb.protocol.Protocol; 7 import com.glavsoft.rfb.protocol.Protocol;
7 import com.glavsoft.rfb.protocol.ProtocolSettings; 8 import com.glavsoft.rfb.protocol.ProtocolSettings;
8 import com.glavsoft.viewer.Viewer; 9 import com.glavsoft.viewer.Viewer;
9 import com.glavsoft.viewer.cli.Parser; 10 import com.glavsoft.viewer.cli.Parser;
15 import alice.datasegment.CommandType; 16 import alice.datasegment.CommandType;
16 import alice.datasegment.Receiver; 17 import alice.datasegment.Receiver;
17 18
18 public class ReceiveServerInitMessage extends CodeSegment { 19 public class ReceiveServerInitMessage extends CodeSegment {
19 20
20 private Receiver info = ids.create(CommandType.TAKE); 21 private Receiver info = ids.create(CommandType.PEEK);
21 22
22 23
23 public ReceiveServerInitMessage(){ 24 public ReceiveServerInitMessage(){
24 info.setKey("ServerInitMessage"); 25 info.setKey("ServerInitMessage");
25 } 26 }
26 27
28 public ReceiveServerInitMessage(String key){
29 info.setKey(key, "MyServerInitMessage");
30 }
31
27 public void run() { 32 public void run() {
28 33 PixelFormat pixelFormat = null;
34 int width = 0;
35 int height = 0;
36 String name = "defalut";
37
29 Parser parser = new Parser(); 38 Parser parser = new Parser();
30 ParametersHandler.completeParserOptions(parser); 39 ParametersHandler.completeParserOptions(parser);
31 if (parser.isSet(ParametersHandler.ARG_HELP)) { 40 if (parser.isSet(ParametersHandler.ARG_HELP)) {
32 System.exit(0); 41 System.exit(0);
33 } 42 }
34 Viewer viewer = new Viewer(parser); 43 Viewer viewer = new Viewer(parser);
35 SwingViewerWindowFactory viewerWindowFactory = new SwingViewerWindowFactory(true, false, viewer); 44 SwingViewerWindowFactory viewerWindowFactory = new SwingViewerWindowFactory(true, false, viewer);
36 ProtocolSettings settings = ProtocolSettings.getDefaultSettings(); 45 ProtocolSettings settings = ProtocolSettings.getDefaultSettings();
37 Protocol context = new Protocol(null, null, null, settings); 46 Protocol context = new Protocol(null, null, null, settings);
38 //context.createMessageQueue(); // need clear Queue 47 //context.createMessageQueue(); // need clear Queue
39 ServerInitMessage serverInitMessage = info.asClass(ServerInitMessage.class); 48 if ("local".equals(info.from)){
40 context.setPixelFormat(serverInitMessage.getPixelFormat()); 49 ServerInitMessage serverInitMessage = info.asClass(ServerInitMessage.class);
41 context.setFbWidth(serverInitMessage.getFrameBufferWidth()); 50 pixelFormat = serverInitMessage.getPixelFormat();
42 context.setFbHeight(serverInitMessage.getFrameBufferHeight()); 51 width = serverInitMessage.getFrameBufferWidth();
43 context.setRemoteDesktopName(serverInitMessage.getName()); 52 height = serverInitMessage.getFrameBufferHeight();
53 name = serverInitMessage.getName();
54
55 MyServerInitMessage myServerInitMessage = new MyServerInitMessage(serverInitMessage);
56 myServerInitMessage.width = width;
57 myServerInitMessage.height = height;
58 myServerInitMessage.name = name;
59
60 ods.put("MyServerInitMessage", myServerInitMessage);
61 } else {
62 MyServerInitMessage serverInitMessage = info.asClass(MyServerInitMessage.class);
63 pixelFormat = serverInitMessage.getPixelFormat();
64 width = serverInitMessage.width;
65 height = serverInitMessage.height;
66 name = serverInitMessage.name;
67 }
68
69 context.setPixelFormat(pixelFormat);
70 context.setFbWidth(width);
71 context.setFbHeight(height);
72 context.setRemoteDesktopName(name);
44 73
45 SwingViewerWindow viewerWindow = viewerWindowFactory.createViewerWindow(context, settings, viewer.getUiSettings(), null, null); 74 SwingViewerWindow viewerWindow = viewerWindowFactory.createViewerWindow(context, settings, viewer.getUiSettings(), null, null);
46 IRepaintController repaintController = viewerWindow.getSurface(); 75 IRepaintController repaintController = viewerWindow.getSurface();
47 Renderer renderer = repaintController.createRenderer(null, serverInitMessage.getFrameBufferWidth(), serverInitMessage.getFrameBufferHeight(), context.getPixelFormat()); 76 Renderer renderer = repaintController.createRenderer(null, width, height, context.getPixelFormat());
48 RenderAndControllerHolder holder = new RenderAndControllerHolder(renderer, repaintController); 77 RenderAndControllerHolder holder = new RenderAndControllerHolder(renderer, repaintController);
49 ods.put("Holder", holder); 78 ods.put("Holder", holder);
50 79
51 new ReceiveUpdateRectangle(); 80 new ReceiveUpdateRectangle();
52 } 81 }
53 82
54 } 83 }