RDP5 Experience patch by Jeroen Meijer <jeroen@oldambt7.com>

git-svn-id: svn://svn.code.sf.net/p/rdesktop/code/trunk/rdesktop@636 423420c4-83ab-492f-b58f-81f9feb106b5
This commit is contained in:
Michael Gernoth 2004-03-15 14:49:12 +00:00
parent 697f58a48a
commit b9145c2384
4 changed files with 42 additions and 2 deletions

View File

@ -243,6 +243,14 @@ enum RDP_INPUT_DEVICE
#define RDP_LOGON_BLOB 0x0100
#define RDP_LOGON_LEAVE_AUDIO 0x2000
#define RDP5_DISABLE_NOTHING 0x00
#define RDP5_NO_WALLPAPER 0x01
#define RDP5_NO_FULLWINDOWDRAG 0x02
#define RDP5_NO_MENUANIMATIONS 0x04
#define RDP5_NO_THEMING 0x08
#define RDP5_NO_CURSOR_SHADOW 0x20
#define RDP5_NO_CURSORSETTINGS 0x40 /* disables cursor blinking */
/* Keymap flags */
#define MapRightShiftMask (1<<0)
#define MapLeftShiftMask (1<<1)

View File

@ -107,6 +107,15 @@ More than 8 bpp are only supported when connecting to Windows XP
(up to 16 bpp) or newer. Note that the colour depth may also be
limited by the server configuration.
.TP
.BR "-x <experience>"
Alters default bandwith performance behaviour for RDP5. By default only
theming is enabled, and all other options are disabled (corresponding
to modem (56 Kbps)). Setting experience to b[roadband] enables menu
animations and full window dragging. Setting experience to l[an] will
also enable the desktop wallpaper. Setting experience to m[odem]
disables all (including theming). Experience can also be a hexidecimal
number containing the flags.
.TP
.BR "-r <device>"
Enable redirection of the specified device on the client, such
that it appears on the server. Note that the allowed

View File

@ -71,6 +71,7 @@ BOOL g_numlock_sync = False;
extern BOOL g_owncolmap;
extern BOOL g_ownbackstore;
extern uint32 g_embed_wnd;
uint32 g_rdp5_performanceflags = RDP5_NO_WALLPAPER | RDP5_NO_FULLWINDOWDRAG | RDP5_NO_MENUANIMATIONS;
#ifdef WITH_RDPSND
BOOL g_rdpsnd = False;
@ -121,6 +122,7 @@ usage(char *program)
fprintf(stderr, " -N: enable numlock syncronization\n");
fprintf(stderr, " -X: embed into another window with a given id.\n");
fprintf(stderr, " -a: connection colour depth\n");
fprintf(stderr, " -x: RDP5 experience (m[odem 28.8], b[roadband], l[an] or hex number)\n");
fprintf(stderr, " -r: enable specified device redirection (this flag can be repeated)\n");
fprintf(stderr,
" '-r comport:COM1=/dev/ttyS0': enable serial redirection of /dev/ttyS0 to COM1\n");
@ -257,7 +259,7 @@ main(int argc, char *argv[])
#define VNCOPT
#endif
while ((c = getopt(argc, argv, VNCOPT "u:d:s:c:p:n:k:g:fbBeEmCDKS:T:NX:a:r:045h?")) != -1)
while ((c = getopt(argc, argv, VNCOPT "u:d:s:c:p:n:k:g:fbBeEmCDKS:T:NX:a:x:r:045h?")) != -1)
{
switch (c)
{
@ -418,6 +420,26 @@ main(int argc, char *argv[])
}
break;
case 'x':
if (strncmp("modem", optarg, 1) == 0)
{
g_rdp5_performanceflags = RDP5_NO_WALLPAPER | RDP5_NO_FULLWINDOWDRAG | RDP5_NO_MENUANIMATIONS | RDP5_NO_THEMING;
}
else if (strncmp("broadband", optarg, 1) == 0)
{
g_rdp5_performanceflags = RDP5_NO_WALLPAPER;
}
else if (strncmp("lan", optarg, 1) == 0)
{
g_rdp5_performanceflags = RDP5_DISABLE_NOTHING;
}
else
{
g_rdp5_performanceflags = strtol(optarg, NULL, 16);
}
break;
case 'r':
if (strncmp("sound", optarg, 5) == 0)

3
rdp.c
View File

@ -29,6 +29,7 @@ extern BOOL g_encryption;
extern BOOL g_desktop_save;
extern BOOL g_use_rdp5;
extern uint16 g_server_rdp_version;
extern uint32 g_rdp5_performanceflags;
extern int g_server_bpp;
uint8 *g_next_packet;
@ -297,7 +298,7 @@ rdp_send_logon_info(uint32 flags, char *domain, char *user,
out_uint32(s, 0);
out_uint32_le(s, 0xffffffc4);
out_uint32_le(s, 0xfffffffe);
out_uint32_le(s, 0x0f);
out_uint32_le(s, g_rdp5_performanceflags);
out_uint32(s, 0);