1#include "ParameterFreeRDP.h"
4#include <openssl/tls1.h>
11CParameterFreeRDP::CParameterFreeRDP(QObject *parent)
13 m_nWidth(GetScreenGeometry().width()),
14 m_nHeight(GetScreenGeometry().height()),
16 m_bUseMultimon(false),
17 m_nReconnectInterval(0),
18 m_bShowVerifyDiaglog(true),
19 m_bRedirectionPrinter(false),
20 m_nRedirectionSound(RedirecionSoundType::Disable),
21 m_bRedirectionMicrophone(false),
22 m_bNegotiateSecurityLayer(true),
23 m_Security((Security)(Security::RDP|Security::TLS|Security::NLA)),
24 m_tlsVersion(TLS1_VERSION),
25 m_ConnectType(CONNECTION_TYPE_AUTODETECT),
26 m_PerformanceFlags(PERF_FLAG_NONE)
31 QList<CParameterProxy::TYPE>() << CParameterProxy::TYPE::None
32 << CParameterProxy::TYPE::SockesV5
33 << CParameterProxy::TYPE::Http
34 << CParameterProxy::TYPE::SSHTunnel);
36 m_szRedirectionSoundParameters =
37 #if defined (Q_OS_WINDOWS) || defined(Q_OS_WIN) || defined(Q_OS_WIN32) || defined(Q_OS_WINRT)
39 #elif defined(Q_OS_IOS)
41 #elif defined (Q_OS_ANDROID)
43 #elif defined (Q_OS_LINUX) || defined (Q_OS_UNIX)
47 m_szRedirectionMicrophoneParameters = m_szRedirectionSoundParameters;
50int CParameterFreeRDP::OnLoad(QSettings &set)
52 CParameterBase::OnLoad(set);
54 set.beginGroup(
"FreeRDP");
55 SetDomain(set.value(
"Domain", GetDomain()).toString());
56 SetDesktopWidth(set.value(
"Width", GetDesktopWidth()).toInt());
57 SetDesktopHeight(set.value(
"Height", GetDesktopHeight()).toInt());
58 SetColorDepth(set.value(
"ColorDepth", GetColorDepth()).toInt());
59 SetUseMultimon(set.value(
"UseMultimon", GetUseMultimon()).toBool());
60 SetReconnectInterval(set.value(
"ReconnectionInterval",
61 GetReconnectInterval()).toInt());
63 SetShowVerifyDiaglog(set.value(
"ShowVerifyDiaglog",
64 GetShowVerifyDiaglog()).toBool());
66 SetRedirectionPrinter(set.value(
"Redirection/Printer",
67 GetRedirectionPrinter()).toBool());
68 SetRedirectionSound(
static_cast<RedirecionSoundType
>(set.value(
"Redirection/Sound",
69 static_cast<int>(GetRedirectionSound())).toInt()));
70 SetRedirectionSoundParameters(set.value(
"Redirection/Sound/Parameters",
71 GetRedirectionSoundParameters()).toString());
72 SetRedirectionMicrophone(set.value(
"Redirection/Microphone",
73 GetRedirectionMicrophone()).toBool());
74 SetRedirectionMicrophoneParameters(set.value(
"Redirection/Microphone/Parameters",
75 GetRedirectionMicrophoneParameters()).toString());
76 SetRedirectionDrives(set.value(
"Redirection/Drive").toStringList());
78 SetNegotiateSecurityLayer(set.value(
"Security/Enable", GetNegotiateSecurityLayer()).toBool());
79 SetSecurity((Security)set.value(
"Security/Type", GetSecurity()).toUInt());
80 SetTlsVersion(set.value(
"Security/Tls/Version", GetTlsVersion()).toUInt());
82 set.beginGroup(
"Performance");
83 SetConnectType(set.value(
"Connect/Type", GetConnectType()).toUInt());
84 SetPerformanceFlags(set.value(
"Flags", GetPerformanceFlags()).toUInt());
92int CParameterFreeRDP::OnSave(QSettings &set)
94 CParameterBase::OnSave(set);
96 set.beginGroup(
"FreeRDP");
97 set.setValue(
"Domain", GetDomain());
98 set.setValue(
"Width", GetDesktopWidth());
99 set.setValue(
"Height", GetDesktopHeight());
100 set.setValue(
"ColorDepth", GetColorDepth());
101 set.setValue(
"UseMultimon", GetUseMultimon());
103 set.setValue(
"ReconnectionInterval", GetReconnectInterval());
104 set.setValue(
"ShowVerifyDiaglog", GetShowVerifyDiaglog());
106 set.setValue(
"Redirection/Printer", GetRedirectionPrinter());
107 set.setValue(
"Redirection/Sound",
static_cast<int>(GetRedirectionSound()));
108 set.setValue(
"Redirection/Sound/Parameters", GetRedirectionSoundParameters());
109 set.setValue(
"Redirection/Microphone", GetRedirectionMicrophone());
110 set.setValue(
"Redirection/Microphone/Parameters", GetRedirectionMicrophoneParameters());
111 set.setValue(
"Redirection/Drive", GetRedirectionDrives());
113 set.setValue(
"Security/Enable", GetNegotiateSecurityLayer());
114 set.setValue(
"Security/Type", (uint)GetSecurity());
115 set.setValue(
"Security/Tls/Version", GetTlsVersion());
117 set.beginGroup(
"Performance");
118 set.setValue(
"Connect/Type", GetConnectType());
119 set.setValue(
"Flags", GetPerformanceFlags());
127UINT32 CParameterFreeRDP::GetDesktopWidth()
const
132int CParameterFreeRDP::SetDesktopWidth(UINT32 nWidth)
134 if(m_nWidth == nWidth)
141UINT32 CParameterFreeRDP::GetDesktopHeight()
const
146int CParameterFreeRDP::SetDesktopHeight(UINT32 nHeight)
148 if(m_nHeight == nHeight)
155UINT32 CParameterFreeRDP::GetColorDepth()
const
157 return m_nColorDepth;
160int CParameterFreeRDP::SetColorDepth(UINT32 color)
162 if(m_nColorDepth == color)
164 m_nColorDepth = color;
169bool CParameterFreeRDP::GetUseMultimon()
const
171 return m_bUseMultimon;
174int CParameterFreeRDP::SetUseMultimon(
bool bUse)
176 if(m_bUseMultimon == bUse)
178 m_bUseMultimon = bUse;
183UINT CParameterFreeRDP::GetReconnectInterval()
const
185 return m_nReconnectInterval;
188void CParameterFreeRDP::SetReconnectInterval(UINT newReconnectInterval)
190 if (m_nReconnectInterval == newReconnectInterval)
193 m_nReconnectInterval = newReconnectInterval;
195 emit sigReconnectIntervalChanged();
198bool CParameterFreeRDP::GetShowVerifyDiaglog()
const
200 return m_bShowVerifyDiaglog;
203void CParameterFreeRDP::SetShowVerifyDiaglog(
bool bShow)
205 if(m_bShowVerifyDiaglog == bShow)
207 m_bShowVerifyDiaglog = bShow;
211CParameterFreeRDP::RedirecionSoundType CParameterFreeRDP::GetRedirectionSound()
const
213 return m_nRedirectionSound;
216void CParameterFreeRDP::SetRedirectionSound(RedirecionSoundType newRedirectionSound)
218 if (m_nRedirectionSound == newRedirectionSound)
220 m_nRedirectionSound = newRedirectionSound;
222 emit sigRedirectionSoundChanged(m_nRedirectionSound);
225bool CParameterFreeRDP::GetRedirectionMicrophone()
const
227 return m_bRedirectionMicrophone;
230void CParameterFreeRDP::SetRedirectionMicrophone(
bool newRedirectionMicrophone)
232 if (m_bRedirectionMicrophone == newRedirectionMicrophone)
234 m_bRedirectionMicrophone = newRedirectionMicrophone;
236 emit sigRedirectionMicrophoneChanged(m_bRedirectionMicrophone);
239QStringList CParameterFreeRDP::GetRedirectionDrives()
const
241 return m_lstRedirectionDrives;
244void CParameterFreeRDP::SetRedirectionDrives(
const QStringList &newRedirectionDrive)
246 if (m_lstRedirectionDrives == newRedirectionDrive)
248 m_lstRedirectionDrives = newRedirectionDrive;
250 emit sigRedirectionDrivesChanged(m_lstRedirectionDrives);
253bool CParameterFreeRDP::GetRedirectionPrinter()
const
255 return m_bRedirectionPrinter;
258void CParameterFreeRDP::SetRedirectionPrinter(
bool newRedirectionPrinter)
260 if (m_bRedirectionPrinter == newRedirectionPrinter)
262 m_bRedirectionPrinter = newRedirectionPrinter;
264 emit sigRedirectionPrinterChanged(m_bRedirectionPrinter);
267const QString &CParameterFreeRDP::GetRedirectionSoundParameters()
const
269 return m_szRedirectionSoundParameters;
272void CParameterFreeRDP::SetRedirectionSoundParameters(
const QString &newRedirectionSoundParameters)
274 if (m_szRedirectionSoundParameters == newRedirectionSoundParameters)
276 m_szRedirectionSoundParameters = newRedirectionSoundParameters;
278 emit sigRedirectionSoundParametersChanged();
281const QString &CParameterFreeRDP::GetRedirectionMicrophoneParameters()
const
283 return m_szRedirectionMicrophoneParameters;
286void CParameterFreeRDP::SetRedirectionMicrophoneParameters(
const QString &newRedirectionMicrophoneParameters)
288 if (m_szRedirectionMicrophoneParameters == newRedirectionMicrophoneParameters)
290 m_szRedirectionMicrophoneParameters = newRedirectionMicrophoneParameters;
292 emit sigRedirectionMicrophoneParametersChanged();
295UINT16 CParameterFreeRDP::GetTlsVersion()
const
300void CParameterFreeRDP::SetTlsVersion(UINT16 newTlsVersion)
302 if(m_tlsVersion == newTlsVersion)
304 m_tlsVersion = newTlsVersion;
308UINT32 CParameterFreeRDP::GetConnectType()
const
310 return m_ConnectType;
313void CParameterFreeRDP::SetConnectType(UINT32 newConnectType)
315 if(m_ConnectType == newConnectType)
317 m_ConnectType = newConnectType;
321UINT32 CParameterFreeRDP::GetPerformanceFlags()
const
323 return m_PerformanceFlags;
326void CParameterFreeRDP::SetPerformanceFlags(UINT32 newPerformanceFlags)
328 if(m_PerformanceFlags == newPerformanceFlags)
330 m_PerformanceFlags = newPerformanceFlags;
334bool CParameterFreeRDP::GetNegotiateSecurityLayer()
const
336 return m_bNegotiateSecurityLayer;
339void CParameterFreeRDP::SetNegotiateSecurityLayer(
bool newNegotiateSecurityLayer)
341 if(m_bNegotiateSecurityLayer == newNegotiateSecurityLayer)
343 m_bNegotiateSecurityLayer = newNegotiateSecurityLayer;
347CParameterFreeRDP::Security CParameterFreeRDP::GetSecurity()
const
352void CParameterFreeRDP::SetSecurity(Security newSecurity)
354 if(m_Security == newSecurity)
356 m_Security = newSecurity;
360void CParameterFreeRDP::SetDomain(
const QString& szDomain)
362 if(m_szDomain == szDomain)
364 m_szDomain = szDomain;
368const QString CParameterFreeRDP::GetDomain()
const
373QRect CParameterFreeRDP::GetScreenGeometry()
376 QScreen* pScreen = QApplication::primaryScreen();
377 r = pScreen->geometry();
The interface of connecter parameters.
int SetModified(bool bModified=true)
When setting parameters, if there is a modification, it is called.