annotate src/MyRfbProto.java @ 9:2237c4a06427

update MyRfbProto
author e085711
date Sat, 16 Apr 2011 00:22:17 +0900
parents efb8090ce9c3
children 9c7eab50c708
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
7
94c9e7825be2 add class MyRfbProto
e085711
parents:
diff changeset
1 import java.io.IOException;
94c9e7825be2 add class MyRfbProto
e085711
parents:
diff changeset
2 import java.net.Socket;
8
efb8090ce9c3 update MyRfbProto
e085711
parents: 7
diff changeset
3 import java.nio.ByteBuffer;
efb8090ce9c3 update MyRfbProto
e085711
parents: 7
diff changeset
4
7
94c9e7825be2 add class MyRfbProto
e085711
parents:
diff changeset
5
94c9e7825be2 add class MyRfbProto
e085711
parents:
diff changeset
6 class MyRfbProto extends RfbProto {
8
efb8090ce9c3 update MyRfbProto
e085711
parents: 7
diff changeset
7
efb8090ce9c3 update MyRfbProto
e085711
parents: 7
diff changeset
8 private byte initData[];
efb8090ce9c3 update MyRfbProto
e085711
parents: 7
diff changeset
9
7
94c9e7825be2 add class MyRfbProto
e085711
parents:
diff changeset
10 MyRfbProto(String h, int p, VncViewer v) throws IOException {
94c9e7825be2 add class MyRfbProto
e085711
parents:
diff changeset
11 super(h, p, v);
94c9e7825be2 add class MyRfbProto
e085711
parents:
diff changeset
12 }
94c9e7825be2 add class MyRfbProto
e085711
parents:
diff changeset
13
94c9e7825be2 add class MyRfbProto
e085711
parents:
diff changeset
14 void mark(int len) throws IOException {
94c9e7825be2 add class MyRfbProto
e085711
parents:
diff changeset
15 is.mark(len);
94c9e7825be2 add class MyRfbProto
e085711
parents:
diff changeset
16 }
94c9e7825be2 add class MyRfbProto
e085711
parents:
diff changeset
17
94c9e7825be2 add class MyRfbProto
e085711
parents:
diff changeset
18 void reset() throws IOException {
94c9e7825be2 add class MyRfbProto
e085711
parents:
diff changeset
19 is.reset();
94c9e7825be2 add class MyRfbProto
e085711
parents:
diff changeset
20 }
94c9e7825be2 add class MyRfbProto
e085711
parents:
diff changeset
21
8
efb8090ce9c3 update MyRfbProto
e085711
parents: 7
diff changeset
22 boolean markSupported() {
7
94c9e7825be2 add class MyRfbProto
e085711
parents:
diff changeset
23 return is.markSupported();
94c9e7825be2 add class MyRfbProto
e085711
parents:
diff changeset
24 }
8
efb8090ce9c3 update MyRfbProto
e085711
parents: 7
diff changeset
25
efb8090ce9c3 update MyRfbProto
e085711
parents: 7
diff changeset
26 void readServerInit() throws IOException {
efb8090ce9c3 update MyRfbProto
e085711
parents: 7
diff changeset
27
efb8090ce9c3 update MyRfbProto
e085711
parents: 7
diff changeset
28 mark(255);
efb8090ce9c3 update MyRfbProto
e085711
parents: 7
diff changeset
29 skipBytes(20);
efb8090ce9c3 update MyRfbProto
e085711
parents: 7
diff changeset
30 int nlen = readU32();
efb8090ce9c3 update MyRfbProto
e085711
parents: 7
diff changeset
31 initData = new byte[20+4+nlen];
efb8090ce9c3 update MyRfbProto
e085711
parents: 7
diff changeset
32 readFully(initData);
efb8090ce9c3 update MyRfbProto
e085711
parents: 7
diff changeset
33 reset();
efb8090ce9c3 update MyRfbProto
e085711
parents: 7
diff changeset
34
7
94c9e7825be2 add class MyRfbProto
e085711
parents:
diff changeset
35 framebufferWidth = readU16();
94c9e7825be2 add class MyRfbProto
e085711
parents:
diff changeset
36 framebufferHeight = readU16();
94c9e7825be2 add class MyRfbProto
e085711
parents:
diff changeset
37 bitsPerPixel = readU8();
94c9e7825be2 add class MyRfbProto
e085711
parents:
diff changeset
38 depth = readU8();
94c9e7825be2 add class MyRfbProto
e085711
parents:
diff changeset
39 bigEndian = (readU8() != 0);
94c9e7825be2 add class MyRfbProto
e085711
parents:
diff changeset
40 trueColour = (readU8() != 0);
94c9e7825be2 add class MyRfbProto
e085711
parents:
diff changeset
41 redMax = readU16();
94c9e7825be2 add class MyRfbProto
e085711
parents:
diff changeset
42 greenMax = readU16();
94c9e7825be2 add class MyRfbProto
e085711
parents:
diff changeset
43 blueMax = readU16();
94c9e7825be2 add class MyRfbProto
e085711
parents:
diff changeset
44 redShift = readU8();
94c9e7825be2 add class MyRfbProto
e085711
parents:
diff changeset
45 greenShift = readU8();
94c9e7825be2 add class MyRfbProto
e085711
parents:
diff changeset
46 blueShift = readU8();
8
efb8090ce9c3 update MyRfbProto
e085711
parents: 7
diff changeset
47 byte[] pad = new byte[3];
efb8090ce9c3 update MyRfbProto
e085711
parents: 7
diff changeset
48 readFully(pad);
efb8090ce9c3 update MyRfbProto
e085711
parents: 7
diff changeset
49 int nameLength = readU32();
efb8090ce9c3 update MyRfbProto
e085711
parents: 7
diff changeset
50 byte[] name = new byte[nameLength];
efb8090ce9c3 update MyRfbProto
e085711
parents: 7
diff changeset
51 readFully(name);
efb8090ce9c3 update MyRfbProto
e085711
parents: 7
diff changeset
52 desktopName = new String(name);
7
94c9e7825be2 add class MyRfbProto
e085711
parents:
diff changeset
53
8
efb8090ce9c3 update MyRfbProto
e085711
parents: 7
diff changeset
54 // Read interaction capabilities (TightVNC protocol extensions)
efb8090ce9c3 update MyRfbProto
e085711
parents: 7
diff changeset
55 if (protocolTightVNC) {
efb8090ce9c3 update MyRfbProto
e085711
parents: 7
diff changeset
56 int nServerMessageTypes = readU16();
efb8090ce9c3 update MyRfbProto
e085711
parents: 7
diff changeset
57 int nClientMessageTypes = readU16();
efb8090ce9c3 update MyRfbProto
e085711
parents: 7
diff changeset
58 int nEncodingTypes = readU16();
efb8090ce9c3 update MyRfbProto
e085711
parents: 7
diff changeset
59 readU16();
efb8090ce9c3 update MyRfbProto
e085711
parents: 7
diff changeset
60 readCapabilityList(serverMsgCaps, nServerMessageTypes);
efb8090ce9c3 update MyRfbProto
e085711
parents: 7
diff changeset
61 readCapabilityList(clientMsgCaps, nClientMessageTypes);
efb8090ce9c3 update MyRfbProto
e085711
parents: 7
diff changeset
62 readCapabilityList(encodingCaps, nEncodingTypes);
efb8090ce9c3 update MyRfbProto
e085711
parents: 7
diff changeset
63 }
efb8090ce9c3 update MyRfbProto
e085711
parents: 7
diff changeset
64
efb8090ce9c3 update MyRfbProto
e085711
parents: 7
diff changeset
65 inNormalProtocol = true;
7
94c9e7825be2 add class MyRfbProto
e085711
parents:
diff changeset
66 }
94c9e7825be2 add class MyRfbProto
e085711
parents:
diff changeset
67
9
2237c4a06427 update MyRfbProto
e085711
parents: 8
diff changeset
68 void sendInitData(Socket sock) throws IOException{
8
efb8090ce9c3 update MyRfbProto
e085711
parents: 7
diff changeset
69 sock.getOutputStream().write(initData);
efb8090ce9c3 update MyRfbProto
e085711
parents: 7
diff changeset
70 }
7
94c9e7825be2 add class MyRfbProto
e085711
parents:
diff changeset
71
94c9e7825be2 add class MyRfbProto
e085711
parents:
diff changeset
72
94c9e7825be2 add class MyRfbProto
e085711
parents:
diff changeset
73 }