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();
 
连接基础参数接口。包括基本参数(网络参数等)。 所有插件的连接参数都应从此类派生。
 
[Declare CParameterFreeRDP]
 
int SetModified(bool bModified=true)
在设置参数时,如果有修改,则调用。