1#include "ParameterFreeRDP.h"
4#include <openssl/tls1.h>
10#include <QLoggingCategory>
12static Q_LOGGING_CATEGORY(log,
"FreeRDP.Parameter")
15 m_nWidth(GetScreenGeometry().width()),
16 m_nHeight(GetScreenGeometry().height()),
18 m_bUseMultimon(false),
19 m_nReconnectInterval(0),
20 m_bShowVerifyDiaglog(true),
21 m_bRedirectionPrinter(false),
22 m_nRedirectionSound(RedirecionSoundType::Disable),
23 m_bRedirectionMicrophone(false),
24 m_bNegotiateSecurityLayer(true),
25 m_Security((Security)(Security::RDP|Security::TLS|Security::NLA)),
26 m_tlsVersion(TLS1_VERSION),
27 m_ConnectType(CONNECTION_TYPE_AUTODETECT),
28 m_PerformanceFlags(PERF_FLAG_NONE)
32 QList<CParameterProxy::TYPE> lstType;
33 lstType << CParameterProxy::TYPE::None
34 << CParameterProxy::TYPE::SockesV5
35 << CParameterProxy::TYPE::Http;
37 lstType << CParameterProxy::TYPE::SSHTunnel;
39 m_Proxy.SetType(lstType);
41 m_szRedirectionSoundParameters =
42 #if defined (Q_OS_WINDOWS) || defined(Q_OS_WIN) || defined(Q_OS_WIN32) || defined(Q_OS_WINRT)
44 #elif defined(Q_OS_IOS)
46 #elif defined (Q_OS_ANDROID)
48 #elif defined (Q_OS_LINUX) || defined (Q_OS_UNIX)
52 m_szRedirectionMicrophoneParameters = m_szRedirectionSoundParameters;
55int CParameterFreeRDP::OnLoad(QSettings &set)
57 CParameterBase::OnLoad(set);
59 set.beginGroup(
"FreeRDP");
60 SetDomain(set.value(
"Domain", GetDomain()).toString());
61 SetDesktopWidth(set.value(
"Width", GetDesktopWidth()).toInt());
62 SetDesktopHeight(set.value(
"Height", GetDesktopHeight()).toInt());
63 SetColorDepth(set.value(
"ColorDepth", GetColorDepth()).toInt());
64 SetUseMultimon(set.value(
"UseMultimon", GetUseMultimon()).toBool());
65 SetReconnectInterval(set.value(
"ReconnectionInterval",
66 GetReconnectInterval()).toInt());
68 SetShowVerifyDiaglog(set.value(
"ShowVerifyDiaglog",
69 GetShowVerifyDiaglog()).toBool());
71 SetRedirectionPrinter(set.value(
"Redirection/Printer",
72 GetRedirectionPrinter()).toBool());
73 SetRedirectionSound(
static_cast<RedirecionSoundType
>(set.value(
"Redirection/Sound",
74 static_cast<int>(GetRedirectionSound())).toInt()));
75 SetRedirectionSoundParameters(set.value(
"Redirection/Sound/Parameters",
76 GetRedirectionSoundParameters()).toString());
77 SetRedirectionMicrophone(set.value(
"Redirection/Microphone",
78 GetRedirectionMicrophone()).toBool());
79 SetRedirectionMicrophoneParameters(set.value(
"Redirection/Microphone/Parameters",
80 GetRedirectionMicrophoneParameters()).toString());
81 SetRedirectionDrives(set.value(
"Redirection/Drive").toStringList());
83 SetNegotiateSecurityLayer(set.value(
"Security/Enable", GetNegotiateSecurityLayer()).toBool());
84 SetSecurity((Security)set.value(
"Security/Type", GetSecurity()).toUInt());
85 SetTlsVersion(set.value(
"Security/Tls/Version", GetTlsVersion()).toUInt());
87 set.beginGroup(
"Performance");
88 SetConnectType(set.value(
"Connect/Type", GetConnectType()).toUInt());
89 SetPerformanceFlags(set.value(
"Flags", GetPerformanceFlags()).toUInt());
97int CParameterFreeRDP::OnSave(QSettings &set)
99 CParameterBase::OnSave(set);
101 set.beginGroup(
"FreeRDP");
102 set.setValue(
"Domain", GetDomain());
103 set.setValue(
"Width", GetDesktopWidth());
104 set.setValue(
"Height", GetDesktopHeight());
105 set.setValue(
"ColorDepth", GetColorDepth());
106 set.setValue(
"UseMultimon", GetUseMultimon());
108 set.setValue(
"ReconnectionInterval", GetReconnectInterval());
109 set.setValue(
"ShowVerifyDiaglog", GetShowVerifyDiaglog());
111 set.setValue(
"Redirection/Printer", GetRedirectionPrinter());
112 set.setValue(
"Redirection/Sound",
static_cast<int>(GetRedirectionSound()));
113 set.setValue(
"Redirection/Sound/Parameters", GetRedirectionSoundParameters());
114 set.setValue(
"Redirection/Microphone", GetRedirectionMicrophone());
115 set.setValue(
"Redirection/Microphone/Parameters", GetRedirectionMicrophoneParameters());
116 set.setValue(
"Redirection/Drive", GetRedirectionDrives());
118 set.setValue(
"Security/Enable", GetNegotiateSecurityLayer());
119 set.setValue(
"Security/Type", (uint)GetSecurity());
120 set.setValue(
"Security/Tls/Version", GetTlsVersion());
122 set.beginGroup(
"Performance");
123 set.setValue(
"Connect/Type", GetConnectType());
124 set.setValue(
"Flags", GetPerformanceFlags());
132UINT32 CParameterFreeRDP::GetDesktopWidth()
const
137int CParameterFreeRDP::SetDesktopWidth(UINT32 nWidth)
139 if(m_nWidth == nWidth)
146UINT32 CParameterFreeRDP::GetDesktopHeight()
const
151int CParameterFreeRDP::SetDesktopHeight(UINT32 nHeight)
153 if(m_nHeight == nHeight)
160UINT32 CParameterFreeRDP::GetColorDepth()
const
162 return m_nColorDepth;
165int CParameterFreeRDP::SetColorDepth(UINT32 color)
167 if(m_nColorDepth == color)
169 m_nColorDepth = color;
174bool CParameterFreeRDP::GetUseMultimon()
const
176 return m_bUseMultimon;
179int CParameterFreeRDP::SetUseMultimon(
bool bUse)
181 if(m_bUseMultimon == bUse)
183 m_bUseMultimon = bUse;
188UINT CParameterFreeRDP::GetReconnectInterval()
const
190 return m_nReconnectInterval;
193void CParameterFreeRDP::SetReconnectInterval(UINT newReconnectInterval)
195 if (m_nReconnectInterval == newReconnectInterval)
198 m_nReconnectInterval = newReconnectInterval;
200 emit sigReconnectIntervalChanged();
203bool CParameterFreeRDP::GetShowVerifyDiaglog()
const
205 return m_bShowVerifyDiaglog;
208void CParameterFreeRDP::SetShowVerifyDiaglog(
bool bShow)
210 if(m_bShowVerifyDiaglog == bShow)
212 m_bShowVerifyDiaglog = bShow;
216CParameterFreeRDP::RedirecionSoundType CParameterFreeRDP::GetRedirectionSound()
const
218 return m_nRedirectionSound;
221void CParameterFreeRDP::SetRedirectionSound(RedirecionSoundType newRedirectionSound)
223 if (m_nRedirectionSound == newRedirectionSound)
225 m_nRedirectionSound = newRedirectionSound;
227 emit sigRedirectionSoundChanged(m_nRedirectionSound);
230bool CParameterFreeRDP::GetRedirectionMicrophone()
const
232 return m_bRedirectionMicrophone;
235void CParameterFreeRDP::SetRedirectionMicrophone(
bool newRedirectionMicrophone)
237 if (m_bRedirectionMicrophone == newRedirectionMicrophone)
239 m_bRedirectionMicrophone = newRedirectionMicrophone;
241 emit sigRedirectionMicrophoneChanged(m_bRedirectionMicrophone);
244QStringList CParameterFreeRDP::GetRedirectionDrives()
const
246 return m_lstRedirectionDrives;
249void CParameterFreeRDP::SetRedirectionDrives(
const QStringList &newRedirectionDrive)
251 if (m_lstRedirectionDrives == newRedirectionDrive)
253 m_lstRedirectionDrives = newRedirectionDrive;
255 emit sigRedirectionDrivesChanged(m_lstRedirectionDrives);
258bool CParameterFreeRDP::GetRedirectionPrinter()
const
260 return m_bRedirectionPrinter;
263void CParameterFreeRDP::SetRedirectionPrinter(
bool newRedirectionPrinter)
265 if (m_bRedirectionPrinter == newRedirectionPrinter)
267 m_bRedirectionPrinter = newRedirectionPrinter;
269 emit sigRedirectionPrinterChanged(m_bRedirectionPrinter);
272const QString &CParameterFreeRDP::GetRedirectionSoundParameters()
const
274 return m_szRedirectionSoundParameters;
277void CParameterFreeRDP::SetRedirectionSoundParameters(
const QString &newRedirectionSoundParameters)
279 if (m_szRedirectionSoundParameters == newRedirectionSoundParameters)
281 m_szRedirectionSoundParameters = newRedirectionSoundParameters;
283 emit sigRedirectionSoundParametersChanged();
286const QString &CParameterFreeRDP::GetRedirectionMicrophoneParameters()
const
288 return m_szRedirectionMicrophoneParameters;
291void CParameterFreeRDP::SetRedirectionMicrophoneParameters(
const QString &newRedirectionMicrophoneParameters)
293 if (m_szRedirectionMicrophoneParameters == newRedirectionMicrophoneParameters)
295 m_szRedirectionMicrophoneParameters = newRedirectionMicrophoneParameters;
297 emit sigRedirectionMicrophoneParametersChanged();
300UINT16 CParameterFreeRDP::GetTlsVersion()
const
305void CParameterFreeRDP::SetTlsVersion(UINT16 newTlsVersion)
307 if(m_tlsVersion == newTlsVersion)
309 m_tlsVersion = newTlsVersion;
313UINT32 CParameterFreeRDP::GetConnectType()
const
315 return m_ConnectType;
318void CParameterFreeRDP::SetConnectType(UINT32 newConnectType)
320 if(m_ConnectType == newConnectType)
322 m_ConnectType = newConnectType;
326UINT32 CParameterFreeRDP::GetPerformanceFlags()
const
328 return m_PerformanceFlags;
331void CParameterFreeRDP::SetPerformanceFlags(UINT32 newPerformanceFlags)
333 if(m_PerformanceFlags == newPerformanceFlags)
335 m_PerformanceFlags = newPerformanceFlags;
339bool CParameterFreeRDP::GetNegotiateSecurityLayer()
const
341 return m_bNegotiateSecurityLayer;
344void CParameterFreeRDP::SetNegotiateSecurityLayer(
bool newNegotiateSecurityLayer)
346 if(m_bNegotiateSecurityLayer == newNegotiateSecurityLayer)
348 m_bNegotiateSecurityLayer = newNegotiateSecurityLayer;
352CParameterFreeRDP::Security CParameterFreeRDP::GetSecurity()
const
357void CParameterFreeRDP::SetSecurity(Security newSecurity)
359 if(m_Security == newSecurity)
361 m_Security = newSecurity;
365void CParameterFreeRDP::SetDomain(
const QString& szDomain)
367 if(m_szDomain == szDomain)
369 m_szDomain = szDomain;
373const QString CParameterFreeRDP::GetDomain()
const
378QRect CParameterFreeRDP::GetScreenGeometry()
381 QScreen* pScreen = QApplication::primaryScreen();
382 r = pScreen->geometry();
The interface of connecter parameters.
[Declare CParameterFreeRDP]
int SetModified(bool bModified=true)
When setting parameters, if there is a modification, it is called.