Mercurial > hg > Applications > TreeVNC
annotate src/main/java/jp/ac/u_ryukyu/treevnc/ScreenChangeRequest.java @ 417:c225c7963778
Send screen position
author | Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp> |
---|---|
date | Mon, 14 Dec 2015 16:20:20 +0900 |
parents | da1d6d6b4981 |
children | ed15f0bd8dfa |
rev | line source |
---|---|
107 | 1 package jp.ac.u_ryukyu.treevnc; |
2 | |
112 | 3 import java.nio.ByteBuffer; |
4 import java.nio.ByteOrder; | |
5 | |
107 | 6 import com.glavsoft.exceptions.TransportException; |
7 import com.glavsoft.rfb.client.ClientToServerMessage; | |
8 import com.glavsoft.transport.Writer; | |
9 | |
10 /** | |
339
4713559f5838
if have a parent, send serverChangeRequest and whereToConnect
oc
parents:
280
diff
changeset
|
11 * ServerChangeRequest |
4713559f5838
if have a parent, send serverChangeRequest and whereToConnect
oc
parents:
280
diff
changeset
|
12 * Change VNCServer |
4713559f5838
if have a parent, send serverChangeRequest and whereToConnect
oc
parents:
280
diff
changeset
|
13 * 1 - U8 - 240 |
107 | 14 * 3 - - padding |
339
4713559f5838
if have a parent, send serverChangeRequest and whereToConnect
oc
parents:
280
diff
changeset
|
15 * 4 - - id |
107 | 16 * 4 - U32 - length |
17 * length - U8 array - text | |
18 */ | |
19 public class ScreenChangeRequest implements ClientToServerMessage { | |
113
bce2ef0a2e79
use ProtocolContext.sendMessage for upward command
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
112
diff
changeset
|
20 final String bytes; |
410 | 21 private final int scale; |
417
c225c7963778
Send screen position
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
410
diff
changeset
|
22 private final int x; |
c225c7963778
Send screen position
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
410
diff
changeset
|
23 private final int y; |
410 | 24 private short id; |
257 | 25 private int frameSizeWidth; |
26 private int frameSizeHeight; | |
340 | 27 private int port; |
405
cdab1354e227
Add multiscreen Share Filtering flag
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
359
diff
changeset
|
28 private int shareScreenNumber; |
107 | 29 |
417
c225c7963778
Send screen position
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
410
diff
changeset
|
30 public ScreenChangeRequest(String adr, int port, short id, int x, int y, int width, int height, int shareScreenNumber, int scale) { |
112 | 31 this.bytes = adr; |
340 | 32 this.port = port; |
170 | 33 this.id = id; |
417
c225c7963778
Send screen position
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
410
diff
changeset
|
34 this.x = x; |
c225c7963778
Send screen position
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
410
diff
changeset
|
35 this.y = y; |
257 | 36 this.frameSizeWidth = width; |
37 this.frameSizeHeight = height; | |
405
cdab1354e227
Add multiscreen Share Filtering flag
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
359
diff
changeset
|
38 this.shareScreenNumber = shareScreenNumber; |
410 | 39 this.scale = scale; |
112 | 40 System.out.println("Client send change screen server request :" + adr); |
107 | 41 } |
42 | |
280
9c5874d0f37e
fix adjustHdSizeButton button, this button send REQUEST_SINGLE_DISPLAY_WIDTH
oc
parents:
257
diff
changeset
|
43 @Override |
9c5874d0f37e
fix adjustHdSizeButton button, this button send REQUEST_SINGLE_DISPLAY_WIDTH
oc
parents:
257
diff
changeset
|
44 public void send(Writer writer) throws TransportException { |
417
c225c7963778
Send screen position
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
410
diff
changeset
|
45 ByteBuffer out = ByteBuffer.allocate(bytes.length()+37); |
280
9c5874d0f37e
fix adjustHdSizeButton button, this button send REQUEST_SINGLE_DISPLAY_WIDTH
oc
parents:
257
diff
changeset
|
46 out.order(ByteOrder.BIG_ENDIAN); |
9c5874d0f37e
fix adjustHdSizeButton button, this button send REQUEST_SINGLE_DISPLAY_WIDTH
oc
parents:
257
diff
changeset
|
47 out.put(SERVER_CHANGE_REQUEST); |
9c5874d0f37e
fix adjustHdSizeButton button, this button send REQUEST_SINGLE_DISPLAY_WIDTH
oc
parents:
257
diff
changeset
|
48 out.put((byte)0); // padding |
9c5874d0f37e
fix adjustHdSizeButton button, this button send REQUEST_SINGLE_DISPLAY_WIDTH
oc
parents:
257
diff
changeset
|
49 out.putShort(id); |
9c5874d0f37e
fix adjustHdSizeButton button, this button send REQUEST_SINGLE_DISPLAY_WIDTH
oc
parents:
257
diff
changeset
|
50 out.putInt(bytes.length()); |
9c5874d0f37e
fix adjustHdSizeButton button, this button send REQUEST_SINGLE_DISPLAY_WIDTH
oc
parents:
257
diff
changeset
|
51 out.put(bytes.getBytes()); |
417
c225c7963778
Send screen position
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
410
diff
changeset
|
52 out.putInt(x); |
c225c7963778
Send screen position
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
410
diff
changeset
|
53 out.putInt(y); |
257 | 54 out.putInt(frameSizeWidth); |
55 out.putInt(frameSizeHeight); | |
340 | 56 out.putInt(port); |
405
cdab1354e227
Add multiscreen Share Filtering flag
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
359
diff
changeset
|
57 out.putInt(shareScreenNumber); |
410 | 58 out.putInt(scale); |
280
9c5874d0f37e
fix adjustHdSizeButton button, this button send REQUEST_SINGLE_DISPLAY_WIDTH
oc
parents:
257
diff
changeset
|
59 writer.write(out.array(), 0, out.position()); |
9c5874d0f37e
fix adjustHdSizeButton button, this button send REQUEST_SINGLE_DISPLAY_WIDTH
oc
parents:
257
diff
changeset
|
60 writer.flush(); |
9c5874d0f37e
fix adjustHdSizeButton button, this button send REQUEST_SINGLE_DISPLAY_WIDTH
oc
parents:
257
diff
changeset
|
61 } |
107 | 62 |
63 @Override | |
64 public String toString() { | |
340 | 65 return "Screen change request: [length: " + bytes.length() +", text: ...]" + new String (bytes) + " : " + port; |
107 | 66 } |
67 } |