1#include "ParameterFreeRDP.h"
4#include <openssl/tls1.h>
10#include <QLoggingCategory>
12static Q_LOGGING_CATEGORY(log,
"FreeRDP.Parameter")
15#if defined(Q_OS_ANDROID)
19 m_nWidth(GetScreenGeometry().width()),
20 m_nHeight(GetScreenGeometry().height()),
23 m_bUseMultimon(
false),
24 m_nReconnectInterval(0),
25 m_bShowVerifyDiaglog(
true),
26 m_bRedirectionPrinter(
false),
27 m_nRedirectionSound(RedirecionSoundType::Disable),
28 m_bRedirectionMicrophone(
false),
29 m_bNegotiateSecurityLayer(
true),
30 m_Security((Security)(Security::RDP|Security::TLS|Security::NLA)),
31 m_tlsVersion(TLS1_VERSION),
32 m_ConnectType(CONNECTION_TYPE_AUTODETECT),
33 m_PerformanceFlags(PERF_FLAG_NONE)
37 QList<CParameterProxy::TYPE> lstType;
38 lstType << CParameterProxy::TYPE::None
39 << CParameterProxy::TYPE::SockesV5
40 << CParameterProxy::TYPE::Http;
42 lstType << CParameterProxy::TYPE::SSHTunnel;
44 m_Proxy.SetType(lstType);
46 m_szRedirectionSoundParameters =
47 #if defined (Q_OS_WINDOWS) || defined(Q_OS_WIN) || defined(Q_OS_WIN32) || defined(Q_OS_WINRT)
49 #elif defined(Q_OS_IOS)
51 #elif defined (Q_OS_ANDROID)
53 #elif defined (Q_OS_LINUX) || defined (Q_OS_UNIX)
57 m_szRedirectionMicrophoneParameters = m_szRedirectionSoundParameters;
60int CParameterFreeRDP::OnLoad(QSettings &set)
62 CParameterDesktop::OnLoad(set);
64 set.beginGroup(
"FreeRDP");
65 SetDomain(set.value(
"Domain", GetDomain()).toString());
66 SetDesktopWidth(set.value(
"Width", GetDesktopWidth()).toInt());
67 SetDesktopHeight(set.value(
"Height", GetDesktopHeight()).toInt());
68 SetColorDepth(set.value(
"ColorDepth", GetColorDepth()).toInt());
69 SetUseMultimon(set.value(
"UseMultimon", GetUseMultimon()).toBool());
70 SetReconnectInterval(set.value(
"ReconnectionInterval",
71 GetReconnectInterval()).toInt());
73 SetShowVerifyDiaglog(set.value(
"ShowVerifyDiaglog",
74 GetShowVerifyDiaglog()).toBool());
76 SetRedirectionPrinter(set.value(
"Redirection/Printer",
77 GetRedirectionPrinter()).toBool());
78 SetRedirectionSound(
static_cast<RedirecionSoundType
>(set.value(
"Redirection/Sound",
79 static_cast<int>(GetRedirectionSound())).toInt()));
80 SetRedirectionSoundParameters(set.value(
"Redirection/Sound/Parameters",
81 GetRedirectionSoundParameters()).toString());
82 SetRedirectionMicrophone(set.value(
"Redirection/Microphone",
83 GetRedirectionMicrophone()).toBool());
84 SetRedirectionMicrophoneParameters(set.value(
"Redirection/Microphone/Parameters",
85 GetRedirectionMicrophoneParameters()).toString());
86 SetRedirectionDrives(set.value(
"Redirection/Drive").toStringList());
88 SetNegotiateSecurityLayer(set.value(
"Security/Enable", GetNegotiateSecurityLayer()).toBool());
89 SetSecurity((Security)set.value(
"Security/Type", GetSecurity()).toUInt());
90 SetTlsVersion(set.value(
"Security/Tls/Version", GetTlsVersion()).toUInt());
92 set.beginGroup(
"Performance");
93 SetConnectType(set.value(
"Connect/Type", GetConnectType()).toUInt());
94 SetPerformanceFlags(set.value(
"Flags", GetPerformanceFlags()).toUInt());
102int CParameterFreeRDP::OnSave(QSettings &set)
104 CParameterDesktop::OnSave(set);
106 set.beginGroup(
"FreeRDP");
107 set.setValue(
"Domain", GetDomain());
108 set.setValue(
"Width", GetDesktopWidth());
109 set.setValue(
"Height", GetDesktopHeight());
110 set.setValue(
"ColorDepth", GetColorDepth());
111 set.setValue(
"UseMultimon", GetUseMultimon());
113 set.setValue(
"ReconnectionInterval", GetReconnectInterval());
114 set.setValue(
"ShowVerifyDiaglog", GetShowVerifyDiaglog());
116 set.setValue(
"Redirection/Printer", GetRedirectionPrinter());
117 set.setValue(
"Redirection/Sound",
static_cast<int>(GetRedirectionSound()));
118 set.setValue(
"Redirection/Sound/Parameters", GetRedirectionSoundParameters());
119 set.setValue(
"Redirection/Microphone", GetRedirectionMicrophone());
120 set.setValue(
"Redirection/Microphone/Parameters", GetRedirectionMicrophoneParameters());
121 set.setValue(
"Redirection/Drive", GetRedirectionDrives());
123 set.setValue(
"Security/Enable", GetNegotiateSecurityLayer());
124 set.setValue(
"Security/Type", (uint)GetSecurity());
125 set.setValue(
"Security/Tls/Version", GetTlsVersion());
127 set.beginGroup(
"Performance");
128 set.setValue(
"Connect/Type", GetConnectType());
129 set.setValue(
"Flags", GetPerformanceFlags());
137UINT32 CParameterFreeRDP::GetDesktopWidth()
const
142int CParameterFreeRDP::SetDesktopWidth(UINT32 nWidth)
144 if(m_nWidth == nWidth)
151UINT32 CParameterFreeRDP::GetDesktopHeight()
const
156int CParameterFreeRDP::SetDesktopHeight(UINT32 nHeight)
158 if(m_nHeight == nHeight)
165UINT32 CParameterFreeRDP::GetColorDepth()
const
167 return m_nColorDepth;
170int CParameterFreeRDP::SetColorDepth(UINT32 color)
172 if(m_nColorDepth == color)
174 m_nColorDepth = color;
179bool CParameterFreeRDP::GetUseMultimon()
const
181 return m_bUseMultimon;
184int CParameterFreeRDP::SetUseMultimon(
bool bUse)
186 if(m_bUseMultimon == bUse)
188 m_bUseMultimon = bUse;
193UINT CParameterFreeRDP::GetReconnectInterval()
const
195 return m_nReconnectInterval;
198void CParameterFreeRDP::SetReconnectInterval(UINT newReconnectInterval)
200 if (m_nReconnectInterval == newReconnectInterval)
203 m_nReconnectInterval = newReconnectInterval;
205 emit sigReconnectIntervalChanged();
208bool CParameterFreeRDP::GetShowVerifyDiaglog()
const
210 return m_bShowVerifyDiaglog;
213void CParameterFreeRDP::SetShowVerifyDiaglog(
bool bShow)
215 if(m_bShowVerifyDiaglog == bShow)
217 m_bShowVerifyDiaglog = bShow;
221CParameterFreeRDP::RedirecionSoundType CParameterFreeRDP::GetRedirectionSound()
const
223 return m_nRedirectionSound;
226void CParameterFreeRDP::SetRedirectionSound(RedirecionSoundType newRedirectionSound)
228 if (m_nRedirectionSound == newRedirectionSound)
230 m_nRedirectionSound = newRedirectionSound;
232 emit sigRedirectionSoundChanged(m_nRedirectionSound);
235bool CParameterFreeRDP::GetRedirectionMicrophone()
const
237 return m_bRedirectionMicrophone;
240void CParameterFreeRDP::SetRedirectionMicrophone(
bool newRedirectionMicrophone)
242 if (m_bRedirectionMicrophone == newRedirectionMicrophone)
244 m_bRedirectionMicrophone = newRedirectionMicrophone;
246 emit sigRedirectionMicrophoneChanged(m_bRedirectionMicrophone);
249QStringList CParameterFreeRDP::GetRedirectionDrives()
const
251 return m_lstRedirectionDrives;
254void CParameterFreeRDP::SetRedirectionDrives(
const QStringList &newRedirectionDrive)
256 if (m_lstRedirectionDrives == newRedirectionDrive)
258 m_lstRedirectionDrives = newRedirectionDrive;
260 emit sigRedirectionDrivesChanged(m_lstRedirectionDrives);
263bool CParameterFreeRDP::GetRedirectionPrinter()
const
265 return m_bRedirectionPrinter;
268void CParameterFreeRDP::SetRedirectionPrinter(
bool newRedirectionPrinter)
270 if (m_bRedirectionPrinter == newRedirectionPrinter)
272 m_bRedirectionPrinter = newRedirectionPrinter;
274 emit sigRedirectionPrinterChanged(m_bRedirectionPrinter);
277const QString &CParameterFreeRDP::GetRedirectionSoundParameters()
const
279 return m_szRedirectionSoundParameters;
282void CParameterFreeRDP::SetRedirectionSoundParameters(
const QString &newRedirectionSoundParameters)
284 if (m_szRedirectionSoundParameters == newRedirectionSoundParameters)
286 m_szRedirectionSoundParameters = newRedirectionSoundParameters;
288 emit sigRedirectionSoundParametersChanged();
291const QString &CParameterFreeRDP::GetRedirectionMicrophoneParameters()
const
293 return m_szRedirectionMicrophoneParameters;
296void CParameterFreeRDP::SetRedirectionMicrophoneParameters(
const QString &newRedirectionMicrophoneParameters)
298 if (m_szRedirectionMicrophoneParameters == newRedirectionMicrophoneParameters)
300 m_szRedirectionMicrophoneParameters = newRedirectionMicrophoneParameters;
302 emit sigRedirectionMicrophoneParametersChanged();
305UINT16 CParameterFreeRDP::GetTlsVersion()
const
310void CParameterFreeRDP::SetTlsVersion(UINT16 newTlsVersion)
312 if(m_tlsVersion == newTlsVersion)
314 m_tlsVersion = newTlsVersion;
318UINT32 CParameterFreeRDP::GetConnectType()
const
320 return m_ConnectType;
323void CParameterFreeRDP::SetConnectType(UINT32 newConnectType)
325 if(m_ConnectType == newConnectType)
327 m_ConnectType = newConnectType;
331UINT32 CParameterFreeRDP::GetPerformanceFlags()
const
333 return m_PerformanceFlags;
336void CParameterFreeRDP::SetPerformanceFlags(UINT32 newPerformanceFlags)
338 if(m_PerformanceFlags == newPerformanceFlags)
340 m_PerformanceFlags = newPerformanceFlags;
344bool CParameterFreeRDP::GetNegotiateSecurityLayer()
const
346 return m_bNegotiateSecurityLayer;
349void CParameterFreeRDP::SetNegotiateSecurityLayer(
bool newNegotiateSecurityLayer)
351 if(m_bNegotiateSecurityLayer == newNegotiateSecurityLayer)
353 m_bNegotiateSecurityLayer = newNegotiateSecurityLayer;
357CParameterFreeRDP::Security CParameterFreeRDP::GetSecurity()
const
362void CParameterFreeRDP::SetSecurity(Security newSecurity)
364 if(m_Security == newSecurity)
366 m_Security = newSecurity;
370void CParameterFreeRDP::SetDomain(
const QString& szDomain)
372 if(m_szDomain == szDomain)
374 m_szDomain = szDomain;
378const QString CParameterFreeRDP::GetDomain()
const
383QRect CParameterFreeRDP::GetScreenGeometry()
386 QScreen* pScreen = QApplication::primaryScreen();
387 r = pScreen->geometry();
The interface of remote desktop base parameters.
[Declare CParameterFreeRDP]
int SetModified(bool bModified=true)
When setting parameters, if there is a modification, it is called.