annotate src/main/java/com/glavsoft/rfb/protocol/ProtocolSettings.java @ 15:e28c17afa0e9

add SecurityType.REQUIRE_AUTHENTICATION
author one
date Sun, 28 Sep 2014 11:59:14 +0900
parents daa24f8a557b
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
daa24f8a557b TightVNC original
YU
parents:
diff changeset
1 // Copyright (C) 2010, 2011, 2012, 2013 GlavSoft LLC.
daa24f8a557b TightVNC original
YU
parents:
diff changeset
2 // All rights reserved.
daa24f8a557b TightVNC original
YU
parents:
diff changeset
3 //
daa24f8a557b TightVNC original
YU
parents:
diff changeset
4 //-------------------------------------------------------------------------
daa24f8a557b TightVNC original
YU
parents:
diff changeset
5 // This file is part of the TightVNC software. Please visit our Web site:
daa24f8a557b TightVNC original
YU
parents:
diff changeset
6 //
daa24f8a557b TightVNC original
YU
parents:
diff changeset
7 // http://www.tightvnc.com/
daa24f8a557b TightVNC original
YU
parents:
diff changeset
8 //
daa24f8a557b TightVNC original
YU
parents:
diff changeset
9 // This program is free software; you can redistribute it and/or modify
daa24f8a557b TightVNC original
YU
parents:
diff changeset
10 // it under the terms of the GNU General Public License as published by
daa24f8a557b TightVNC original
YU
parents:
diff changeset
11 // the Free Software Foundation; either version 2 of the License, or
daa24f8a557b TightVNC original
YU
parents:
diff changeset
12 // (at your option) any later version.
daa24f8a557b TightVNC original
YU
parents:
diff changeset
13 //
daa24f8a557b TightVNC original
YU
parents:
diff changeset
14 // This program is distributed in the hope that it will be useful,
daa24f8a557b TightVNC original
YU
parents:
diff changeset
15 // but WITHOUT ANY WARRANTY; without even the implied warranty of
daa24f8a557b TightVNC original
YU
parents:
diff changeset
16 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
daa24f8a557b TightVNC original
YU
parents:
diff changeset
17 // GNU General Public License for more details.
daa24f8a557b TightVNC original
YU
parents:
diff changeset
18 //
daa24f8a557b TightVNC original
YU
parents:
diff changeset
19 // You should have received a copy of the GNU General Public License along
daa24f8a557b TightVNC original
YU
parents:
diff changeset
20 // with this program; if not, write to the Free Software Foundation, Inc.,
daa24f8a557b TightVNC original
YU
parents:
diff changeset
21 // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
daa24f8a557b TightVNC original
YU
parents:
diff changeset
22 //-------------------------------------------------------------------------
daa24f8a557b TightVNC original
YU
parents:
diff changeset
23 //
daa24f8a557b TightVNC original
YU
parents:
diff changeset
24
daa24f8a557b TightVNC original
YU
parents:
diff changeset
25 package com.glavsoft.rfb.protocol;
daa24f8a557b TightVNC original
YU
parents:
diff changeset
26
daa24f8a557b TightVNC original
YU
parents:
diff changeset
27 import com.glavsoft.core.SettingsChangedEvent;
daa24f8a557b TightVNC original
YU
parents:
diff changeset
28 import com.glavsoft.rfb.CapabilityContainer;
daa24f8a557b TightVNC original
YU
parents:
diff changeset
29 import com.glavsoft.rfb.IChangeSettingsListener;
daa24f8a557b TightVNC original
YU
parents:
diff changeset
30 import com.glavsoft.rfb.RfbCapabilityInfo;
daa24f8a557b TightVNC original
YU
parents:
diff changeset
31 import com.glavsoft.rfb.encoding.EncodingType;
daa24f8a557b TightVNC original
YU
parents:
diff changeset
32 import com.glavsoft.rfb.protocol.auth.SecurityType;
daa24f8a557b TightVNC original
YU
parents:
diff changeset
33
daa24f8a557b TightVNC original
YU
parents:
diff changeset
34 import java.io.Serializable;
daa24f8a557b TightVNC original
YU
parents:
diff changeset
35 import java.util.Iterator;
daa24f8a557b TightVNC original
YU
parents:
diff changeset
36 import java.util.LinkedHashSet;
daa24f8a557b TightVNC original
YU
parents:
diff changeset
37 import java.util.LinkedList;
daa24f8a557b TightVNC original
YU
parents:
diff changeset
38 import java.util.List;
daa24f8a557b TightVNC original
YU
parents:
diff changeset
39
daa24f8a557b TightVNC original
YU
parents:
diff changeset
40 /**
daa24f8a557b TightVNC original
YU
parents:
diff changeset
41 * Protocol Settings class
daa24f8a557b TightVNC original
YU
parents:
diff changeset
42 */
daa24f8a557b TightVNC original
YU
parents:
diff changeset
43 public class ProtocolSettings implements Serializable {
daa24f8a557b TightVNC original
YU
parents:
diff changeset
44 private static final long serialVersionUID = 1L;
daa24f8a557b TightVNC original
YU
parents:
diff changeset
45
daa24f8a557b TightVNC original
YU
parents:
diff changeset
46 private static final EncodingType DEFAULT_PREFERRED_ENCODING = EncodingType.TIGHT;
daa24f8a557b TightVNC original
YU
parents:
diff changeset
47 public static final int DEFAULT_JPEG_QUALITY = 6;
daa24f8a557b TightVNC original
YU
parents:
diff changeset
48 private static final int DEFAULT_COMPRESSION_LEVEL = -6;
daa24f8a557b TightVNC original
YU
parents:
diff changeset
49
daa24f8a557b TightVNC original
YU
parents:
diff changeset
50 // color depth constants
daa24f8a557b TightVNC original
YU
parents:
diff changeset
51 public static final int COLOR_DEPTH_32 = 32;
daa24f8a557b TightVNC original
YU
parents:
diff changeset
52 public static final int COLOR_DEPTH_24 = 24;
daa24f8a557b TightVNC original
YU
parents:
diff changeset
53 public static final int COLOR_DEPTH_16 = 16;
daa24f8a557b TightVNC original
YU
parents:
diff changeset
54 public static final int COLOR_DEPTH_8 = 8;
daa24f8a557b TightVNC original
YU
parents:
diff changeset
55 public static final int COLOR_DEPTH_6 = 6;
daa24f8a557b TightVNC original
YU
parents:
diff changeset
56 public static final int COLOR_DEPTH_3 = 3;
daa24f8a557b TightVNC original
YU
parents:
diff changeset
57
daa24f8a557b TightVNC original
YU
parents:
diff changeset
58 public static final int COLOR_DEPTH_SERVER_SETTINGS = 0;
daa24f8a557b TightVNC original
YU
parents:
diff changeset
59
daa24f8a557b TightVNC original
YU
parents:
diff changeset
60 private static final int DEFAULT_COLOR_DEPTH = COLOR_DEPTH_24;
daa24f8a557b TightVNC original
YU
parents:
diff changeset
61
daa24f8a557b TightVNC original
YU
parents:
diff changeset
62 public static final int CHANGED_VIEW_ONLY = 1; // 1 << 0;
daa24f8a557b TightVNC original
YU
parents:
diff changeset
63 public static final int CHANGED_ENCODINGS = 1 << 1;
daa24f8a557b TightVNC original
YU
parents:
diff changeset
64 public static final int CHANGED_ALLOW_COPY_RECT = 1 << 2;
daa24f8a557b TightVNC original
YU
parents:
diff changeset
65 public static final int CHANGED_SHOW_REMOTE_CURSOR = 1 << 3;
daa24f8a557b TightVNC original
YU
parents:
diff changeset
66 public static final int CHANGED_MOUSE_CURSOR_TRACK = 1 << 4;
daa24f8a557b TightVNC original
YU
parents:
diff changeset
67 public static final int CHANGED_COMPRESSION_LEVEL = 1 << 5;
daa24f8a557b TightVNC original
YU
parents:
diff changeset
68 public static final int CHANGED_JPEG_QUALITY = 1 << 6;
daa24f8a557b TightVNC original
YU
parents:
diff changeset
69 public static final int CHANGED_ALLOW_CLIPBOARD_TRANSFER = 1 << 7;
daa24f8a557b TightVNC original
YU
parents:
diff changeset
70 public static final int CHANGED_CONVERT_TO_ASCII = 1 << 8;
daa24f8a557b TightVNC original
YU
parents:
diff changeset
71 public static final int CHANGED_COLOR_DEPTH = 1 << 9;
daa24f8a557b TightVNC original
YU
parents:
diff changeset
72 public static final int CHANGED_SHARED = 1 << 10;
daa24f8a557b TightVNC original
YU
parents:
diff changeset
73
daa24f8a557b TightVNC original
YU
parents:
diff changeset
74 private transient int changedSettingsMask;
daa24f8a557b TightVNC original
YU
parents:
diff changeset
75
daa24f8a557b TightVNC original
YU
parents:
diff changeset
76 private boolean sharedFlag;
daa24f8a557b TightVNC original
YU
parents:
diff changeset
77 private boolean viewOnly;
daa24f8a557b TightVNC original
YU
parents:
diff changeset
78 private EncodingType preferredEncoding;
daa24f8a557b TightVNC original
YU
parents:
diff changeset
79 private boolean allowCopyRect;
daa24f8a557b TightVNC original
YU
parents:
diff changeset
80 private boolean showRemoteCursor;
daa24f8a557b TightVNC original
YU
parents:
diff changeset
81 private LocalPointer mouseCursorTrack;
daa24f8a557b TightVNC original
YU
parents:
diff changeset
82 private int compressionLevel;
daa24f8a557b TightVNC original
YU
parents:
diff changeset
83 private int jpegQuality;
daa24f8a557b TightVNC original
YU
parents:
diff changeset
84 private boolean allowClipboardTransfer;
daa24f8a557b TightVNC original
YU
parents:
diff changeset
85 private boolean convertToAscii;
daa24f8a557b TightVNC original
YU
parents:
diff changeset
86 private int colorDepth;
daa24f8a557b TightVNC original
YU
parents:
diff changeset
87
daa24f8a557b TightVNC original
YU
parents:
diff changeset
88 public transient LinkedHashSet<EncodingType> encodings;
daa24f8a557b TightVNC original
YU
parents:
diff changeset
89 private transient final List<IChangeSettingsListener> listeners;
daa24f8a557b TightVNC original
YU
parents:
diff changeset
90
daa24f8a557b TightVNC original
YU
parents:
diff changeset
91 public transient CapabilityContainer
daa24f8a557b TightVNC original
YU
parents:
diff changeset
92 tunnelingCapabilities,
daa24f8a557b TightVNC original
YU
parents:
diff changeset
93 authCapabilities,
daa24f8a557b TightVNC original
YU
parents:
diff changeset
94 serverMessagesCapabilities,
daa24f8a557b TightVNC original
YU
parents:
diff changeset
95 clientMessagesCapabilities,
daa24f8a557b TightVNC original
YU
parents:
diff changeset
96 encodingTypesCapabilities;
daa24f8a557b TightVNC original
YU
parents:
diff changeset
97 private transient String remoteCharsetName;
daa24f8a557b TightVNC original
YU
parents:
diff changeset
98
daa24f8a557b TightVNC original
YU
parents:
diff changeset
99 public static ProtocolSettings getDefaultSettings() {
daa24f8a557b TightVNC original
YU
parents:
diff changeset
100 ProtocolSettings settings = new ProtocolSettings();
daa24f8a557b TightVNC original
YU
parents:
diff changeset
101 settings.initKnownAuthCapabilities(settings.authCapabilities);
daa24f8a557b TightVNC original
YU
parents:
diff changeset
102 settings.initKnownEncodingTypesCapabilities(settings.encodingTypesCapabilities);
daa24f8a557b TightVNC original
YU
parents:
diff changeset
103 return settings;
daa24f8a557b TightVNC original
YU
parents:
diff changeset
104 }
daa24f8a557b TightVNC original
YU
parents:
diff changeset
105
daa24f8a557b TightVNC original
YU
parents:
diff changeset
106 private ProtocolSettings() {
daa24f8a557b TightVNC original
YU
parents:
diff changeset
107 sharedFlag = true;
daa24f8a557b TightVNC original
YU
parents:
diff changeset
108 viewOnly = false;
daa24f8a557b TightVNC original
YU
parents:
diff changeset
109 showRemoteCursor = true;
daa24f8a557b TightVNC original
YU
parents:
diff changeset
110 mouseCursorTrack = LocalPointer.ON;
daa24f8a557b TightVNC original
YU
parents:
diff changeset
111 preferredEncoding = DEFAULT_PREFERRED_ENCODING;
daa24f8a557b TightVNC original
YU
parents:
diff changeset
112 allowCopyRect = true;
daa24f8a557b TightVNC original
YU
parents:
diff changeset
113 compressionLevel = DEFAULT_COMPRESSION_LEVEL;
daa24f8a557b TightVNC original
YU
parents:
diff changeset
114 jpegQuality = DEFAULT_JPEG_QUALITY;
daa24f8a557b TightVNC original
YU
parents:
diff changeset
115 convertToAscii = false;
daa24f8a557b TightVNC original
YU
parents:
diff changeset
116 allowClipboardTransfer = true;
daa24f8a557b TightVNC original
YU
parents:
diff changeset
117 colorDepth = COLOR_DEPTH_SERVER_SETTINGS;
daa24f8a557b TightVNC original
YU
parents:
diff changeset
118 refine();
daa24f8a557b TightVNC original
YU
parents:
diff changeset
119
daa24f8a557b TightVNC original
YU
parents:
diff changeset
120 listeners = new LinkedList<IChangeSettingsListener>();
daa24f8a557b TightVNC original
YU
parents:
diff changeset
121 tunnelingCapabilities = new CapabilityContainer();
daa24f8a557b TightVNC original
YU
parents:
diff changeset
122 authCapabilities = new CapabilityContainer();
daa24f8a557b TightVNC original
YU
parents:
diff changeset
123 serverMessagesCapabilities = new CapabilityContainer();
daa24f8a557b TightVNC original
YU
parents:
diff changeset
124 clientMessagesCapabilities = new CapabilityContainer();
daa24f8a557b TightVNC original
YU
parents:
diff changeset
125 encodingTypesCapabilities = new CapabilityContainer();
daa24f8a557b TightVNC original
YU
parents:
diff changeset
126 changedSettingsMask = 0;
daa24f8a557b TightVNC original
YU
parents:
diff changeset
127 }
daa24f8a557b TightVNC original
YU
parents:
diff changeset
128
daa24f8a557b TightVNC original
YU
parents:
diff changeset
129 public ProtocolSettings(ProtocolSettings s) {
daa24f8a557b TightVNC original
YU
parents:
diff changeset
130 this();
daa24f8a557b TightVNC original
YU
parents:
diff changeset
131 copyDataFrom(s);
daa24f8a557b TightVNC original
YU
parents:
diff changeset
132 changedSettingsMask = s.changedSettingsMask;
daa24f8a557b TightVNC original
YU
parents:
diff changeset
133 encodings = s.encodings;
daa24f8a557b TightVNC original
YU
parents:
diff changeset
134 }
daa24f8a557b TightVNC original
YU
parents:
diff changeset
135
daa24f8a557b TightVNC original
YU
parents:
diff changeset
136 public void copyDataFrom(ProtocolSettings s) {
daa24f8a557b TightVNC original
YU
parents:
diff changeset
137 copyDataFrom(s, 0);
daa24f8a557b TightVNC original
YU
parents:
diff changeset
138 }
daa24f8a557b TightVNC original
YU
parents:
diff changeset
139
daa24f8a557b TightVNC original
YU
parents:
diff changeset
140 public void copyDataFrom(ProtocolSettings s, int mask) {
daa24f8a557b TightVNC original
YU
parents:
diff changeset
141 if (null == s) return;
daa24f8a557b TightVNC original
YU
parents:
diff changeset
142 if ((mask & CHANGED_SHARED) == 0) setSharedFlag(s.sharedFlag);
daa24f8a557b TightVNC original
YU
parents:
diff changeset
143 if ((mask & CHANGED_VIEW_ONLY) == 0) setViewOnly(s.viewOnly);
daa24f8a557b TightVNC original
YU
parents:
diff changeset
144 if ((mask & CHANGED_ALLOW_COPY_RECT) == 0) setAllowCopyRect(s.allowCopyRect);
daa24f8a557b TightVNC original
YU
parents:
diff changeset
145 if ((mask & CHANGED_SHOW_REMOTE_CURSOR) == 0) setShowRemoteCursor(s.showRemoteCursor);
daa24f8a557b TightVNC original
YU
parents:
diff changeset
146 if ((mask & CHANGED_ALLOW_CLIPBOARD_TRANSFER) == 0) setAllowClipboardTransfer(s.allowClipboardTransfer);
daa24f8a557b TightVNC original
YU
parents:
diff changeset
147
daa24f8a557b TightVNC original
YU
parents:
diff changeset
148 if ((mask & CHANGED_MOUSE_CURSOR_TRACK) == 0) setMouseCursorTrack(s.mouseCursorTrack);
daa24f8a557b TightVNC original
YU
parents:
diff changeset
149 if ((mask & CHANGED_COMPRESSION_LEVEL) == 0) setCompressionLevel(s.compressionLevel);
daa24f8a557b TightVNC original
YU
parents:
diff changeset
150 if ((mask & CHANGED_JPEG_QUALITY) == 0) setJpegQuality(s.jpegQuality);
daa24f8a557b TightVNC original
YU
parents:
diff changeset
151 if ((mask & CHANGED_CONVERT_TO_ASCII) == 0) setConvertToAscii(s.convertToAscii);
daa24f8a557b TightVNC original
YU
parents:
diff changeset
152 if ((mask & CHANGED_COLOR_DEPTH) == 0) setColorDepth(s.colorDepth);
daa24f8a557b TightVNC original
YU
parents:
diff changeset
153 if ((mask & CHANGED_ENCODINGS) == 0) setPreferredEncoding(s.preferredEncoding);
daa24f8a557b TightVNC original
YU
parents:
diff changeset
154 }
daa24f8a557b TightVNC original
YU
parents:
diff changeset
155
daa24f8a557b TightVNC original
YU
parents:
diff changeset
156 private void initKnownAuthCapabilities(CapabilityContainer cc) {
daa24f8a557b TightVNC original
YU
parents:
diff changeset
157 cc.addEnabled(SecurityType.NONE_AUTHENTICATION.getId(),
daa24f8a557b TightVNC original
YU
parents:
diff changeset
158 RfbCapabilityInfo.VENDOR_STANDARD, RfbCapabilityInfo.AUTHENTICATION_NO_AUTH);
daa24f8a557b TightVNC original
YU
parents:
diff changeset
159 cc.addEnabled(SecurityType.VNC_AUTHENTICATION.getId(),
daa24f8a557b TightVNC original
YU
parents:
diff changeset
160 RfbCapabilityInfo.VENDOR_STANDARD, RfbCapabilityInfo.AUTHENTICATION_VNC_AUTH);
15
e28c17afa0e9 add SecurityType.REQUIRE_AUTHENTICATION
one
parents: 0
diff changeset
161 cc.addEnabled(SecurityType.REQUIRE_AUTHENTICATION.getId()
e28c17afa0e9 add SecurityType.REQUIRE_AUTHENTICATION
one
parents: 0
diff changeset
162 , RfbCapabilityInfo.VENDOR_STANDARD, RfbCapabilityInfo.AUTHENTICATION_REQ_AUTH);
0
daa24f8a557b TightVNC original
YU
parents:
diff changeset
163 //cc.addEnabled( 19, "VENC", "VENCRYPT");
daa24f8a557b TightVNC original
YU
parents:
diff changeset
164 //cc.addEnabled( 20, "GTKV", "SASL____");
daa24f8a557b TightVNC original
YU
parents:
diff changeset
165 //cc.addEnabled(129, RfbCapabilityInfo.TIGHT_VNC_VENDOR, "ULGNAUTH");
daa24f8a557b TightVNC original
YU
parents:
diff changeset
166 //cc.addEnabled(130, RfbCapabilityInfo.TIGHT_VNC_VENDOR, "XTRNAUTH");
daa24f8a557b TightVNC original
YU
parents:
diff changeset
167 }
daa24f8a557b TightVNC original
YU
parents:
diff changeset
168
daa24f8a557b TightVNC original
YU
parents:
diff changeset
169 private void initKnownEncodingTypesCapabilities(CapabilityContainer cc) {
daa24f8a557b TightVNC original
YU
parents:
diff changeset
170 cc.add(EncodingType.COPY_RECT.getId(),
daa24f8a557b TightVNC original
YU
parents:
diff changeset
171 RfbCapabilityInfo.VENDOR_STANDARD, RfbCapabilityInfo.ENCODING_COPYRECT);
daa24f8a557b TightVNC original
YU
parents:
diff changeset
172 cc.add(EncodingType.HEXTILE.getId(),
daa24f8a557b TightVNC original
YU
parents:
diff changeset
173 RfbCapabilityInfo.VENDOR_STANDARD, RfbCapabilityInfo.ENCODING_HEXTILE);
daa24f8a557b TightVNC original
YU
parents:
diff changeset
174 cc.add(EncodingType.ZLIB.getId(),
daa24f8a557b TightVNC original
YU
parents:
diff changeset
175 RfbCapabilityInfo.VENDOR_TRIADA, RfbCapabilityInfo.ENCODING_ZLIB);
daa24f8a557b TightVNC original
YU
parents:
diff changeset
176 cc.add(EncodingType.ZRLE.getId(),
daa24f8a557b TightVNC original
YU
parents:
diff changeset
177 RfbCapabilityInfo.VENDOR_TRIADA, RfbCapabilityInfo.ENCODING_ZRLE);
daa24f8a557b TightVNC original
YU
parents:
diff changeset
178 cc.add(EncodingType.RRE.getId(),
daa24f8a557b TightVNC original
YU
parents:
diff changeset
179 RfbCapabilityInfo.VENDOR_STANDARD, RfbCapabilityInfo.ENCODING_RRE);
daa24f8a557b TightVNC original
YU
parents:
diff changeset
180 cc.add(EncodingType.TIGHT.getId(),
daa24f8a557b TightVNC original
YU
parents:
diff changeset
181 RfbCapabilityInfo.VENDOR_TIGHT, RfbCapabilityInfo.ENCODING_TIGHT);
daa24f8a557b TightVNC original
YU
parents:
diff changeset
182
daa24f8a557b TightVNC original
YU
parents:
diff changeset
183 cc.add(EncodingType.RICH_CURSOR.getId(),
daa24f8a557b TightVNC original
YU
parents:
diff changeset
184 RfbCapabilityInfo.VENDOR_TIGHT, RfbCapabilityInfo.ENCODING_RICH_CURSOR);
daa24f8a557b TightVNC original
YU
parents:
diff changeset
185 cc.add(EncodingType.CURSOR_POS.getId(),
daa24f8a557b TightVNC original
YU
parents:
diff changeset
186 RfbCapabilityInfo.VENDOR_TIGHT, RfbCapabilityInfo.ENCODING_CURSOR_POS);
daa24f8a557b TightVNC original
YU
parents:
diff changeset
187 cc.add(EncodingType.DESKTOP_SIZE.getId(),
daa24f8a557b TightVNC original
YU
parents:
diff changeset
188 RfbCapabilityInfo.VENDOR_TIGHT, RfbCapabilityInfo.ENCODING_DESKTOP_SIZE);
daa24f8a557b TightVNC original
YU
parents:
diff changeset
189 }
daa24f8a557b TightVNC original
YU
parents:
diff changeset
190
daa24f8a557b TightVNC original
YU
parents:
diff changeset
191 public void addListener(IChangeSettingsListener listener) {
daa24f8a557b TightVNC original
YU
parents:
diff changeset
192 listeners.add(listener);
daa24f8a557b TightVNC original
YU
parents:
diff changeset
193 }
daa24f8a557b TightVNC original
YU
parents:
diff changeset
194
daa24f8a557b TightVNC original
YU
parents:
diff changeset
195 public byte getSharedFlag() {
daa24f8a557b TightVNC original
YU
parents:
diff changeset
196 return (byte) (sharedFlag ? 1 : 0);
daa24f8a557b TightVNC original
YU
parents:
diff changeset
197 }
daa24f8a557b TightVNC original
YU
parents:
diff changeset
198
daa24f8a557b TightVNC original
YU
parents:
diff changeset
199 public boolean isShared() {
daa24f8a557b TightVNC original
YU
parents:
diff changeset
200 return sharedFlag;
daa24f8a557b TightVNC original
YU
parents:
diff changeset
201 }
daa24f8a557b TightVNC original
YU
parents:
diff changeset
202
daa24f8a557b TightVNC original
YU
parents:
diff changeset
203 public void setSharedFlag(boolean sharedFlag) {
daa24f8a557b TightVNC original
YU
parents:
diff changeset
204 if (this.sharedFlag != sharedFlag) {
daa24f8a557b TightVNC original
YU
parents:
diff changeset
205 this.sharedFlag = sharedFlag;
daa24f8a557b TightVNC original
YU
parents:
diff changeset
206 changedSettingsMask |= CHANGED_SHARED;
daa24f8a557b TightVNC original
YU
parents:
diff changeset
207 }
daa24f8a557b TightVNC original
YU
parents:
diff changeset
208 }
daa24f8a557b TightVNC original
YU
parents:
diff changeset
209
daa24f8a557b TightVNC original
YU
parents:
diff changeset
210 public boolean isViewOnly() {
daa24f8a557b TightVNC original
YU
parents:
diff changeset
211 return viewOnly;
daa24f8a557b TightVNC original
YU
parents:
diff changeset
212 }
daa24f8a557b TightVNC original
YU
parents:
diff changeset
213
daa24f8a557b TightVNC original
YU
parents:
diff changeset
214 public void setViewOnly(boolean viewOnly) {
daa24f8a557b TightVNC original
YU
parents:
diff changeset
215 if (this.viewOnly != viewOnly) {
daa24f8a557b TightVNC original
YU
parents:
diff changeset
216 this.viewOnly = viewOnly;
daa24f8a557b TightVNC original
YU
parents:
diff changeset
217 changedSettingsMask |= CHANGED_VIEW_ONLY;
daa24f8a557b TightVNC original
YU
parents:
diff changeset
218 }
daa24f8a557b TightVNC original
YU
parents:
diff changeset
219 }
daa24f8a557b TightVNC original
YU
parents:
diff changeset
220
daa24f8a557b TightVNC original
YU
parents:
diff changeset
221 public void enableAllEncodingCaps() {
daa24f8a557b TightVNC original
YU
parents:
diff changeset
222 encodingTypesCapabilities.setAllEnable(true);
daa24f8a557b TightVNC original
YU
parents:
diff changeset
223
daa24f8a557b TightVNC original
YU
parents:
diff changeset
224 }
daa24f8a557b TightVNC original
YU
parents:
diff changeset
225
daa24f8a557b TightVNC original
YU
parents:
diff changeset
226 public int getColorDepth() {
daa24f8a557b TightVNC original
YU
parents:
diff changeset
227 return colorDepth;
daa24f8a557b TightVNC original
YU
parents:
diff changeset
228 }
daa24f8a557b TightVNC original
YU
parents:
diff changeset
229
daa24f8a557b TightVNC original
YU
parents:
diff changeset
230 /**
daa24f8a557b TightVNC original
YU
parents:
diff changeset
231 * Set depth only in 3, 6, 8, 16, 32. When depth is wrong, it resets to {@link #DEFAULT_COLOR_DEPTH}
daa24f8a557b TightVNC original
YU
parents:
diff changeset
232 */
daa24f8a557b TightVNC original
YU
parents:
diff changeset
233 public void setColorDepth(int depth) {
daa24f8a557b TightVNC original
YU
parents:
diff changeset
234 if (colorDepth != depth) {
daa24f8a557b TightVNC original
YU
parents:
diff changeset
235 changedSettingsMask |= CHANGED_COLOR_DEPTH;
daa24f8a557b TightVNC original
YU
parents:
diff changeset
236 switch (depth) {
daa24f8a557b TightVNC original
YU
parents:
diff changeset
237 case COLOR_DEPTH_32:
daa24f8a557b TightVNC original
YU
parents:
diff changeset
238 colorDepth = COLOR_DEPTH_24;
daa24f8a557b TightVNC original
YU
parents:
diff changeset
239 break;
daa24f8a557b TightVNC original
YU
parents:
diff changeset
240 case COLOR_DEPTH_24:
daa24f8a557b TightVNC original
YU
parents:
diff changeset
241 case COLOR_DEPTH_16:
daa24f8a557b TightVNC original
YU
parents:
diff changeset
242 case COLOR_DEPTH_8:
daa24f8a557b TightVNC original
YU
parents:
diff changeset
243 case COLOR_DEPTH_6:
daa24f8a557b TightVNC original
YU
parents:
diff changeset
244 case COLOR_DEPTH_3:
daa24f8a557b TightVNC original
YU
parents:
diff changeset
245 case COLOR_DEPTH_SERVER_SETTINGS:
daa24f8a557b TightVNC original
YU
parents:
diff changeset
246 colorDepth = depth;
daa24f8a557b TightVNC original
YU
parents:
diff changeset
247 break;
daa24f8a557b TightVNC original
YU
parents:
diff changeset
248 default:
daa24f8a557b TightVNC original
YU
parents:
diff changeset
249 colorDepth = DEFAULT_COLOR_DEPTH;
daa24f8a557b TightVNC original
YU
parents:
diff changeset
250 }
daa24f8a557b TightVNC original
YU
parents:
diff changeset
251 refine();
daa24f8a557b TightVNC original
YU
parents:
diff changeset
252 }
daa24f8a557b TightVNC original
YU
parents:
diff changeset
253 }
daa24f8a557b TightVNC original
YU
parents:
diff changeset
254
daa24f8a557b TightVNC original
YU
parents:
diff changeset
255 public void refine() {
daa24f8a557b TightVNC original
YU
parents:
diff changeset
256 LinkedHashSet<EncodingType> encodings = new LinkedHashSet<EncodingType>();
daa24f8a557b TightVNC original
YU
parents:
diff changeset
257 if (EncodingType.RAW_ENCODING == preferredEncoding) {
daa24f8a557b TightVNC original
YU
parents:
diff changeset
258 // when RAW selected send no ordinary encodings so only default RAW encoding will be enabled
daa24f8a557b TightVNC original
YU
parents:
diff changeset
259 } else {
daa24f8a557b TightVNC original
YU
parents:
diff changeset
260 encodings.add(preferredEncoding); // preferred first
daa24f8a557b TightVNC original
YU
parents:
diff changeset
261 encodings.addAll(EncodingType.ordinaryEncodings);
daa24f8a557b TightVNC original
YU
parents:
diff changeset
262 if (compressionLevel > 0 && compressionLevel < 10) {
daa24f8a557b TightVNC original
YU
parents:
diff changeset
263 encodings.add(EncodingType.byId(
daa24f8a557b TightVNC original
YU
parents:
diff changeset
264 EncodingType.COMPRESS_LEVEL_0.getId() + compressionLevel));
daa24f8a557b TightVNC original
YU
parents:
diff changeset
265 }
daa24f8a557b TightVNC original
YU
parents:
diff changeset
266 if (jpegQuality > 0 && jpegQuality < 10 &&
daa24f8a557b TightVNC original
YU
parents:
diff changeset
267 (colorDepth == COLOR_DEPTH_24 || colorDepth == COLOR_DEPTH_SERVER_SETTINGS)) {
daa24f8a557b TightVNC original
YU
parents:
diff changeset
268 encodings.add(EncodingType.byId(
daa24f8a557b TightVNC original
YU
parents:
diff changeset
269 EncodingType.JPEG_QUALITY_LEVEL_0.getId() + jpegQuality));
daa24f8a557b TightVNC original
YU
parents:
diff changeset
270 }
daa24f8a557b TightVNC original
YU
parents:
diff changeset
271 if (allowCopyRect) {
daa24f8a557b TightVNC original
YU
parents:
diff changeset
272 encodings.add(EncodingType.COPY_RECT);
daa24f8a557b TightVNC original
YU
parents:
diff changeset
273 }
daa24f8a557b TightVNC original
YU
parents:
diff changeset
274 }
daa24f8a557b TightVNC original
YU
parents:
diff changeset
275 switch(mouseCursorTrack) {
daa24f8a557b TightVNC original
YU
parents:
diff changeset
276 case OFF:
daa24f8a557b TightVNC original
YU
parents:
diff changeset
277 setShowRemoteCursor(false);
daa24f8a557b TightVNC original
YU
parents:
diff changeset
278 break;
daa24f8a557b TightVNC original
YU
parents:
diff changeset
279 case HIDE:
daa24f8a557b TightVNC original
YU
parents:
diff changeset
280 setShowRemoteCursor(false);
daa24f8a557b TightVNC original
YU
parents:
diff changeset
281 encodings.add(EncodingType.RICH_CURSOR);
daa24f8a557b TightVNC original
YU
parents:
diff changeset
282 encodings.add(EncodingType.CURSOR_POS);
daa24f8a557b TightVNC original
YU
parents:
diff changeset
283 break;
daa24f8a557b TightVNC original
YU
parents:
diff changeset
284 case ON:
daa24f8a557b TightVNC original
YU
parents:
diff changeset
285 default:
daa24f8a557b TightVNC original
YU
parents:
diff changeset
286 setShowRemoteCursor(true);
daa24f8a557b TightVNC original
YU
parents:
diff changeset
287 encodings.add(EncodingType.RICH_CURSOR);
daa24f8a557b TightVNC original
YU
parents:
diff changeset
288 encodings.add(EncodingType.CURSOR_POS);
daa24f8a557b TightVNC original
YU
parents:
diff changeset
289 }
daa24f8a557b TightVNC original
YU
parents:
diff changeset
290 encodings.add(EncodingType.DESKTOP_SIZE);
daa24f8a557b TightVNC original
YU
parents:
diff changeset
291 if ( isEncodingsChanged(this.encodings, encodings) || isChangedEncodings()) {
daa24f8a557b TightVNC original
YU
parents:
diff changeset
292 this.encodings = encodings;
daa24f8a557b TightVNC original
YU
parents:
diff changeset
293 changedSettingsMask |= CHANGED_ENCODINGS;
daa24f8a557b TightVNC original
YU
parents:
diff changeset
294 }
daa24f8a557b TightVNC original
YU
parents:
diff changeset
295 }
daa24f8a557b TightVNC original
YU
parents:
diff changeset
296
daa24f8a557b TightVNC original
YU
parents:
diff changeset
297 private boolean isEncodingsChanged(LinkedHashSet<EncodingType> encodings1, LinkedHashSet<EncodingType> encodings2) {
daa24f8a557b TightVNC original
YU
parents:
diff changeset
298 if (null == encodings1 || encodings1.size() != encodings2.size()) return true;
daa24f8a557b TightVNC original
YU
parents:
diff changeset
299 Iterator<EncodingType> it1 = encodings1.iterator();
daa24f8a557b TightVNC original
YU
parents:
diff changeset
300 Iterator<EncodingType> it2 = encodings2.iterator();
daa24f8a557b TightVNC original
YU
parents:
diff changeset
301 while (it1.hasNext()) {
daa24f8a557b TightVNC original
YU
parents:
diff changeset
302 EncodingType v1 = it1.next();
daa24f8a557b TightVNC original
YU
parents:
diff changeset
303 EncodingType v2 = it2.next();
daa24f8a557b TightVNC original
YU
parents:
diff changeset
304 if (v1 != v2) return true;
daa24f8a557b TightVNC original
YU
parents:
diff changeset
305 }
daa24f8a557b TightVNC original
YU
parents:
diff changeset
306 return false;
daa24f8a557b TightVNC original
YU
parents:
diff changeset
307 }
daa24f8a557b TightVNC original
YU
parents:
diff changeset
308
daa24f8a557b TightVNC original
YU
parents:
diff changeset
309 public void fireListeners() {
daa24f8a557b TightVNC original
YU
parents:
diff changeset
310 if (null == listeners) return;
daa24f8a557b TightVNC original
YU
parents:
diff changeset
311 final SettingsChangedEvent event = new SettingsChangedEvent(new ProtocolSettings(this));
daa24f8a557b TightVNC original
YU
parents:
diff changeset
312 changedSettingsMask = 0;
daa24f8a557b TightVNC original
YU
parents:
diff changeset
313 for (IChangeSettingsListener listener : listeners) {
daa24f8a557b TightVNC original
YU
parents:
diff changeset
314 listener.settingsChanged(event);
daa24f8a557b TightVNC original
YU
parents:
diff changeset
315 }
daa24f8a557b TightVNC original
YU
parents:
diff changeset
316 }
daa24f8a557b TightVNC original
YU
parents:
diff changeset
317
daa24f8a557b TightVNC original
YU
parents:
diff changeset
318 public static boolean isRfbSettingsChangedFired(SettingsChangedEvent event) {
daa24f8a557b TightVNC original
YU
parents:
diff changeset
319 return event.getSource() instanceof ProtocolSettings;
daa24f8a557b TightVNC original
YU
parents:
diff changeset
320 }
daa24f8a557b TightVNC original
YU
parents:
diff changeset
321
daa24f8a557b TightVNC original
YU
parents:
diff changeset
322 public void setPreferredEncoding(EncodingType preferredEncoding) {
daa24f8a557b TightVNC original
YU
parents:
diff changeset
323 if (this.preferredEncoding != preferredEncoding) {
daa24f8a557b TightVNC original
YU
parents:
diff changeset
324 this.preferredEncoding = preferredEncoding;
daa24f8a557b TightVNC original
YU
parents:
diff changeset
325 changedSettingsMask |= CHANGED_ENCODINGS;
daa24f8a557b TightVNC original
YU
parents:
diff changeset
326 refine();
daa24f8a557b TightVNC original
YU
parents:
diff changeset
327 }
daa24f8a557b TightVNC original
YU
parents:
diff changeset
328 }
daa24f8a557b TightVNC original
YU
parents:
diff changeset
329
daa24f8a557b TightVNC original
YU
parents:
diff changeset
330 public EncodingType getPreferredEncoding() {
daa24f8a557b TightVNC original
YU
parents:
diff changeset
331 return preferredEncoding;
daa24f8a557b TightVNC original
YU
parents:
diff changeset
332 }
daa24f8a557b TightVNC original
YU
parents:
diff changeset
333
daa24f8a557b TightVNC original
YU
parents:
diff changeset
334 public void setAllowCopyRect(boolean allowCopyRect) {
daa24f8a557b TightVNC original
YU
parents:
diff changeset
335 if (this.allowCopyRect != allowCopyRect) {
daa24f8a557b TightVNC original
YU
parents:
diff changeset
336 this.allowCopyRect = allowCopyRect;
daa24f8a557b TightVNC original
YU
parents:
diff changeset
337 changedSettingsMask |= CHANGED_ALLOW_COPY_RECT;
daa24f8a557b TightVNC original
YU
parents:
diff changeset
338 refine();
daa24f8a557b TightVNC original
YU
parents:
diff changeset
339 }
daa24f8a557b TightVNC original
YU
parents:
diff changeset
340 }
daa24f8a557b TightVNC original
YU
parents:
diff changeset
341
daa24f8a557b TightVNC original
YU
parents:
diff changeset
342 public boolean isAllowCopyRect() {
daa24f8a557b TightVNC original
YU
parents:
diff changeset
343 return allowCopyRect;
daa24f8a557b TightVNC original
YU
parents:
diff changeset
344 }
daa24f8a557b TightVNC original
YU
parents:
diff changeset
345
daa24f8a557b TightVNC original
YU
parents:
diff changeset
346 private void setShowRemoteCursor(boolean showRemoteCursor) {
daa24f8a557b TightVNC original
YU
parents:
diff changeset
347 if (this.showRemoteCursor != showRemoteCursor) {
daa24f8a557b TightVNC original
YU
parents:
diff changeset
348 this.showRemoteCursor = showRemoteCursor;
daa24f8a557b TightVNC original
YU
parents:
diff changeset
349 changedSettingsMask |= CHANGED_SHOW_REMOTE_CURSOR;
daa24f8a557b TightVNC original
YU
parents:
diff changeset
350 }
daa24f8a557b TightVNC original
YU
parents:
diff changeset
351 }
daa24f8a557b TightVNC original
YU
parents:
diff changeset
352
daa24f8a557b TightVNC original
YU
parents:
diff changeset
353 public boolean isShowRemoteCursor() {
daa24f8a557b TightVNC original
YU
parents:
diff changeset
354 return showRemoteCursor;
daa24f8a557b TightVNC original
YU
parents:
diff changeset
355 }
daa24f8a557b TightVNC original
YU
parents:
diff changeset
356
daa24f8a557b TightVNC original
YU
parents:
diff changeset
357 public void setMouseCursorTrack(LocalPointer mouseCursorTrack) {
daa24f8a557b TightVNC original
YU
parents:
diff changeset
358 if (this.mouseCursorTrack != mouseCursorTrack) {
daa24f8a557b TightVNC original
YU
parents:
diff changeset
359 this.mouseCursorTrack = mouseCursorTrack;
daa24f8a557b TightVNC original
YU
parents:
diff changeset
360 changedSettingsMask |= CHANGED_MOUSE_CURSOR_TRACK;
daa24f8a557b TightVNC original
YU
parents:
diff changeset
361 refine();
daa24f8a557b TightVNC original
YU
parents:
diff changeset
362 }
daa24f8a557b TightVNC original
YU
parents:
diff changeset
363 }
daa24f8a557b TightVNC original
YU
parents:
diff changeset
364
daa24f8a557b TightVNC original
YU
parents:
diff changeset
365 public LocalPointer getMouseCursorTrack() {
daa24f8a557b TightVNC original
YU
parents:
diff changeset
366 return mouseCursorTrack;
daa24f8a557b TightVNC original
YU
parents:
diff changeset
367 }
daa24f8a557b TightVNC original
YU
parents:
diff changeset
368
daa24f8a557b TightVNC original
YU
parents:
diff changeset
369 public void setCompressionLevel(int compressionLevel) {
daa24f8a557b TightVNC original
YU
parents:
diff changeset
370 if (this.compressionLevel != compressionLevel) {
daa24f8a557b TightVNC original
YU
parents:
diff changeset
371 this.compressionLevel = compressionLevel;
daa24f8a557b TightVNC original
YU
parents:
diff changeset
372 changedSettingsMask |= CHANGED_COMPRESSION_LEVEL;
daa24f8a557b TightVNC original
YU
parents:
diff changeset
373 refine();
daa24f8a557b TightVNC original
YU
parents:
diff changeset
374 }
daa24f8a557b TightVNC original
YU
parents:
diff changeset
375 }
daa24f8a557b TightVNC original
YU
parents:
diff changeset
376
daa24f8a557b TightVNC original
YU
parents:
diff changeset
377 public int getCompressionLevel() {
daa24f8a557b TightVNC original
YU
parents:
diff changeset
378 return compressionLevel;
daa24f8a557b TightVNC original
YU
parents:
diff changeset
379 }
daa24f8a557b TightVNC original
YU
parents:
diff changeset
380
daa24f8a557b TightVNC original
YU
parents:
diff changeset
381 public void setJpegQuality(int jpegQuality) {
daa24f8a557b TightVNC original
YU
parents:
diff changeset
382 if (this.jpegQuality != jpegQuality) {
daa24f8a557b TightVNC original
YU
parents:
diff changeset
383 this.jpegQuality = jpegQuality;
daa24f8a557b TightVNC original
YU
parents:
diff changeset
384 changedSettingsMask |= CHANGED_JPEG_QUALITY;
daa24f8a557b TightVNC original
YU
parents:
diff changeset
385 refine();
daa24f8a557b TightVNC original
YU
parents:
diff changeset
386 }
daa24f8a557b TightVNC original
YU
parents:
diff changeset
387 }
daa24f8a557b TightVNC original
YU
parents:
diff changeset
388
daa24f8a557b TightVNC original
YU
parents:
diff changeset
389 public int getJpegQuality() {
daa24f8a557b TightVNC original
YU
parents:
diff changeset
390 return jpegQuality;
daa24f8a557b TightVNC original
YU
parents:
diff changeset
391 }
daa24f8a557b TightVNC original
YU
parents:
diff changeset
392
daa24f8a557b TightVNC original
YU
parents:
diff changeset
393 public void setAllowClipboardTransfer(boolean enable) {
daa24f8a557b TightVNC original
YU
parents:
diff changeset
394 if (this.allowClipboardTransfer != enable) {
daa24f8a557b TightVNC original
YU
parents:
diff changeset
395 this.allowClipboardTransfer = enable;
daa24f8a557b TightVNC original
YU
parents:
diff changeset
396 changedSettingsMask |= CHANGED_ALLOW_CLIPBOARD_TRANSFER;
daa24f8a557b TightVNC original
YU
parents:
diff changeset
397 }
daa24f8a557b TightVNC original
YU
parents:
diff changeset
398 }
daa24f8a557b TightVNC original
YU
parents:
diff changeset
399
daa24f8a557b TightVNC original
YU
parents:
diff changeset
400 public boolean isAllowClipboardTransfer() {
daa24f8a557b TightVNC original
YU
parents:
diff changeset
401 return allowClipboardTransfer;
daa24f8a557b TightVNC original
YU
parents:
diff changeset
402 }
daa24f8a557b TightVNC original
YU
parents:
diff changeset
403
daa24f8a557b TightVNC original
YU
parents:
diff changeset
404 public boolean isConvertToAscii() {
daa24f8a557b TightVNC original
YU
parents:
diff changeset
405 return convertToAscii;
daa24f8a557b TightVNC original
YU
parents:
diff changeset
406 }
daa24f8a557b TightVNC original
YU
parents:
diff changeset
407
daa24f8a557b TightVNC original
YU
parents:
diff changeset
408 public void setConvertToAscii(boolean convertToAscii) {
daa24f8a557b TightVNC original
YU
parents:
diff changeset
409 if (this.convertToAscii != convertToAscii) {
daa24f8a557b TightVNC original
YU
parents:
diff changeset
410 this.convertToAscii = convertToAscii;
daa24f8a557b TightVNC original
YU
parents:
diff changeset
411 changedSettingsMask |= CHANGED_CONVERT_TO_ASCII;
daa24f8a557b TightVNC original
YU
parents:
diff changeset
412 }
daa24f8a557b TightVNC original
YU
parents:
diff changeset
413 }
daa24f8a557b TightVNC original
YU
parents:
diff changeset
414
daa24f8a557b TightVNC original
YU
parents:
diff changeset
415 public boolean isChangedEncodings() {
daa24f8a557b TightVNC original
YU
parents:
diff changeset
416 return (changedSettingsMask & CHANGED_ENCODINGS) == CHANGED_ENCODINGS;
daa24f8a557b TightVNC original
YU
parents:
diff changeset
417 }
daa24f8a557b TightVNC original
YU
parents:
diff changeset
418
daa24f8a557b TightVNC original
YU
parents:
diff changeset
419 public boolean isChangedColorDepth() {
daa24f8a557b TightVNC original
YU
parents:
diff changeset
420 return (changedSettingsMask & CHANGED_COLOR_DEPTH) == CHANGED_COLOR_DEPTH;
daa24f8a557b TightVNC original
YU
parents:
diff changeset
421 }
daa24f8a557b TightVNC original
YU
parents:
diff changeset
422
daa24f8a557b TightVNC original
YU
parents:
diff changeset
423 public void setRemoteCharsetName(String remoteCharsetName) {
daa24f8a557b TightVNC original
YU
parents:
diff changeset
424 this.remoteCharsetName = remoteCharsetName;
daa24f8a557b TightVNC original
YU
parents:
diff changeset
425 }
daa24f8a557b TightVNC original
YU
parents:
diff changeset
426
daa24f8a557b TightVNC original
YU
parents:
diff changeset
427 public String getRemoteCharsetName() {
daa24f8a557b TightVNC original
YU
parents:
diff changeset
428 return remoteCharsetName;
daa24f8a557b TightVNC original
YU
parents:
diff changeset
429 }
daa24f8a557b TightVNC original
YU
parents:
diff changeset
430
daa24f8a557b TightVNC original
YU
parents:
diff changeset
431 @Override
daa24f8a557b TightVNC original
YU
parents:
diff changeset
432 public String toString() {
daa24f8a557b TightVNC original
YU
parents:
diff changeset
433 return "ProtocolSettings{" +
daa24f8a557b TightVNC original
YU
parents:
diff changeset
434 "sharedFlag=" + sharedFlag +
daa24f8a557b TightVNC original
YU
parents:
diff changeset
435 ", viewOnly=" + viewOnly +
daa24f8a557b TightVNC original
YU
parents:
diff changeset
436 ", preferredEncoding=" + preferredEncoding +
daa24f8a557b TightVNC original
YU
parents:
diff changeset
437 ", allowCopyRect=" + allowCopyRect +
daa24f8a557b TightVNC original
YU
parents:
diff changeset
438 ", showRemoteCursor=" + showRemoteCursor +
daa24f8a557b TightVNC original
YU
parents:
diff changeset
439 ", mouseCursorTrack=" + mouseCursorTrack +
daa24f8a557b TightVNC original
YU
parents:
diff changeset
440 ", compressionLevel=" + compressionLevel +
daa24f8a557b TightVNC original
YU
parents:
diff changeset
441 ", jpegQuality=" + jpegQuality +
daa24f8a557b TightVNC original
YU
parents:
diff changeset
442 ", allowClipboardTransfer=" + allowClipboardTransfer +
daa24f8a557b TightVNC original
YU
parents:
diff changeset
443 ", convertToAscii=" + convertToAscii +
daa24f8a557b TightVNC original
YU
parents:
diff changeset
444 ", colorDepth=" + colorDepth +
daa24f8a557b TightVNC original
YU
parents:
diff changeset
445 '}';
daa24f8a557b TightVNC original
YU
parents:
diff changeset
446 }
daa24f8a557b TightVNC original
YU
parents:
diff changeset
447 }