From 99c821357d41dfc6b7d0f9e9d40d132ab6925ae6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc-Andr=C3=A9=20Moreau?= Date: Wed, 8 May 2013 22:14:16 -0400 Subject: [PATCH] freerdp: add /multitouch option --- client/common/cmdline.c | 11 +++++++++++ include/freerdp/settings.h | 4 +++- libfreerdp/common/settings.c | 8 ++++++++ 3 files changed, 22 insertions(+), 1 deletion(-) diff --git a/client/common/cmdline.c b/client/common/cmdline.c index b3b900153..92cc70f33 100644 --- a/client/common/cmdline.c +++ b/client/common/cmdline.c @@ -89,6 +89,7 @@ COMMAND_LINE_ARGUMENT_A args[] = { "smartcard", COMMAND_LINE_VALUE_REQUIRED, NULL, NULL, NULL, -1, NULL, "Redirect smartcard device" }, { "printer", COMMAND_LINE_VALUE_REQUIRED, NULL, NULL, NULL, -1, NULL, "Redirect printer device" }, { "usb", COMMAND_LINE_VALUE_REQUIRED, NULL, NULL, NULL, -1, NULL, "Redirect USB device" }, + { "multitouch", COMMAND_LINE_VALUE_BOOL, NULL, BoolValueFalse, NULL, -1, NULL, "Redirect multitouch input" }, { "echo", COMMAND_LINE_VALUE_FLAG, NULL, NULL, NULL, -1, "echo", "Echo channel" }, { "fonts", COMMAND_LINE_VALUE_BOOL, NULL, BoolValueFalse, NULL, -1, NULL, "Smooth fonts (ClearType)" }, { "aero", COMMAND_LINE_VALUE_BOOL, NULL, NULL, BoolValueFalse, -1, NULL, "Desktop composition" }, @@ -568,6 +569,16 @@ int freerdp_client_command_line_post_filter(void* context, COMMAND_LINE_ARGUMENT free(p); } + CommandLineSwitchCase(arg, "multitouch") + { + char* p[1]; + int count = 1; + + settings->MultiTouchInput = TRUE; + + p[0] = "rdpei"; + freerdp_client_add_dynamic_channel(settings, count, p); + } CommandLineSwitchCase(arg, "echo") { char* p[1]; diff --git a/include/freerdp/settings.h b/include/freerdp/settings.h index 6c76735b2..035c9c7f1 100644 --- a/include/freerdp/settings.h +++ b/include/freerdp/settings.h @@ -675,6 +675,7 @@ typedef struct _RDPDR_PARALLEL RDPDR_PARALLEL; #define FreeRDP_ImeFileName 2628 #define FreeRDP_UnicodeInput 2629 #define FreeRDP_FastPathInput 2630 +#define FreeRDP_MultiTouchInput 2631 #define FreeRDP_BrushSupportLevel 2688 #define FreeRDP_GlyphSupportLevel 2752 #define FreeRDP_GlyphCache 2753 @@ -1097,7 +1098,8 @@ struct rdp_settings ALIGN64 char* ImeFileName; /* 2628 */ ALIGN64 BOOL UnicodeInput; /* 2629 */ ALIGN64 BOOL FastPathInput; /* 2630 */ - UINT64 padding2688[2688 - 2631]; /* 2631 */ + ALIGN64 BOOL MultiTouchInput; /* 2631 */ + UINT64 padding2688[2688 - 2632]; /* 2632 */ /* Brush Capabilities */ ALIGN64 UINT32 BrushSupportLevel; /* 2688 */ diff --git a/libfreerdp/common/settings.c b/libfreerdp/common/settings.c index 421d9af44..ca3a14e42 100644 --- a/libfreerdp/common/settings.c +++ b/libfreerdp/common/settings.c @@ -645,6 +645,10 @@ BOOL freerdp_get_param_bool(rdpSettings* settings, int id) return settings->FastPathInput; break; + case FreeRDP_MultiTouchInput: + return settings->MultiTouchInput; + break; + case FreeRDP_SoundBeepsEnabled: return settings->SoundBeepsEnabled; break; @@ -1081,6 +1085,10 @@ int freerdp_set_param_bool(rdpSettings* settings, int id, BOOL param) settings->FastPathInput = param; break; + case FreeRDP_MultiTouchInput: + settings->MultiTouchInput = param; + break; + case FreeRDP_SoundBeepsEnabled: settings->SoundBeepsEnabled = param; break;