1 // $Id: MyXmlConfig.h 679 2012-02-09 23:29:53Z felfert $
2 //
3 // Copyright (C) 2006 The OpenNX Team
4 // Author: Fritz Elfert
5 //
6 // This program is free software; you can redistribute it and/or modify
7 // it under the terms of the GNU Library General Public License as
8 // published by the Free Software Foundation; either version 2 of the
9 // License, or (at your option) any later version.
10 //
11 // This program is distributed in the hope that it will be useful,
12 // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14 // GNU General Public License for more details.
15 //
16 // You should have received a copy of the GNU Library General Public
17 // License along with this program; if not, write to the
18 // Free Software Foundation, Inc.,
19 // 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
20 //
21 
22 #ifndef _MYXMLCONFIG_H_
23 #define _MYXMLCONFIG_H_
24 
25 #if defined(__GNUG__) && !defined(__APPLE__)
26 #pragma interface "MyXmlConfig.cpp"
27 #endif
28 
29 #include <wx/dynarray.h>
30 #include <wx/string.h>
31 #include <wx/object.h>
32 
33 #include "WinShare.h"
34 
35 class wxXmlNode;
36 
37 class ShareGroup : public wxObject
38 {
DECLARE_DYNAMIC_CLASS(ShareGroup)39     DECLARE_DYNAMIC_CLASS(ShareGroup)
40 
41     public:
42         ShareGroup() : wxObject() {m_eType = SharedResource::SHARE_UNKNOWN; }
~ShareGroup()43         virtual ~ShareGroup() {}
44 
45         bool operator ==(const ShareGroup &);
46         bool operator !=(const ShareGroup &);
47         wxString toString();
48 
49         bool m_bDefault; // CUPS only
50         bool m_bPublic; // CUPS only
51         SharedResource::ShareType m_eType;
52         wxString m_sGroupName;
53         wxString m_sAlias; // SMB Only
54         wxString m_sDriver; // CUPS Only
55         wxString m_sPassword;
56         wxString m_sShareName;
57         wxString m_sUsername;
58 };
59 
60 WX_DECLARE_OBJARRAY(ShareGroup, ArrayOfShareGroups);
61 
62 class USBDevice;
63 
64 class SharedUsbDevice : public wxObject
65 {
66     DECLARE_DYNAMIC_CLASS(SharedUsbDevice)
67 
68     public:
69         typedef enum {
70             MODE_UNKNOWN = 0,
71             MODE_LOCAL,
72             MODE_REMOTE,
73         } Mode;
74 
SharedUsbDevice()75         SharedUsbDevice() : wxObject() { m_eMode = MODE_UNKNOWN; }
~SharedUsbDevice()76         virtual ~SharedUsbDevice() {}
77         wxString toShortString();
78         bool cmpNoMode(const SharedUsbDevice &);
79         bool operator ==(const SharedUsbDevice &);
80         bool operator !=(const SharedUsbDevice &);
81         bool MatchHotplug(const USBDevice &);
82 
83         Mode m_eMode;
84         wxString m_sVendor;
85         wxString m_sProduct;
86         wxString m_sSerial;
87         int m_iClass;
88         int m_iVendorID;
89         int m_iProductID;
90 };
91 
92 WX_DECLARE_OBJARRAY(SharedUsbDevice, ArrayOfUsbForwards);
93 
94 class MyXmlConfig
95 {
96     public:
97         typedef enum {
98             SPEED_MODEM = 0,
99             SPEED_ISDN,
100             SPEED_ADSL,
101             SPEED_WAN,
102             SPEED_LAN,
103         } ConnectionSpeed;
104 
105         typedef enum {
106             STYPE_UNIX = 0,
107             STYPE_WINDOWS,
108             STYPE_VNC,
109             STYPE_SHADOW,
110         } SessionType;
111 
112         typedef enum {
113             DTYPE_ANY = -3,
114             DTYPE_RDP = -2,
115             DTYPE_RFB = -1,
116             DTYPE_KDE = 0,
117             DTYPE_GNOME,
118             DTYPE_CDE,
119             DTYPE_XFCE,
120             DTYPE_XDM,
121             DTYPE_CUSTOM,
122         } DesktopType;
123 
124         typedef enum {
125             DPTYPE_640x480 = 0,
126             DPTYPE_800x600,
127             DPTYPE_1024x768,
128             DPTYPE_AVAILABLE,
129             DPTYPE_FULLSCREEN,
130             DPTYPE_CUSTOM,
131             DPTYPE_REMOTE,
132         } DisplayType;
133 
134         typedef enum {
135             CACHEMEM_0MB = 0,
136             CACHEMEM_1MB,
137             CACHEMEM_2MB,
138             CACHEMEM_4MB,
139             CACHEMEM_8MB,
140             CACHEMEM_16MB,
141             CACHEMEM_32MB,
142             CACHEMEM_64MB,
143             CACHEMEM_128MB,
144         } CacheMemory;
145 
146         typedef enum CacheDisk {
147             CACHEDISK_0MB = 0,
148             CACHEDISK_4MB,
149             CACHEDISK_8MB,
150             CACHEDISK_16MB,
151             CACHEDISK_32MB,
152             CACHEDISK_64MB,
153             CACHEDISK_128MB,
154             CACHEDISK_256MB,
155             CACHEDISK_512MB,
156         } CacheDisk;
157 
158         typedef enum XdmMode {
159             XDM_MODE_SERVER,
160             XDM_MODE_QUERY,
161             XDM_MODE_BROADCAST,
162             XDM_MODE_LIST,
163         } XdmMode;
164 
165         MyXmlConfig();
166         MyXmlConfig(const wxString &);
167         virtual ~MyXmlConfig();
168 
169         MyXmlConfig &operator =(const MyXmlConfig &);
170         bool operator ==(const MyXmlConfig &);
171 
172         void saveState();
173         bool checkChanged();
174         bool SaveToFile();
175         bool LoadFromFile(const wxString &);
176         bool LoadFromURL(const wxString &);
177         bool LoadFromString(const wxString &, bool);
178 
179         wxString sGetSessionParams(const long, bool, const wxString &);
180         wxString sGetListParams(const long);
181         wxString sGetProxyParams(const long);
182 #ifdef __WXMSW__
183         wxString sGetXserverParams(bool forNXWin);
184 #endif
185 
IsValid()186         bool IsValid() { return m_bValid; }
IsWritable()187         bool IsWritable() { return m_bWritable; }
WasOldConfig()188         bool WasOldConfig() { return m_bOldConfig; }
189 
bGetDisableBackingstore()190         bool bGetDisableBackingstore() { return m_bDisableBackingstore; }
bGetDisableComposite()191         bool bGetDisableComposite() { return m_bDisableComposite; }
bGetDisableRender()192         bool bGetDisableRender() { return m_bDisableRender; }
bGetDisableShmem()193         bool bGetDisableShmem() { return m_bDisableShmem; }
bGetDisableShpix()194         bool bGetDisableShpix() { return m_bDisableShpix; }
bGetDisableTaint()195         bool bGetDisableTaint() { return m_bDisableTaint; }
bGetDisableTcpNoDelay()196         bool bGetDisableTcpNoDelay() { return m_bDisableTcpNoDelay; }
bGetDisableXagent()197         bool bGetDisableXagent() { return m_bDisableXagent; }
bGetDisableZlibCompression()198         bool bGetDisableZlibCompression() { return m_bDisableZlibCompression; }
bGetEnableMultimedia()199         bool bGetEnableMultimedia() { return m_bEnableMultimedia; }
bGetEnableSmbSharing()200         bool bGetEnableSmbSharing() { return m_bEnableSmbSharing; }
bGetEnableSSL()201         bool bGetEnableSSL() { return m_bEnableSSL; }
bGetExternalProxy()202         bool bGetExternalProxy() { return m_bExternalProxy; }
bGetGuestMode()203         bool bGetGuestMode() { return m_bGuestMode; }
bGetKbdLayoutOther()204         bool bGetKbdLayoutOther() { return m_bKbdLayoutOther; }
bGetProxyPassRemember()205         bool bGetProxyPassRemember() { return m_bProxyPassRemember; }
bGetRdpCache()206         bool bGetRdpCache() { return m_bRdpCache; }
bGetRdpRememberPassword()207         bool bGetRdpRememberPassword() { return m_bRdpRememberPassword; }
bGetRdpRunApplication()208         bool bGetRdpRunApplication() { return m_bRdpRunApplication; }
bGetRememberPassword()209         bool bGetRememberPassword() { return m_bRememberPassword || m_bGuestMode; }
bGetRemoveOldSessionFiles()210         bool bGetRemoveOldSessionFiles() { return m_bRemoveOldSessionFiles; }
bGetRunConsole()211         bool bGetRunConsole() { return m_bRunConsole; }
bGetRunXclients()212         bool bGetRunXclients() { return m_bRunXclients; }
bGetUseCups()213         bool bGetUseCups() { return m_bUseCups; }
bGetUseCustomImageEncoding()214         bool bGetUseCustomImageEncoding() { return m_bUseCustomImageEncoding; }
bGetUseProxy()215         bool bGetUseProxy() { return m_bUseProxy; }
bGetUseSmartCard()216         bool bGetUseSmartCard() { return m_bUseSmartCard; }
bGetVirtualDesktop()217         bool bGetVirtualDesktop() { return m_bVirtualDesktop; }
bGetVncRememberPassword()218         bool bGetVncRememberPassword() { return m_bVncRememberPassword; }
bGetVncUseNxAuth()219         bool bGetVncUseNxAuth() { return m_bVncUseNxAuth; }
bGetEnableUSBIP()220         bool bGetEnableUSBIP() { return m_bEnableUSBIP; }
bGetDisableDirectDraw()221         bool bGetDisableDirectDraw() { return m_bDisableDirectDraw; }
bGetDisableDeferredUpdates()222         bool bGetDisableDeferredUpdates() { return m_bDisableDeferredUpdates; }
bGetGrabKeyboard()223         bool bGetGrabKeyboard() { return m_bGrabKeyboard; }
224 
eGetConnectionSpeed()225         MyXmlConfig::ConnectionSpeed eGetConnectionSpeed() { return m_eConnectionSpeed; }
eGetDesktopType()226         MyXmlConfig::DesktopType eGetDesktopType() { return m_eDesktopType; }
eGetDisplayType()227         MyXmlConfig::DisplayType eGetDisplayType() { return m_eDisplayType; }
eGetSessionType()228         MyXmlConfig::SessionType eGetSessionType() { return m_eSessionType; }
eGetCacheMemory()229         MyXmlConfig::CacheMemory eGetCacheMemory() { return m_eCacheMemory; }
eGetCacheDisk()230         MyXmlConfig::CacheDisk eGetCacheDisk() { return m_eCacheDisk; }
eGetXdmMode()231         MyXmlConfig::XdmMode eGetXdmMode() { return m_eXdmMode; }
232 
iGetClipFilter()233         int iGetClipFilter() { return m_iClipFilter; }
iGetCupsPort()234         int iGetCupsPort() { return m_iCupsPort; }
iGetDisplayHeight()235         int iGetDisplayHeight() { return m_iDisplayHeight; }
iGetDisplayWidth()236         int iGetDisplayWidth() { return m_iDisplayWidth; }
iGetImageEncoding()237         int iGetImageEncoding() { return m_iImageEncoding; }
iGetJpegQuality()238         int iGetJpegQuality() { return m_iJpegQuality; }
iGetProxyPort()239         int iGetProxyPort() { return m_iProxyPort; }
iGetRdpAuthType()240         int iGetRdpAuthType() { return m_iRdpAuthType; }
iGetRdpColors()241         int iGetRdpColors() { return m_iRdpColors; }
iGetRdpImageEncoding()242         int iGetRdpImageEncoding() { return m_iRdpImageEncoding; }
iGetRdpJpegQuality()243         int iGetRdpJpegQuality() { return m_iRdpJpegQuality; }
iGetServerPort()244         int iGetServerPort() { return m_iServerPort; }
iGetSmbPort()245         int iGetSmbPort() { return m_iSmbPort; }
iGetUsedShareGroups()246         int iGetUsedShareGroups() { return m_iUsedShareGroups; }
iGetVncDisplayNumber()247         int iGetVncDisplayNumber() { return m_iVncDisplayNumber; }
iGetVncImageEncoding()248         int iGetVncImageEncoding() { return m_iVncImageEncoding; }
iGetVncJpegQuality()249         int iGetVncJpegQuality() { return m_iVncJpegQuality; }
iGetXdmBroadcastPort()250         int iGetXdmBroadcastPort() { return m_iXdmBroadcastPort; }
iGetXdmListPort()251         int iGetXdmListPort() { return m_iXdmListPort; }
iGetXdmQueryPort()252         int iGetXdmQueryPort() { return m_iXdmQueryPort; }
253 
sGetCommandLine()254         wxString sGetCommandLine() { return m_sCommandLine; }
sGetCupsPath()255         wxString sGetCupsPath() { return m_sCupsPath; }
sGetFileName()256         wxString sGetFileName() { return m_sFileName; }
sGetGuestUser()257         wxString sGetGuestUser() { return m_sGuestUser; }
sGetGuestPassword()258         wxString sGetGuestPassword() { return m_sGuestPassword; }
sGetKbdLayoutLanguage()259         wxString sGetKbdLayoutLanguage() { return m_sKbdLayoutLanguage; }
sGetName()260         wxString sGetName() { return m_sName; }
sGetPassword()261         wxString sGetPassword() { return m_sPassword; }
sGetProxyCommand()262         wxString sGetProxyCommand() { return m_sProxyCommand; }
sGetProxyHost()263         wxString sGetProxyHost() { return m_sProxyHost; }
sGetProxyPass()264         wxString sGetProxyPass() { return m_sProxyPass; }
sGetProxyUser()265         wxString sGetProxyUser() { return m_sProxyUser; }
sGetRdpApplication()266         wxString sGetRdpApplication() { return m_sRdpApplication; }
sGetRdpDomain()267         wxString sGetRdpDomain() { return m_sRdpDomain; }
sGetRdpHostName()268         wxString sGetRdpHostName() { return m_sRdpHostName; }
sGetRdpPassword()269         wxString sGetRdpPassword() { return m_sRdpPassword; }
sGetRdpUsername()270         wxString sGetRdpUsername() { return m_sRdpUsername; }
sGetServerHost()271         wxString sGetServerHost() { return m_sServerHost; }
sGetSshKey()272         wxString sGetSshKey() { return m_sSshKey; }
sGetUsername()273         wxString sGetUsername() { return m_sUsername; }
sGetVncHostName()274         wxString sGetVncHostName() { return m_sVncHostName; }
sGetVncPassword()275         wxString sGetVncPassword() { return m_sVncPassword; }
sGetXdmListHost()276         wxString sGetXdmListHost() { return m_sXdmListHost; }
sGetXdmQueryHost()277         wxString sGetXdmQueryHost() { return m_sXdmQueryHost; }
278 
279         // For use by MySession
280         wxString sGetSessionUser();
281         wxString sGetSessionPassword();
282 
aGetUsedShareGroups()283         wxArrayString aGetUsedShareGroups() { return m_aUsedShareGroups; }
aGetShareGroups()284         ArrayOfShareGroups aGetShareGroups() { return m_aShareGroups; }
aGetUsbForwards()285         ArrayOfUsbForwards aGetUsbForwards() { return m_aUsbForwards; }
286 
bSetDisableBackingstore(const bool b)287         void bSetDisableBackingstore(const bool b) { m_bDisableBackingstore = b; }
bSetDisableComposite(const bool b)288         void bSetDisableComposite(const bool b) { m_bDisableComposite = b; }
bSetDisableRender(const bool b)289         void bSetDisableRender(const bool b) { m_bDisableRender = b; }
bSetDisableShmem(const bool b)290         void bSetDisableShmem(const bool b) { m_bDisableShmem = b; }
bSetDisableShpix(const bool b)291         void bSetDisableShpix(const bool b) { m_bDisableShpix = b; }
bSetDisableTaint(const bool b)292         void bSetDisableTaint(const bool b) { m_bDisableTaint = b; }
bSetDisableTcpNoDelay(const bool b)293         void bSetDisableTcpNoDelay(const bool b) { m_bDisableTcpNoDelay = b; }
bSetDisableXagent(const bool b)294         void bSetDisableXagent(const bool b) { m_bDisableXagent = b; }
bSetDisableZlibCompression(const bool b)295         void bSetDisableZlibCompression(const bool b) { m_bDisableZlibCompression = b; }
bSetEnableMultimedia(const bool b)296         void bSetEnableMultimedia(const bool b) { m_bEnableMultimedia = b; }
bSetEnableSmbSharing(const bool b)297         void bSetEnableSmbSharing(const bool b) { m_bEnableSmbSharing = b; }
bSetEnableSSL(const bool b)298         void bSetEnableSSL(const bool b) { m_bEnableSSL = b; }
bSetExternalProxy(const bool b)299         void bSetExternalProxy(const bool b) { m_bExternalProxy = b; }
bSetGuestMode(const bool b)300         void bSetGuestMode(const bool b) { m_bGuestMode = b; }
bSetKbdLayoutOther(const bool b)301         void bSetKbdLayoutOther(const bool b) { m_bKbdLayoutOther = b; }
bSetProxyPassRemember(const bool b)302         void bSetProxyPassRemember(const bool b) { m_bProxyPassRemember = b; }
bSetRdpCache(const bool b)303         void bSetRdpCache(const bool b) { m_bRdpCache = b; }
bSetRdpRememberPassword(const bool b)304         void bSetRdpRememberPassword(const bool b) { m_bRdpRememberPassword = b; }
bSetRdpRunApplication(const bool b)305         void bSetRdpRunApplication(const bool b) { m_bRdpRunApplication = b; }
bSetRememberPassword(const bool b)306         void bSetRememberPassword(const bool b) { m_bRememberPassword = b; }
bSetRemoveOldSessionFiles(const bool b)307         void bSetRemoveOldSessionFiles(const bool b) { m_bRemoveOldSessionFiles = b; }
bSetRunConsole(const bool b)308         void bSetRunConsole(const bool b) { m_bRunConsole = b; }
bSetRunXclients(const bool b)309         void bSetRunXclients(const bool b) { m_bRunXclients = b; }
bSetUseCups(const bool b)310         void bSetUseCups(const bool b) { m_bUseCups = b; }
bSetUseCustomImageEncoding(const bool b)311         void bSetUseCustomImageEncoding(const bool b) { m_bUseCustomImageEncoding = b; }
bSetUseProxy(const bool b)312         void bSetUseProxy(const bool b) { m_bUseProxy = b; }
bSetUseSmartCard(const bool b)313         void bSetUseSmartCard(const bool b) { m_bUseSmartCard = b; }
bSetVirtualDesktop(const bool b)314         void bSetVirtualDesktop(const bool b) { m_bVirtualDesktop = b; }
bSetVncRememberPassword(const bool b)315         void bSetVncRememberPassword(const bool b) { m_bVncRememberPassword = b; }
bSetVncUseNxAuth(const bool b)316         void bSetVncUseNxAuth(const bool b) { m_bVncUseNxAuth = b; }
bSetEnableUSBIP(const bool b)317         void bSetEnableUSBIP(const bool b) { m_bEnableUSBIP = b; }
bSetDisableDirectDraw(const bool b)318         void bSetDisableDirectDraw(const bool b) { m_bDisableDirectDraw = b; }
bSetDisableDeferredUpdates(const bool b)319         void bSetDisableDeferredUpdates(const bool b) { m_bDisableDeferredUpdates = b; }
bSetGrabKeyboard(const bool b)320         void bSetGrabKeyboard(const bool b) { m_bGrabKeyboard = b; }
321 
eSetCacheDisk(MyXmlConfig::CacheDisk e)322         void eSetCacheDisk(MyXmlConfig::CacheDisk e) { m_eCacheDisk = e; }
eSetCacheMemory(MyXmlConfig::CacheMemory e)323         void eSetCacheMemory(MyXmlConfig::CacheMemory e) { m_eCacheMemory = e; }
eSetConnectionSpeed(MyXmlConfig::ConnectionSpeed e)324         void eSetConnectionSpeed(MyXmlConfig::ConnectionSpeed e) { m_eConnectionSpeed = e; }
eSetDesktopType(MyXmlConfig::DesktopType e)325         void eSetDesktopType(MyXmlConfig::DesktopType e) { m_eDesktopType = e; }
eSetDisplayType(MyXmlConfig::DisplayType e)326         void eSetDisplayType(MyXmlConfig::DisplayType e) { m_eDisplayType = e; }
eSetSessionType(MyXmlConfig::SessionType e)327         void eSetSessionType(MyXmlConfig::SessionType e) { m_eSessionType = e; }
eSetXdmMode(MyXmlConfig::XdmMode e)328         void eSetXdmMode(MyXmlConfig::XdmMode e) { m_eXdmMode = e; }
329 
iSetClipFilter(int i)330         void iSetClipFilter(int i) { m_iClipFilter = i; }
iSetCupsPort(int i)331         void iSetCupsPort(int i) { m_iCupsPort = i; }
iSetDisplayHeight(int i)332         void iSetDisplayHeight(int i) { m_iDisplayHeight = i; }
iSetDisplayWidth(int i)333         void iSetDisplayWidth(int i) { m_iDisplayWidth = i; }
iSetImageEncoding(int i)334         void iSetImageEncoding(int i) { m_iImageEncoding = i; }
iSetJpegQuality(int i)335         void iSetJpegQuality(int i) { m_iJpegQuality = i; }
iSetProxyPort(int i)336         void iSetProxyPort(int i) { m_iProxyPort = i; }
iSetRdpAuthType(int i)337         void iSetRdpAuthType(int i) { m_iRdpAuthType = i; }
iSetRdpColors(int i)338         void iSetRdpColors(int i) { m_iRdpColors = i; }
iSetRdpImageEncoding(int i)339         void iSetRdpImageEncoding(int i) { m_iRdpImageEncoding = i; }
iSetRdpJpegQuality(int i)340         void iSetRdpJpegQuality(int i) { m_iRdpJpegQuality = i; }
iSetServerPort(int i)341         void iSetServerPort(int i) { m_iServerPort = i; }
iSetSmbPort(int i)342         void iSetSmbPort(int i) { m_iSmbPort = i; }
iSetUsedShareGroups(int i)343         void iSetUsedShareGroups(int i) { m_iUsedShareGroups = i; }
iSetVncDisplayNumber(int i)344         void iSetVncDisplayNumber(int i) { m_iVncDisplayNumber = i; }
iSetVncImageEncoding(int i)345         void iSetVncImageEncoding(int i) { m_iVncImageEncoding = i; }
iSetVncJpegQuality(int i)346         void iSetVncJpegQuality(int i) { m_iVncJpegQuality = i; }
iSetXdmBroadcastPort(int i)347         void iSetXdmBroadcastPort(int i) { m_iXdmBroadcastPort = i; }
iSetXdmListPort(int i)348         void iSetXdmListPort(int i) { m_iXdmListPort = i; }
iSetXdmQueryPort(int i)349         void iSetXdmQueryPort(int i) { m_iXdmQueryPort = i; }
350 
sSetCommandLine(const wxString & s)351         void sSetCommandLine(const wxString &s) { m_sCommandLine = s; }
sSetCupsPath(const wxString & s)352         void sSetCupsPath(const wxString &s) { m_sCupsPath = s; }
sSetFileName(const wxString & s)353         void sSetFileName(const wxString &s) { m_sFileName = s; }
sSetGuestUser(const wxString & s)354         void sSetGuestUser(const wxString &s) { m_sGuestUser = s; }
sSetGuestPassword(const wxString & s)355         void sSetGuestPassword(const wxString &s) { m_sGuestPassword = s; }
sSetKbdLayoutLanguage(const wxString & s)356         void sSetKbdLayoutLanguage(const wxString &s) { m_sKbdLayoutLanguage = s; }
sSetName(const wxString & s)357         void sSetName(const wxString &s) { m_sName = s; }
sSetPassword(const wxString & s)358         void sSetPassword(const wxString &s) { m_sPassword = s; }
sSetProxyCommand(const wxString & s)359         void sSetProxyCommand(const wxString &s) { m_sProxyCommand = s; }
sSetProxyHost(const wxString & s)360         void sSetProxyHost(const wxString &s) { m_sProxyHost = s; }
sSetProxyPass(const wxString & s)361         void sSetProxyPass(const wxString &s) { m_sProxyPass = s; }
sSetProxyUser(const wxString & s)362         void sSetProxyUser(const wxString &s) { m_sProxyUser = s; }
sSetRdpApplication(const wxString & s)363         void sSetRdpApplication(const wxString &s) { m_sRdpApplication = s; }
sSetRdpDomain(const wxString & s)364         void sSetRdpDomain(const wxString &s) { m_sRdpDomain = s; }
sSetRdpHostName(const wxString & s)365         void sSetRdpHostName(const wxString &s) { m_sRdpHostName = s; }
sSetRdpPassword(const wxString & s)366         void sSetRdpPassword(const wxString &s) { m_sRdpPassword = s; }
sSetRdpUsername(const wxString & s)367         void sSetRdpUsername(const wxString &s) { m_sRdpUsername = s; }
sSetServerHost(const wxString & s)368         void sSetServerHost(const wxString &s) { m_sServerHost = s; }
sSetSshKey(const wxString & s)369         void sSetSshKey(const wxString &s) { m_sSshKey = s; }
sSetVncHostName(const wxString & s)370         void sSetVncHostName(const wxString &s) { m_sVncHostName = s; }
sSetVncPassword(const wxString & s)371         void sSetVncPassword(const wxString &s) { m_sVncPassword = s; }
sSetXdmListHost(const wxString & s)372         void sSetXdmListHost(const wxString &s) { m_sXdmListHost = s; }
sSetXdmQueryHost(const wxString & s)373         void sSetXdmQueryHost(const wxString &s) { m_sXdmQueryHost = s; }
374 
aSetShareGroups(const ArrayOfShareGroups & a)375         void aSetShareGroups(const ArrayOfShareGroups &a) { m_aShareGroups = a; }
aSetUsedShareGroups(const wxArrayString & a)376         void aSetUsedShareGroups(const wxArrayString &a) { m_aUsedShareGroups = a; }
aSetUsbForwards(const ArrayOfUsbForwards & a)377         void aSetUsbForwards(const ArrayOfUsbForwards &a) { m_aUsbForwards = a; }
378 
379         void sSetUsername(const wxString &s);
380 
381         static wxString UrlEsc(const wxString &s);
382 
383     private:
384         static size_t CurlWriteCallback(void *, size_t, size_t, void *);
385 
386     private:
387         // Disable copy constructor
388         MyXmlConfig(const MyXmlConfig &);
389 
390         void init();
391         bool getBool(wxXmlNode *, const wxString &, bool defval = false);
392         long getLong(wxXmlNode *, const wxString &, long defval = 0);
393         bool getLongBool(wxXmlNode *, const wxString &, bool defval = false);
394         wxString getString(wxXmlNode *, const wxString &, const wxString &defval = _T(""));
395         wxString getPassword(wxXmlNode *, const wxString &, const wxString &defval = _T(""));
396         wxString *getStringNew(wxXmlNode *, const wxString &, wxString *defval = NULL);
397         bool cmpShareGroups(const ArrayOfShareGroups, const ArrayOfShareGroups);
398         bool cmpUsbForwards(const ArrayOfUsbForwards, const ArrayOfUsbForwards);
399         bool cmpUsedShareGroups(const wxArrayString, const wxArrayString);
400         ShareGroup &findShare(const wxString &);
401         void bAddOption(wxXmlNode *, const wxString &, const bool);
402         void iAddOption(wxXmlNode *, const wxString &, const long);
403         void iAddOptionBool(wxXmlNode *, const wxString &, const bool);
404         void sAddOption(wxXmlNode *, const wxString &, const wxString &);
405         wxXmlNode *AddGroup(wxXmlNode *, const wxString &);
406         bool loadFromStream(wxInputStream &is, bool);
407         void getDesktopSize(int &dw, int &dh, int &ww, int &wh);
408 
409         // Special: This gets set, if a pre 0.16.173 "Images" section was detected
410         // during reading. If this is set, we inform the user, suggesting a re-check
411         // of his image settings.
412         bool m_bOldConfig;
413 
414         bool m_bDisableBackingstore;
415         bool m_bDisableComposite;
416         bool m_bDisableRender;
417         bool m_bDisableShmem;
418         bool m_bDisableShpix;
419         bool m_bDisableTaint;
420         bool m_bDisableTcpNoDelay;
421         bool m_bDisableXagent;
422         bool m_bDisableZlibCompression;
423         bool m_bEnableMultimedia;
424         bool m_bEnableSmbSharing;
425         bool m_bEnableSSL;
426         bool m_bEnableUSBIP;
427         bool m_bExternalProxy;
428         bool m_bGuestMode;
429         bool m_bKbdLayoutOther;
430         bool m_bProxyPassRemember;
431         bool m_bRdpCache;
432         bool m_bRdpRememberPassword;
433         bool m_bRdpRunApplication;
434         bool m_bWritable;
435         bool m_bRememberPassword;
436         bool m_bRemoveOldSessionFiles;
437         bool m_bRunConsole;
438         bool m_bRunXclients;
439         bool m_bUseCups;
440         bool m_bUseCustomImageEncoding;
441         bool m_bUseProxy;
442         bool m_bUseSmartCard;
443         bool m_bValid;
444         bool m_bVirtualDesktop;
445         bool m_bVncRememberPassword;
446         bool m_bVncUseNxAuth;
447         bool m_bDisableDirectDraw;
448         bool m_bGrabKeyboard;
449         bool m_bDisableDeferredUpdates;
450 
451         int m_iCupsPort;
452         int m_iDisplayHeight;
453         int m_iDisplayWidth;
454         int m_iImageEncoding;
455         int m_iJpegQuality;
456         int m_iProxyPort;
457         int m_iRdpAuthType;
458         int m_iRdpColors;
459         int m_iRdpImageEncoding;
460         int m_iRdpJpegQuality;
461         int m_iServerPort;
462         int m_iSmbPort;
463         int m_iUsedShareGroups;
464         int m_iVncDisplayNumber;
465         int m_iVncImageEncoding;
466         int m_iVncJpegQuality;
467         int m_iXdmBroadcastPort;
468         int m_iXdmListPort;
469         int m_iXdmQueryPort;
470         int m_iClipFilter;
471 
472         wxString m_sCommandLine;
473         wxString m_sCupsPath;
474         wxString m_sFileName;
475         wxString m_sGuestPassword;
476         wxString m_sGuestUser;
477         wxString m_sKbdLayoutLanguage;
478         wxString m_sName;
479         wxString m_sPassword;
480         wxString m_sProxyCommand;
481         wxString m_sProxyHost;
482         wxString m_sProxyPass;
483         wxString m_sProxyUser;
484         wxString m_sRdpApplication;
485         wxString m_sRdpDomain;
486         wxString m_sRdpHostName;
487         wxString m_sRdpPassword;
488         wxString m_sRdpUsername;
489         wxString m_sServerHost;
490         wxString m_sSshKey;
491         wxString m_sUsername;
492         wxString m_sVncHostName;
493         wxString m_sVncPassword;
494         wxString m_sXdmListHost;
495         wxString m_sXdmQueryHost;
496 
497         ConnectionSpeed m_eConnectionSpeed;
498         DesktopType m_eDesktopType;
499         DisplayType m_eDisplayType;
500         SessionType m_eSessionType;
501         CacheMemory m_eCacheMemory;
502         CacheDisk m_eCacheDisk;
503         XdmMode m_eXdmMode;
504 
505         ArrayOfShareGroups m_aShareGroups;
506         wxArrayString m_aUsedShareGroups;
507         ArrayOfUsbForwards m_aUsbForwards;
508 
509         MyXmlConfig *saved;
510         wxString *m_pMd5Password;
511         wxString *m_pClrPassword;
512 };
513 
514 #endif
515 // _MYXMLCONFIG_H_
516