Rabbit Remote Control 0.0.35
Loading...
Searching...
No Matches
ParameterFreeRDP.cpp
1#include "ParameterFreeRDP.h"
2
3#if HAVE_OPENSSL
4#include <openssl/tls1.h>
5#endif
6
7#include <QSettings>
8
9CParameterFreeRDP::CParameterFreeRDP(QObject *parent)
10 : CParameterBase(parent),
11 m_nWidth(1024),
12 m_nHeight(768),
13 m_nColorDepth(32),
14 m_bUseMultimon(false),
15 m_nReconnectInterval(0),
16 m_bShowVerifyDiaglog(true),
17 m_bRedirectionPrinter(false),
18 m_nRedirectionSound(RedirecionSoundType::Disable),
19 m_bRedirectionMicrophone(false),
20 m_Proxy(this),
21 m_bNegotiateSecurityLayer(true),
22 m_Security((Security)(Security::RDP|Security::TLS|Security::NLA)),
23 m_tlsVersion(TLS1_VERSION),
24 m_ConnectType(CONNECTION_TYPE_AUTODETECT),
25 m_PerformanceFlags(PERF_FLAG_NONE)
26{
27 m_Net.SetPort(3389);
28
29 m_Proxy.SetType(
30 QList<CParameterProxy::TYPE>() << CParameterProxy::TYPE::None
31 << CParameterProxy::TYPE::SSHTunnel);
32
33 m_szRedirectionSoundParameters =
34 #if defined (Q_OS_WINDOWS) || defined(Q_OS_WIN) || defined(Q_OS_WIN32) || defined(Q_OS_WINRT)
35 "sys:winmm"
36 #elif defined(Q_OS_IOS)
37 "sys:ios"
38 #elif defined (Q_OS_ANDROID)
39 "sys:opensles"
40 #elif defined (Q_OS_LINUX) || defined (Q_OS_UNIX)
41 "sys:alsa"
42 #endif
43 ;
44 m_szRedirectionMicrophoneParameters = m_szRedirectionSoundParameters;
45}
46
47int CParameterFreeRDP::OnLoad(QSettings &set)
48{
49 CParameterBase::OnLoad(set);
50
51 set.beginGroup("FreeRDP");
52 SetDomain(set.value("Domain", GetDomain()).toString());
53 SetDesktopWidth(set.value("Width", GetDesktopWidth()).toInt());
54 SetDesktopHeight(set.value("Height", GetDesktopHeight()).toInt());
55 SetColorDepth(set.value("ColorDepth", GetColorDepth()).toInt());
56 SetUseMultimon(set.value("UseMultimon", GetUseMultimon()).toBool());
57 SetReconnectInterval(set.value("ReconnectionInterval",
58 GetReconnectInterval()).toInt());
59
60 SetShowVerifyDiaglog(set.value("ShowVerifyDiaglog",
61 GetShowVerifyDiaglog()).toBool());
62
63 SetRedirectionPrinter(set.value("Redirection/Printer",
64 GetRedirectionPrinter()).toBool());
65 SetRedirectionSound(static_cast<RedirecionSoundType>(set.value("Redirection/Sound",
66 static_cast<int>(GetRedirectionSound())).toInt()));
67 SetRedirectionSoundParameters(set.value("Redirection/Sound/Parameters",
68 GetRedirectionSoundParameters()).toString());
69 SetRedirectionMicrophone(set.value("Redirection/Microphone",
70 GetRedirectionMicrophone()).toBool());
71 SetRedirectionMicrophoneParameters(set.value("Redirection/Microphone/Parameters",
72 GetRedirectionMicrophoneParameters()).toString());
73 SetRedirectionDrives(set.value("Redirection/Drive").toStringList());
74
75 SetNegotiateSecurityLayer(set.value("Security/Enable", GetNegotiateSecurityLayer()).toBool());
76 SetSecurity((Security)set.value("Security/Type", GetSecurity()).toUInt());
77 SetTlsVersion(set.value("Security/Tls/Version", GetTlsVersion()).toUInt());
78
79 set.beginGroup("Performance");
80 SetConnectType(set.value("Connect/Type", GetConnectType()).toUInt());
81 SetPerformanceFlags(set.value("Flags", GetPerformanceFlags()).toUInt());
82 set.endGroup();
83
84 set.endGroup();
85
86 return 0;
87}
88
89int CParameterFreeRDP::OnSave(QSettings &set)
90{
91 CParameterBase::OnSave(set);
92
93 set.beginGroup("FreeRDP");
94 set.setValue("Domain", GetDomain());
95 set.setValue("Width", GetDesktopWidth());
96 set.setValue("Height", GetDesktopHeight());
97 set.setValue("ColorDepth", GetColorDepth());
98 set.setValue("UseMultimon", GetUseMultimon());
99
100 set.setValue("ReconnectionInterval", GetReconnectInterval());
101 set.setValue("ShowVerifyDiaglog", GetShowVerifyDiaglog());
102
103 set.setValue("Redirection/Printer", GetRedirectionPrinter());
104 set.setValue("Redirection/Sound", static_cast<int>(GetRedirectionSound()));
105 set.setValue("Redirection/Sound/Parameters", GetRedirectionSoundParameters());
106 set.setValue("Redirection/Microphone", GetRedirectionMicrophone());
107 set.setValue("Redirection/Microphone/Parameters", GetRedirectionMicrophoneParameters());
108 set.setValue("Redirection/Drive", GetRedirectionDrives());
109
110 set.setValue("Security/Enable", GetNegotiateSecurityLayer());
111 set.setValue("Security/Type", (uint)GetSecurity());
112 set.setValue("Security/Tls/Version", GetTlsVersion());
113
114 set.beginGroup("Performance");
115 set.setValue("Connect/Type", GetConnectType());
116 set.setValue("Flags", GetPerformanceFlags());
117 set.endGroup();
118
119 set.endGroup();
120
121 return 0;
122}
123
124UINT32 CParameterFreeRDP::GetDesktopWidth() const
125{
126 return m_nWidth;
127}
128
129int CParameterFreeRDP::SetDesktopWidth(UINT32 nWidth)
130{
131 if(m_nWidth == nWidth)
132 return 0;
133 m_nWidth = nWidth;
134 SetModified(true);
135 return 0;
136}
137
138UINT32 CParameterFreeRDP::GetDesktopHeight() const
139{
140 return m_nHeight;
141}
142
143int CParameterFreeRDP::SetDesktopHeight(UINT32 nHeight)
144{
145 if(m_nHeight == nHeight)
146 return 0;
147 m_nHeight = nHeight;
148 SetModified(true);
149 return 0;
150}
151
152UINT32 CParameterFreeRDP::GetColorDepth() const
153{
154 return m_nColorDepth;
155}
156
157int CParameterFreeRDP::SetColorDepth(UINT32 color)
158{
159 if(m_nColorDepth == color)
160 return 0;
161 m_nColorDepth = color;
162 SetModified(true);
163 return 0;
164}
165
166bool CParameterFreeRDP::GetUseMultimon() const
167{
168 return m_bUseMultimon;
169}
170
171int CParameterFreeRDP::SetUseMultimon(bool bUse)
172{
173 if(m_bUseMultimon == bUse)
174 return 0;
175 m_bUseMultimon = bUse;
176 SetModified(true);
177 return 0;
178}
179
180UINT CParameterFreeRDP::GetReconnectInterval() const
181{
182 return m_nReconnectInterval;
183}
184
185void CParameterFreeRDP::SetReconnectInterval(UINT newReconnectInterval)
186{
187 if (m_nReconnectInterval == newReconnectInterval)
188 return;
189
190 m_nReconnectInterval = newReconnectInterval;
191 SetModified(true);
192 emit sigReconnectIntervalChanged();
193}
194
195bool CParameterFreeRDP::GetShowVerifyDiaglog() const
196{
197 return m_bShowVerifyDiaglog;
198}
199
200void CParameterFreeRDP::SetShowVerifyDiaglog(bool bShow)
201{
202 if(m_bShowVerifyDiaglog == bShow)
203 return;
204 m_bShowVerifyDiaglog = bShow;
205 SetModified(true);
206}
207
208CParameterFreeRDP::RedirecionSoundType CParameterFreeRDP::GetRedirectionSound() const
209{
210 return m_nRedirectionSound;
211}
212
213void CParameterFreeRDP::SetRedirectionSound(RedirecionSoundType newRedirectionSound)
214{
215 if (m_nRedirectionSound == newRedirectionSound)
216 return;
217 m_nRedirectionSound = newRedirectionSound;
218 SetModified(true);
219 emit sigRedirectionSoundChanged(m_nRedirectionSound);
220}
221
222bool CParameterFreeRDP::GetRedirectionMicrophone() const
223{
224 return m_bRedirectionMicrophone;
225}
226
227void CParameterFreeRDP::SetRedirectionMicrophone(bool newRedirectionMicrophone)
228{
229 if (m_bRedirectionMicrophone == newRedirectionMicrophone)
230 return;
231 m_bRedirectionMicrophone = newRedirectionMicrophone;
232 SetModified(true);
233 emit sigRedirectionMicrophoneChanged(m_bRedirectionMicrophone);
234}
235
236QStringList CParameterFreeRDP::GetRedirectionDrives() const
237{
238 return m_lstRedirectionDrives;
239}
240
241void CParameterFreeRDP::SetRedirectionDrives(const QStringList &newRedirectionDrive)
242{
243 if (m_lstRedirectionDrives == newRedirectionDrive)
244 return;
245 m_lstRedirectionDrives = newRedirectionDrive;
246 SetModified(true);
247 emit sigRedirectionDrivesChanged(m_lstRedirectionDrives);
248}
249
250bool CParameterFreeRDP::GetRedirectionPrinter() const
251{
252 return m_bRedirectionPrinter;
253}
254
255void CParameterFreeRDP::SetRedirectionPrinter(bool newRedirectionPrinter)
256{
257 if (m_bRedirectionPrinter == newRedirectionPrinter)
258 return;
259 m_bRedirectionPrinter = newRedirectionPrinter;
260 SetModified(true);
261 emit sigRedirectionPrinterChanged(m_bRedirectionPrinter);
262}
263
264const QString &CParameterFreeRDP::GetRedirectionSoundParameters() const
265{
266 return m_szRedirectionSoundParameters;
267}
268
269void CParameterFreeRDP::SetRedirectionSoundParameters(const QString &newRedirectionSoundParameters)
270{
271 if (m_szRedirectionSoundParameters == newRedirectionSoundParameters)
272 return;
273 m_szRedirectionSoundParameters = newRedirectionSoundParameters;
274 SetModified(true);
275 emit sigRedirectionSoundParametersChanged();
276}
277
278const QString &CParameterFreeRDP::GetRedirectionMicrophoneParameters() const
279{
280 return m_szRedirectionMicrophoneParameters;
281}
282
283void CParameterFreeRDP::SetRedirectionMicrophoneParameters(const QString &newRedirectionMicrophoneParameters)
284{
285 if (m_szRedirectionMicrophoneParameters == newRedirectionMicrophoneParameters)
286 return;
287 m_szRedirectionMicrophoneParameters = newRedirectionMicrophoneParameters;
288 SetModified(true);
289 emit sigRedirectionMicrophoneParametersChanged();
290}
291
292UINT16 CParameterFreeRDP::GetTlsVersion() const
293{
294 return m_tlsVersion;
295}
296
297void CParameterFreeRDP::SetTlsVersion(UINT16 newTlsVersion)
298{
299 if(m_tlsVersion == newTlsVersion)
300 return;
301 m_tlsVersion = newTlsVersion;
302 SetModified(true);
303}
304
305UINT32 CParameterFreeRDP::GetConnectType() const
306{
307 return m_ConnectType;
308}
309
310void CParameterFreeRDP::SetConnectType(UINT32 newConnectType)
311{
312 if(m_ConnectType == newConnectType)
313 return;
314 m_ConnectType = newConnectType;
315 SetModified(true);
316}
317
318UINT32 CParameterFreeRDP::GetPerformanceFlags() const
319{
320 return m_PerformanceFlags;
321}
322
323void CParameterFreeRDP::SetPerformanceFlags(UINT32 newPerformanceFlags)
324{
325 if(m_PerformanceFlags == newPerformanceFlags)
326 return;
327 m_PerformanceFlags = newPerformanceFlags;
328 SetModified(true);
329}
330
331bool CParameterFreeRDP::GetNegotiateSecurityLayer() const
332{
333 return m_bNegotiateSecurityLayer;
334}
335
336void CParameterFreeRDP::SetNegotiateSecurityLayer(bool newNegotiateSecurityLayer)
337{
338 if(m_bNegotiateSecurityLayer == newNegotiateSecurityLayer)
339 return;
340 m_bNegotiateSecurityLayer = newNegotiateSecurityLayer;
341 SetModified(true);
342}
343
344CParameterFreeRDP::Security CParameterFreeRDP::GetSecurity() const
345{
346 return m_Security;
347}
348
349void CParameterFreeRDP::SetSecurity(Security newSecurity)
350{
351 if(m_Security == newSecurity)
352 return;
353 m_Security = newSecurity;
354 SetModified(true);
355}
356
357void CParameterFreeRDP::SetDomain(const QString& szDomain)
358{
359 if(m_szDomain == szDomain)
360 return;
361 m_szDomain = szDomain;
362 SetModified(true);
363}
364
365const QString CParameterFreeRDP::GetDomain() const
366{
367 return m_szDomain;
368}
The interface of connecter parameters.
int SetModified(bool bModified=true)
When setting parameters, if there is a modification, it is called.