libfreerdp-core: added more fine-tuned performance flag options

This commit is contained in:
Marc-André Moreau 2011-12-16 12:04:09 -05:00
parent 120ab2f681
commit 338359eb36
5 changed files with 41 additions and 3 deletions

View File

@ -275,6 +275,10 @@ struct rdp_settings
uint8 received_caps[32];
uint8 order_support[32];
boolean surface_commands;
boolean disable_wallpaper;
boolean disable_full_window_drag;
boolean disable_menu_animations;
boolean disable_theming;
uint32 multifrag_max_request_size;
/* Certificate */

View File

@ -663,7 +663,7 @@ void gcc_write_client_core_data(STREAM* s, rdpSettings *settings)
connectionType = 0;
earlyCapabilityFlags = RNS_UD_CS_SUPPORT_ERRINFO_PDU;
if ((settings->performance_flags & ~PERF_FLAGS_LAN) == PERF_FLAG_NONE)
if (settings->rfx_codec)
{
earlyCapabilityFlags |= RNS_UD_CS_VALID_CONNECTION_TYPE;
connectionType = CONNECTION_TYPE_LAN;

View File

@ -78,8 +78,6 @@
#define PERF_ENABLE_FONT_SMOOTHING 0x00000080
#define PERF_ENABLE_DESKTOP_COMPOSITION 0x00000100
#define PERF_FLAGS_LAN (PERF_ENABLE_FONT_SMOOTHING | PERF_ENABLE_DESKTOP_COMPOSITION)
/* Connection Types */
#define CONNECTION_TYPE_MODEM 0x01
#define CONNECTION_TYPE_BROADBAND_LOW 0x02

View File

@ -97,6 +97,10 @@ rdpSettings* settings_new(void* instance)
settings->large_pointer = true;
settings->pointer_cache_size = 32;
settings->sound_beeps = true;
settings->disable_wallpaper = false;
settings->disable_full_window_drag = false;
settings->disable_menu_animations = false;
settings->disable_theming = false;
settings->draw_gdi_plus = false;

View File

@ -89,7 +89,11 @@ int freerdp_parse_args(rdpSettings* settings, int argc, char** argv,
" --rfx: enable RemoteFX\n"
" --rfx-mode: RemoteFX operational flags (v[ideo], i[mage]), default is video\n"
" --nsc: enable NSCodec (experimental)\n"
" --disable-wallpaper: disables wallpaper\n"
" --composition: enable desktop composition\n"
" --disable-full-window-drag: disables full window drag\n"
" --disable-menu-animations: disables menu animations\n"
" --disable-theming: disables theming\n"
" --no-rdp: disable Standard RDP encryption\n"
" --no-tls: disable TLS encryption\n"
" --no-nla: disable network level authentication\n"
@ -388,6 +392,22 @@ int freerdp_parse_args(rdpSettings* settings, int argc, char** argv,
{
settings->smooth_fonts = true;
}
else if (strcmp("--disable-wallpaper", argv[index]) == 0)
{
settings->disable_wallpaper = true;
}
else if (strcmp("--disable-full-window-drag", argv[index]) == 0)
{
settings->disable_full_window_drag = true;
}
else if (strcmp("--disable-menu-animations", argv[index]) == 0)
{
settings->disable_menu_animations = true;
}
else if (strcmp("--disable-theming", argv[index]) == 0)
{
settings->disable_theming = true;
}
else if (strcmp("--composition", argv[index]) == 0)
{
settings->desktop_composition = true;
@ -614,6 +634,18 @@ int freerdp_parse_args(rdpSettings* settings, int argc, char** argv,
if (settings->desktop_composition)
settings->performance_flags |= PERF_ENABLE_DESKTOP_COMPOSITION;
if (settings->disable_wallpaper)
settings->performance_flags |= PERF_DISABLE_WALLPAPER;
if (settings->disable_full_window_drag)
settings->performance_flags |= PERF_DISABLE_FULLWINDOWDRAG;
if (settings->disable_menu_animations)
settings->performance_flags |= PERF_DISABLE_MENUANIMATIONS;
if (settings->disable_theming)
settings->performance_flags |= PERF_DISABLE_THEMING;
return index;
}
else