libfreerdp-core: started refactoring rdpSettings

This commit is contained in:
Marc-André Moreau 2012-11-07 10:33:06 -05:00
parent d4045895ef
commit ebc09d17d8
19 changed files with 225 additions and 185 deletions

View File

@ -339,8 +339,8 @@ void xf_gdi_patblt(rdpContext* context, PATBLT_ORDER* patblt)
brush = &patblt->brush; brush = &patblt->brush;
xf_set_rop3(xfi, gdi_rop3_code(patblt->bRop)); xf_set_rop3(xfi, gdi_rop3_code(patblt->bRop));
foreColor = freerdp_color_convert_rgb(patblt->foreColor, context_->settings->color_depth, xfi->bpp, xfi->clrconv); foreColor = freerdp_color_convert_rgb(patblt->foreColor, context_->settings->ColorDepth, xfi->bpp, xfi->clrconv);
backColor = freerdp_color_convert_rgb(patblt->backColor, context_->settings->color_depth, xfi->bpp, xfi->clrconv); backColor = freerdp_color_convert_rgb(patblt->backColor, context_->settings->ColorDepth, xfi->bpp, xfi->clrconv);
if (brush->style == GDI_BS_SOLID) if (brush->style == GDI_BS_SOLID)
{ {
@ -444,7 +444,7 @@ void xf_gdi_opaque_rect(rdpContext* context, OPAQUE_RECT_ORDER* opaque_rect)
xfContext* context_ = (xfContext*) context; xfContext* context_ = (xfContext*) context;
xfInfo* xfi = context_->xfi; xfInfo* xfi = context_->xfi;
color = freerdp_color_convert_var(opaque_rect->color, context_->settings->color_depth, xfi->bpp, xfi->clrconv); color = freerdp_color_convert_var(opaque_rect->color, context_->settings->ColorDepth, xfi->bpp, xfi->clrconv);
XSetFunction(xfi->display, xfi->gc, GXcopy); XSetFunction(xfi->display, xfi->gc, GXcopy);
XSetFillStyle(xfi->display, xfi->gc, FillSolid); XSetFillStyle(xfi->display, xfi->gc, FillSolid);
@ -475,7 +475,7 @@ void xf_gdi_multi_opaque_rect(rdpContext* context, MULTI_OPAQUE_RECT_ORDER* mult
xfContext* context_ = (xfContext*) context; xfContext* context_ = (xfContext*) context;
xfInfo* xfi = context_->xfi; xfInfo* xfi = context_->xfi;
color = freerdp_color_convert_var(multi_opaque_rect->color, context_->settings->color_depth, xfi->bpp, xfi->clrconv); color = freerdp_color_convert_var(multi_opaque_rect->color, context_->settings->ColorDepth, xfi->bpp, xfi->clrconv);
XSetFunction(xfi->display, xfi->gc, GXcopy); XSetFunction(xfi->display, xfi->gc, GXcopy);
XSetFillStyle(xfi->display, xfi->gc, FillSolid); XSetFillStyle(xfi->display, xfi->gc, FillSolid);
@ -514,7 +514,7 @@ void xf_gdi_line_to(rdpContext* context, LINE_TO_ORDER* line_to)
xfInfo* xfi = context_->xfi; xfInfo* xfi = context_->xfi;
xf_set_rop2(xfi, line_to->bRop2); xf_set_rop2(xfi, line_to->bRop2);
color = freerdp_color_convert_rgb(line_to->penColor, context_->settings->color_depth, xfi->bpp, xfi->clrconv); color = freerdp_color_convert_rgb(line_to->penColor, context_->settings->ColorDepth, xfi->bpp, xfi->clrconv);
XSetFillStyle(xfi->display, xfi->gc, FillSolid); XSetFillStyle(xfi->display, xfi->gc, FillSolid);
XSetForeground(xfi->display, xfi->gc, color); XSetForeground(xfi->display, xfi->gc, color);
@ -562,7 +562,7 @@ void xf_gdi_polyline(rdpContext* context, POLYLINE_ORDER* polyline)
xfInfo* xfi = context_->xfi; xfInfo* xfi = context_->xfi;
xf_set_rop2(xfi, polyline->bRop2); xf_set_rop2(xfi, polyline->bRop2);
color = freerdp_color_convert_var(polyline->penColor, context_->settings->color_depth, xfi->bpp, xfi->clrconv); color = freerdp_color_convert_var(polyline->penColor, context_->settings->ColorDepth, xfi->bpp, xfi->clrconv);
XSetFillStyle(xfi->display, xfi->gc, FillSolid); XSetFillStyle(xfi->display, xfi->gc, FillSolid);
XSetForeground(xfi->display, xfi->gc, color); XSetForeground(xfi->display, xfi->gc, color);
@ -651,8 +651,8 @@ void xf_gdi_mem3blt(rdpContext* context, MEM3BLT_ORDER* mem3blt)
brush = &mem3blt->brush; brush = &mem3blt->brush;
bitmap = (xfBitmap*) mem3blt->bitmap; bitmap = (xfBitmap*) mem3blt->bitmap;
xf_set_rop3(xfi, gdi_rop3_code(mem3blt->bRop)); xf_set_rop3(xfi, gdi_rop3_code(mem3blt->bRop));
foreColor = freerdp_color_convert_rgb(mem3blt->foreColor, context_->settings->color_depth, xfi->bpp, xfi->clrconv); foreColor = freerdp_color_convert_rgb(mem3blt->foreColor, context_->settings->ColorDepth, xfi->bpp, xfi->clrconv);
backColor = freerdp_color_convert_rgb(mem3blt->backColor, context_->settings->color_depth, xfi->bpp, xfi->clrconv); backColor = freerdp_color_convert_rgb(mem3blt->backColor, context_->settings->ColorDepth, xfi->bpp, xfi->clrconv);
if (brush->style == GDI_BS_PATTERN) if (brush->style == GDI_BS_PATTERN)
{ {
@ -721,7 +721,7 @@ void xf_gdi_polygon_sc(rdpContext* context, POLYGON_SC_ORDER* polygon_sc)
xfInfo* xfi = ((xfContext*) context)->xfi; xfInfo* xfi = ((xfContext*) context)->xfi;
xf_set_rop2(xfi, polygon_sc->bRop2); xf_set_rop2(xfi, polygon_sc->bRop2);
brush_color = freerdp_color_convert_var(polygon_sc->brushColor, ((xfContext*)context)->settings->color_depth, xfi->bpp, xfi->clrconv); brush_color = freerdp_color_convert_var(polygon_sc->brushColor, ((xfContext*)context)->settings->ColorDepth, xfi->bpp, xfi->clrconv);
npoints = polygon_sc->numPoints + 1; npoints = polygon_sc->numPoints + 1;
points = malloc(sizeof(XPoint) * npoints); points = malloc(sizeof(XPoint) * npoints);
@ -778,8 +778,8 @@ void xf_gdi_polygon_cb(rdpContext* context, POLYGON_CB_ORDER* polygon_cb)
brush = &(polygon_cb->brush); brush = &(polygon_cb->brush);
xf_set_rop2(xfi, polygon_cb->bRop2); xf_set_rop2(xfi, polygon_cb->bRop2);
foreColor = freerdp_color_convert_rgb(polygon_cb->foreColor, ((xfContext*)context)->settings->color_depth, xfi->bpp, xfi->clrconv); foreColor = freerdp_color_convert_rgb(polygon_cb->foreColor, ((xfContext*) context)->settings->ColorDepth, xfi->bpp, xfi->clrconv);
backColor = freerdp_color_convert_rgb(polygon_cb->backColor, ((xfContext*)context)->settings->color_depth, xfi->bpp, xfi->clrconv); backColor = freerdp_color_convert_rgb(polygon_cb->backColor, ((xfContext*) context)->settings->ColorDepth, xfi->bpp, xfi->clrconv);
npoints = polygon_cb->numPoints + 1; npoints = polygon_cb->numPoints + 1;
points = malloc(sizeof(XPoint) * npoints); points = malloc(sizeof(XPoint) * npoints);

View File

@ -50,7 +50,7 @@ void xf_Bitmap_New(rdpContext* context, rdpBitmap* bitmap)
if (bitmap->data != NULL) if (bitmap->data != NULL)
{ {
data = freerdp_image_convert(bitmap->data, NULL, data = freerdp_image_convert(bitmap->data, NULL,
bitmap->width, bitmap->height, context_->settings->color_depth, xfi->bpp, xfi->clrconv); bitmap->width, bitmap->height, context_->settings->ColorDepth, xfi->bpp, xfi->clrconv);
if (bitmap->ephemeral != TRUE) if (bitmap->ephemeral != TRUE)
{ {
@ -338,12 +338,12 @@ void xf_Glyph_BeginDraw(rdpContext* context, int x, int y, int width, int height
xfInfo* xfi = context_->xfi; xfInfo* xfi = context_->xfi;
bgcolor = (xfi->clrconv->invert)? bgcolor = (xfi->clrconv->invert)?
freerdp_color_convert_var_bgr(bgcolor, context_->settings->color_depth, xfi->bpp, xfi->clrconv): freerdp_color_convert_var_bgr(bgcolor, context_->settings->ColorDepth, xfi->bpp, xfi->clrconv):
freerdp_color_convert_var_rgb(bgcolor, context_->settings->color_depth, xfi->bpp, xfi->clrconv); freerdp_color_convert_var_rgb(bgcolor, context_->settings->ColorDepth, xfi->bpp, xfi->clrconv);
fgcolor = (xfi->clrconv->invert)? fgcolor = (xfi->clrconv->invert)?
freerdp_color_convert_var_bgr(fgcolor, context_->settings->color_depth, xfi->bpp, xfi->clrconv): freerdp_color_convert_var_bgr(fgcolor, context_->settings->ColorDepth, xfi->bpp, xfi->clrconv):
freerdp_color_convert_var_rgb(fgcolor, context_->settings->color_depth, xfi->bpp, xfi->clrconv); freerdp_color_convert_var_rgb(fgcolor, context_->settings->ColorDepth, xfi->bpp, xfi->clrconv);
XSetFunction(xfi->display, xfi->gc, GXcopy); XSetFunction(xfi->display, xfi->gc, GXcopy);
XSetFillStyle(xfi->display, xfi->gc, FillSolid); XSetFillStyle(xfi->display, xfi->gc, FillSolid);

View File

@ -33,9 +33,9 @@
void xf_kbd_init(xfInfo* xfi) void xf_kbd_init(xfInfo* xfi)
{ {
xf_kbd_clear(xfi); xf_kbd_clear(xfi);
xfi->keyboard_layout_id = xfi->instance->settings->kbd_layout; xfi->keyboard_layout_id = xfi->instance->settings->KeyboardLayout;
xfi->keyboard_layout_id = freerdp_keyboard_init(xfi->keyboard_layout_id); xfi->keyboard_layout_id = freerdp_keyboard_init(xfi->keyboard_layout_id);
xfi->instance->settings->kbd_layout = xfi->keyboard_layout_id; xfi->instance->settings->KeyboardLayout = xfi->keyboard_layout_id;
} }
void xf_kbd_clear(xfInfo* xfi) void xf_kbd_clear(xfInfo* xfi)

View File

@ -57,18 +57,18 @@ BOOL xf_detect_monitors(xfInfo* xfi, rdpSettings* settings)
if (settings->fullscreen) if (settings->fullscreen)
{ {
settings->width = WidthOfScreen(xfi->screen); settings->DesktopWidth = WidthOfScreen(xfi->screen);
settings->height = HeightOfScreen(xfi->screen); settings->DesktopHeight = HeightOfScreen(xfi->screen);
} }
else if (settings->workarea) else if (settings->workarea)
{ {
settings->width = xfi->workArea.width; settings->DesktopWidth = xfi->workArea.width;
settings->height = xfi->workArea.height; settings->DesktopHeight = xfi->workArea.height;
} }
else if (settings->percent_screen) else if (settings->percent_screen)
{ {
settings->width = (xfi->workArea.width * settings->percent_screen) / 100; settings->DesktopWidth = (xfi->workArea.width * settings->percent_screen) / 100;
settings->height = (xfi->workArea.height * settings->percent_screen) / 100; settings->DesktopHeight = (xfi->workArea.height * settings->percent_screen) / 100;
} }
if (settings->fullscreen != TRUE && settings->workarea != TRUE) if (settings->fullscreen != TRUE && settings->workarea != TRUE)
@ -121,20 +121,20 @@ BOOL xf_detect_monitors(xfInfo* xfi, rdpSettings* settings)
vscreen->area.bottom = MAX(vscreen->monitors[i].area.bottom, vscreen->area.bottom); vscreen->area.bottom = MAX(vscreen->monitors[i].area.bottom, vscreen->area.bottom);
} }
//if no monitor information is present then make sure variables are set accordingly /* if no monitor information is present then make sure variables are set accordingly */
if (settings->num_monitors == 0) if (settings->num_monitors == 0)
{ {
vscreen->area.left = 0; vscreen->area.left = 0;
vscreen->area.right = settings->width -1; vscreen->area.right = settings->DesktopWidth -1;
vscreen->area.top = 0; vscreen->area.top = 0;
vscreen->area.bottom = settings->height - 1; vscreen->area.bottom = settings->DesktopHeight - 1;
} }
if (settings->num_monitors) if (settings->num_monitors)
{ {
settings->width = vscreen->area.right - vscreen->area.left + 1; settings->DesktopWidth = vscreen->area.right - vscreen->area.left + 1;
settings->height = vscreen->area.bottom - vscreen->area.top + 1; settings->DesktopHeight = vscreen->area.bottom - vscreen->area.top + 1;
} }
return TRUE; return TRUE;

View File

@ -237,11 +237,11 @@ void xf_hw_desktop_resize(rdpContext* context)
if (xfi->fullscreen != TRUE) if (xfi->fullscreen != TRUE)
{ {
xfi->width = settings->width; xfi->width = settings->DesktopWidth;
xfi->height = settings->height; xfi->height = settings->DesktopHeight;
if (xfi->window) if (xfi->window)
xf_ResizeDesktopWindow(xfi, xfi->window, settings->width, settings->height); xf_ResizeDesktopWindow(xfi, xfi->window, settings->DesktopWidth, settings->DesktopHeight);
if (xfi->primary) if (xfi->primary)
{ {
@ -748,7 +748,7 @@ BOOL xf_post_connect(freerdp* instance)
} }
else else
{ {
xfi->srcBpp = instance->settings->color_depth; xfi->srcBpp = instance->settings->ColorDepth;
xf_gdi_register_update_callbacks(instance->update); xf_gdi_register_update_callbacks(instance->update);
xfi->hdc = gdi_CreateDC(xfi->clrconv, xfi->bpp); xfi->hdc = gdi_CreateDC(xfi->clrconv, xfi->bpp);
@ -775,8 +775,8 @@ BOOL xf_post_connect(freerdp* instance)
nsc_context_set_cpu_opt(nsc_context, cpu); nsc_context_set_cpu_opt(nsc_context, cpu);
#endif #endif
xfi->width = instance->settings->width; xfi->width = instance->settings->DesktopWidth;
xfi->height = instance->settings->height; xfi->height = instance->settings->DesktopHeight;
xf_create_window(xfi); xf_create_window(xfi);

View File

@ -259,11 +259,11 @@ int freerdp_client_parse_command_line_arguments(int argc, char** argv, rdpSettin
} }
CommandLineSwitchCase(arg, "w") CommandLineSwitchCase(arg, "w")
{ {
settings->width = atoi(arg->Value); settings->DesktopWidth = atoi(arg->Value);
} }
CommandLineSwitchCase(arg, "h") CommandLineSwitchCase(arg, "h")
{ {
settings->height = atoi(arg->Value); settings->DesktopHeight = atoi(arg->Value);
} }
CommandLineSwitchCase(arg, "size") CommandLineSwitchCase(arg, "size")
{ {
@ -274,8 +274,8 @@ int freerdp_client_parse_command_line_arguments(int argc, char** argv, rdpSettin
if (p) if (p)
{ {
*p = '\0'; *p = '\0';
settings->width = atoi(str); settings->DesktopWidth = atoi(str);
settings->height = atoi(&p[1]); settings->DesktopHeight = atoi(&p[1]);
} }
free(str); free(str);
@ -298,7 +298,7 @@ int freerdp_client_parse_command_line_arguments(int argc, char** argv, rdpSettin
} }
CommandLineSwitchCase(arg, "bpp") CommandLineSwitchCase(arg, "bpp")
{ {
settings->color_depth = atoi(arg->Value); settings->ColorDepth = atoi(arg->Value);
} }
CommandLineSwitchCase(arg, "u") CommandLineSwitchCase(arg, "u")
{ {
@ -426,7 +426,7 @@ int freerdp_client_parse_command_line_arguments(int argc, char** argv, rdpSettin
{ {
settings->rfx_codec = TRUE; settings->rfx_codec = TRUE;
settings->fastpath_output = TRUE; settings->fastpath_output = TRUE;
settings->color_depth = 32; settings->ColorDepth = 32;
settings->performance_flags = PERF_FLAG_NONE; settings->performance_flags = PERF_FLAG_NONE;
settings->large_pointer = TRUE; settings->large_pointer = TRUE;
} }

View File

@ -510,11 +510,11 @@ BOOL freerdp_client_populate_settings_from_rdp_file(rdpFile* file, rdpSettings*
if (~((size_t) file->FullAddress)) if (~((size_t) file->FullAddress))
settings->hostname = file->FullAddress; settings->hostname = file->FullAddress;
if (~file->DesktopWidth) if (~file->DesktopWidth)
settings->width = file->DesktopWidth; settings->DesktopWidth = file->DesktopWidth;
if (~file->DesktopHeight) if (~file->DesktopHeight)
settings->height = file->DesktopHeight; settings->DesktopHeight = file->DesktopHeight;
if (~file->SessionBpp) if (~file->SessionBpp)
settings->color_depth = file->SessionBpp; settings->ColorDepth = file->SessionBpp;
if (~file->ConnectToConsole) if (~file->ConnectToConsole)
settings->console_session = file->ConnectToConsole; settings->console_session = file->ConnectToConsole;
if (~file->AdministrativeSession) if (~file->AdministrativeSession)

View File

@ -187,6 +187,13 @@ typedef struct rdp_key rdpKey;
/* Channels */ /* Channels */
struct _RDPDR_DRIVE
{
char* name;
char* path;
};
typedef struct _RDPDR_DRIVE RDPDR_DRIVE;
struct rdp_channel struct rdp_channel
{ {
char name[8]; /* ui sets */ char name[8]; /* ui sets */
@ -256,26 +263,31 @@ struct rdp_monitor
struct rdp_settings struct rdp_settings
{ {
ALIGN64 void* instance; /* 0 */ ALIGN64 void* instance; /* 0 */
UINT64 paddingA[16 - 1]; /* 1 */ UINT64 padding001[16 - 1]; /* 1 */
/* Core Protocol Parameters */ /* Core Protocol Parameters */
ALIGN64 UINT32 width; /* 16 */ ALIGN64 UINT32 RdpVersion; /* 16 */
ALIGN64 UINT32 height; /* 17 */ ALIGN64 UINT32 DesktopWidth; /* 17 */
ALIGN64 UINT32 rdp_version; /* 18 */ ALIGN64 UINT32 DesktopHeight; /* 18 */
ALIGN64 UINT32 color_depth; /* 19 */ ALIGN64 UINT32 ColorDepth; /* 19 */
ALIGN64 UINT32 kbd_layout; /* 20 */ ALIGN64 UINT32 KeyboardLayout; /* 20 */
ALIGN64 UINT32 kbd_type; /* 21 */ ALIGN64 UINT32 KeyboardType; /* 21 */
ALIGN64 UINT32 kbd_subtype; /* 22 */ ALIGN64 UINT32 KeyboardSubType; /* 22 */
ALIGN64 UINT32 kbd_fn_keys; /* 23 */ ALIGN64 UINT32 KeyboardFunctionKey; /* 23 */
ALIGN64 UINT32 client_build; /* 24 */ ALIGN64 char* ImeFileName; /* 24 */
ALIGN64 UINT32 requested_protocols; /* 25 */ ALIGN64 UINT32 ClientBuild; /* 25 */
ALIGN64 UINT32 selected_protocol; /* 26 */ ALIGN64 char* ClientName; /* 26 */
ALIGN64 UINT32 encryption_method; /* 27 */ ALIGN64 char* ClientDigProductId; /* 27 */
ALIGN64 UINT32 encryption_level; /* 28 */
ALIGN64 BOOL authentication; /* 29 */ /* Protocol Security Negotiation */
ALIGN64 UINT32 negotiationFlags; /* 30 */ ALIGN64 UINT32 requested_protocols; /* 28 */
ALIGN64 BOOL security_layer_negotiation; /* 31 */ ALIGN64 UINT32 selected_protocol; /* 29 */
UINT64 paddingB[48 - 32]; /* 32 */ ALIGN64 UINT32 encryption_method; /* 30 */
ALIGN64 UINT32 encryption_level; /* 31 */
ALIGN64 BOOL authentication; /* 32 */
ALIGN64 UINT32 negotiationFlags; /* 33 */
ALIGN64 BOOL security_layer_negotiation; /* 34 */
UINT64 padding002[48 - 35]; /* 35 */
/* Connection Settings */ /* Connection Settings */
ALIGN64 UINT32 port; /* 48 */ ALIGN64 UINT32 port; /* 48 */
@ -295,10 +307,10 @@ struct rdp_settings
ALIGN64 DWORD password_cookie_length; /* 62 */ ALIGN64 DWORD password_cookie_length; /* 62 */
ALIGN64 char* kerberos_kdc; /* 63 */ ALIGN64 char* kerberos_kdc; /* 63 */
ALIGN64 char* kerberos_realm; /* 64 */ ALIGN64 char* kerberos_realm; /* 64 */
ALIGN64 BOOL ts_gateway; /* 65 */ ALIGN64 void* unused65; /* 65 */
ALIGN64 char* tsg_hostname; /* 66 */ ALIGN64 void* unused66; /* 66 */
ALIGN64 char* tsg_username; /* 67 */ ALIGN64 void* unused67; /* 67 */
ALIGN64 char* tsg_password; /* 68 */ ALIGN64 void* unused68; /* 68 */
ALIGN64 BOOL local; /* 69 */ ALIGN64 BOOL local; /* 69 */
ALIGN64 BOOL authentication_only; /* 70 */ ALIGN64 BOOL authentication_only; /* 70 */
ALIGN64 BOOL from_stdin; /* 71 */ ALIGN64 BOOL from_stdin; /* 71 */
@ -307,10 +319,7 @@ struct rdp_settings
ALIGN64 char* preconnection_blob; /* 74 */ ALIGN64 char* preconnection_blob; /* 74 */
ALIGN64 char* computer_name; /* 75 */ ALIGN64 char* computer_name; /* 75 */
ALIGN64 char* connection_file; /* 76 */ ALIGN64 char* connection_file; /* 76 */
ALIGN64 char* tsg_domain; /* 77 */ UINT64 padding003[80 - 77]; /* 77 */
ALIGN64 BOOL tsg_same_credentials; /* 78 */
ALIGN64 UINT32 tsg_port; /* 79 */
//UINT64 paddingC[80 - 80]; /* 80 */
/* User Interface Parameters */ /* User Interface Parameters */
ALIGN64 BOOL sw_gdi; /* 80 */ ALIGN64 BOOL sw_gdi; /* 80 */
@ -322,7 +331,7 @@ struct rdp_settings
ALIGN64 BOOL mouse_motion; /* 86 */ ALIGN64 BOOL mouse_motion; /* 86 */
ALIGN64 char* window_title; /* 87 */ ALIGN64 char* window_title; /* 87 */
ALIGN64 UINT64 parent_window_xid; /* 88 */ ALIGN64 UINT64 parent_window_xid; /* 88 */
UINT64 paddingD[112 - 89]; /* 89 */ UINT64 padding004[112 - 89]; /* 89 */
/* Internal Parameters */ /* Internal Parameters */
ALIGN64 char* home_path; /* 112 */ ALIGN64 char* home_path; /* 112 */
@ -334,19 +343,19 @@ struct rdp_settings
ALIGN64 char* current_path; /* 118 */ ALIGN64 char* current_path; /* 118 */
ALIGN64 char* development_path; /* 119 */ ALIGN64 char* development_path; /* 119 */
ALIGN64 BOOL development_mode; /* 120 */ ALIGN64 BOOL development_mode; /* 120 */
UINT64 paddingE[144 - 121]; /* 121 */ UINT64 padding005[144 - 121]; /* 121 */
/* Security */ /* Security */
ALIGN64 BOOL encryption; /* 144 */ ALIGN64 BOOL encryption; /* 144 */
ALIGN64 BOOL tls_security; /* 145 */ ALIGN64 BOOL tls_security; /* 145 */
ALIGN64 BOOL nla_security; /* 146 */ ALIGN64 BOOL nla_security; /* 146 */
ALIGN64 BOOL rdp_security; /* 147 */ ALIGN64 BOOL rdp_security; /* 147 */
ALIGN64 UINT32 ntlm_version; /* 148 */ ALIGN64 BOOL ext_security; /* 148 */
ALIGN64 BOOL salted_checksum; /* 149 */ ALIGN64 UINT32 ntlm_version; /* 149 */
ALIGN64 BOOL ext_security; /* 150 */ ALIGN64 BOOL salted_checksum; /* 150 */
ALIGN64 BOOL mstsc_cookie_mode; /* 151 */ ALIGN64 BOOL mstsc_cookie_mode; /* 151 */
ALIGN64 UINT32 cookie_max_length; /* 152 */ ALIGN64 UINT32 cookie_max_length; /* 152 */
UINT64 paddingF[160 - 153]; /* 153 */ UINT64 padding006[160 - 153]; /* 153 */
/* Session */ /* Session */
ALIGN64 BOOL console_audio; /* 160 */ ALIGN64 BOOL console_audio; /* 160 */
@ -354,23 +363,23 @@ struct rdp_settings
ALIGN64 UINT32 redirected_session_id; /* 162 */ ALIGN64 UINT32 redirected_session_id; /* 162 */
ALIGN64 BOOL audio_playback; /* 163 */ ALIGN64 BOOL audio_playback; /* 163 */
ALIGN64 BOOL audio_capture; /* 164 */ ALIGN64 BOOL audio_capture; /* 164 */
UINT64 paddingG[176 - 165]; /* 165 */ UINT64 padding007[176 - 165]; /* 165 */
/* Output Control */ /* Output Control */
ALIGN64 BOOL refresh_rect; /* 176 */ ALIGN64 BOOL refresh_rect; /* 176 */
ALIGN64 BOOL suppress_output; /* 177 */ ALIGN64 BOOL suppress_output; /* 177 */
ALIGN64 BOOL desktop_resize; /* 178 */ ALIGN64 BOOL desktop_resize; /* 178 */
UINT64 paddingH[192 - 179]; /* 179 */ UINT64 padding008[192 - 179]; /* 179 */
/* Reconnection */ /* Reconnection */
ALIGN64 BOOL auto_reconnection; /* 192 */ ALIGN64 BOOL auto_reconnection; /* 192 */
ALIGN64 ARC_CS_PRIVATE_PACKET* client_auto_reconnect_cookie; /* 193 */ ALIGN64 ARC_CS_PRIVATE_PACKET* client_auto_reconnect_cookie; /* 193 */
ALIGN64 ARC_SC_PRIVATE_PACKET* server_auto_reconnect_cookie; /* 194 */ ALIGN64 ARC_SC_PRIVATE_PACKET* server_auto_reconnect_cookie; /* 194 */
UINT64 paddingI[208 - 195]; /* 195 */ UINT64 padding009[208 - 195]; /* 195 */
/* Time Zone */ /* Time Zone */
ALIGN64 TIME_ZONE_INFO* client_time_zone; /* 208 */ ALIGN64 TIME_ZONE_INFO* client_time_zone; /* 208 */
UINT64 paddingJ[216 - 209]; /* 209 */ UINT64 padding010[216 - 209]; /* 209 */
/* Capabilities */ /* Capabilities */
ALIGN64 UINT32 os_major_type; /* 216 */ ALIGN64 UINT32 os_major_type; /* 216 */
@ -388,9 +397,9 @@ struct rdp_settings
ALIGN64 BOOL disable_full_window_drag; /* 228 */ ALIGN64 BOOL disable_full_window_drag; /* 228 */
ALIGN64 BOOL disable_menu_animations; /* 229 */ ALIGN64 BOOL disable_menu_animations; /* 229 */
ALIGN64 BOOL disable_theming; /* 230 */ ALIGN64 BOOL disable_theming; /* 230 */
ALIGN64 UINT32 connection_type; /* 231 */ ALIGN64 UINT32 ConnectionType; /* 231 */
ALIGN64 UINT32 multifrag_max_request_size; /* 232 */ ALIGN64 UINT32 multifrag_max_request_size; /* 232 */
UINT64 paddingK[248 - 233]; /* 233 */ UINT64 padding011[248 - 233]; /* 233 */
/* Certificate */ /* Certificate */
ALIGN64 char* cert_file; /* 248 */ ALIGN64 char* cert_file; /* 248 */
@ -406,7 +415,7 @@ struct rdp_settings
ALIGN64 char* rdp_key_file; /* 258 */ ALIGN64 char* rdp_key_file; /* 258 */
ALIGN64 rdpKey* server_key; /* 259 */ ALIGN64 rdpKey* server_key; /* 259 */
ALIGN64 char* certificate_name; /* 260 */ ALIGN64 char* certificate_name; /* 260 */
UINT64 paddingL[280 - 261]; /* 261 */ UINT64 padding012[280 - 261]; /* 261 */
/* Codecs */ /* Codecs */
ALIGN64 BOOL rfx_codec; /* 280 */ ALIGN64 BOOL rfx_codec; /* 280 */
@ -420,27 +429,27 @@ struct rdp_settings
ALIGN64 UINT32 jpeg_quality; /* 288 */ ALIGN64 UINT32 jpeg_quality; /* 288 */
ALIGN64 UINT32 v3_codec_id; /* 289 */ ALIGN64 UINT32 v3_codec_id; /* 289 */
ALIGN64 BOOL rfx_codec_only; /* 290 */ ALIGN64 BOOL rfx_codec_only; /* 290 */
UINT64 paddingM[296 - 291]; /* 291 */ UINT64 padding013[296 - 291]; /* 291 */
/* Recording */ /* Recording */
ALIGN64 BOOL dump_rfx; /* 296 */ ALIGN64 BOOL dump_rfx; /* 296 */
ALIGN64 BOOL play_rfx; /* 297 */ ALIGN64 BOOL play_rfx; /* 297 */
ALIGN64 char* dump_rfx_file; /* 298 */ ALIGN64 char* dump_rfx_file; /* 298 */
ALIGN64 char* play_rfx_file; /* 299 */ ALIGN64 char* play_rfx_file; /* 299 */
UINT64 paddingN[312 - 300]; /* 300 */ UINT64 padding014[312 - 300]; /* 300 */
/* RemoteApp */ /* RemoteApp */
ALIGN64 BOOL remote_app; /* 312 */ ALIGN64 BOOL remote_app; /* 312 */
ALIGN64 UINT32 num_icon_caches; /* 313 */ ALIGN64 UINT32 num_icon_caches; /* 313 */
ALIGN64 UINT32 num_icon_cache_entries; /* 314 */ ALIGN64 UINT32 num_icon_cache_entries; /* 314 */
ALIGN64 BOOL rail_langbar_supported; /* 315 */ ALIGN64 BOOL rail_langbar_supported; /* 315 */
UINT64 paddingO[320 - 316]; /* 316 */ UINT64 padding015[320 - 316]; /* 316 */
/* Pointer */ /* Pointer */
ALIGN64 BOOL large_pointer; /* 320 */ ALIGN64 BOOL large_pointer; /* 320 */
ALIGN64 BOOL color_pointer; /* 321 */ ALIGN64 BOOL color_pointer; /* 321 */
ALIGN64 UINT32 pointer_cache_size; /* 322 */ ALIGN64 UINT32 pointer_cache_size; /* 322 */
UINT64 paddingP[328 - 323]; /* 323 */ UINT64 padding016[328 - 323]; /* 323 */
/* Bitmap Cache */ /* Bitmap Cache */
ALIGN64 BOOL bitmap_cache; /* 328 */ ALIGN64 BOOL bitmap_cache; /* 328 */
@ -449,35 +458,63 @@ struct rdp_settings
ALIGN64 UINT32 bitmapCacheV2NumCells; /* 331 */ ALIGN64 UINT32 bitmapCacheV2NumCells; /* 331 */
ALIGN64 BITMAP_CACHE_V2_CELL_INFO* bitmapCacheV2CellInfo; /* 332 */ ALIGN64 BITMAP_CACHE_V2_CELL_INFO* bitmapCacheV2CellInfo; /* 332 */
ALIGN64 BOOL allow_cache_waiting_list; /* 333 */ ALIGN64 BOOL allow_cache_waiting_list; /* 333 */
UINT64 paddingQ[344 - 334]; /* 334 */ UINT64 padding017[344 - 334]; /* 334 */
/* Offscreen Bitmap Cache */ /* Offscreen Bitmap Cache */
ALIGN64 BOOL offscreen_bitmap_cache; /* 344 */ ALIGN64 BOOL offscreen_bitmap_cache; /* 344 */
ALIGN64 UINT32 offscreen_bitmap_cache_size; /* 345 */ ALIGN64 UINT32 offscreen_bitmap_cache_size; /* 345 */
ALIGN64 UINT32 offscreen_bitmap_cache_entries; /* 346 */ ALIGN64 UINT32 offscreen_bitmap_cache_entries; /* 346 */
UINT64 paddingR[352 - 347]; /* 347 */ UINT64 padding018[352 - 347]; /* 347 */
/* Glyph Cache */ /* Glyph Cache */
ALIGN64 void* unused352; /* 352 */ ALIGN64 void* unused352; /* 352 */
ALIGN64 UINT32 glyphSupportLevel; /* 353 */ ALIGN64 UINT32 glyphSupportLevel; /* 353 */
ALIGN64 GLYPH_CACHE_DEFINITION* glyphCache; /* 354 */ ALIGN64 GLYPH_CACHE_DEFINITION* glyphCache; /* 354 */
ALIGN64 GLYPH_CACHE_DEFINITION* fragCache; /* 355 */ ALIGN64 GLYPH_CACHE_DEFINITION* fragCache; /* 355 */
UINT64 paddingS[360 - 356]; /* 356 */ UINT64 padding019[360 - 356]; /* 356 */
/* Draw Nine Grid */ /* Draw Nine Grid */
ALIGN64 BOOL draw_nine_grid; /* 360 */ ALIGN64 BOOL draw_nine_grid; /* 360 */
ALIGN64 UINT32 draw_nine_grid_cache_size; /* 361 */ ALIGN64 UINT32 draw_nine_grid_cache_size; /* 361 */
ALIGN64 UINT32 draw_nine_grid_cache_entries; /* 362 */ ALIGN64 UINT32 draw_nine_grid_cache_entries; /* 362 */
UINT64 paddingT[368 - 363]; /* 363 */ UINT64 padding020[368 - 363]; /* 363 */
/* Draw GDI+ */ /* Draw GDI+ */
ALIGN64 BOOL draw_gdi_plus; /* 368 */ ALIGN64 BOOL draw_gdi_plus; /* 368 */
ALIGN64 BOOL draw_gdi_plus_cache; /* 369 */ ALIGN64 BOOL draw_gdi_plus_cache; /* 369 */
UINT64 paddingU[376 - 370]; /* 370 */ UINT64 padding021[376 - 370]; /* 370 */
/* Desktop Composition */ /* Desktop Composition */
ALIGN64 BOOL desktop_composition; /* 376 */ ALIGN64 BOOL desktop_composition; /* 376 */
UINT64 paddingV[384 - 377]; /* 377 */ UINT64 padding022[384 - 377]; /* 377 */
/* TS Gateway */
ALIGN64 BOOL ts_gateway; /* 384 */
ALIGN64 UINT32 tsg_port; /* 385 */
ALIGN64 char* tsg_hostname; /* 386 */
ALIGN64 char* tsg_username; /* 387 */
ALIGN64 char* tsg_password; /* 388 */
ALIGN64 char* tsg_domain; /* 389 */
ALIGN64 BOOL tsg_same_credentials; /* 390 */
UINT64 padding023[400 - 391]; /* 391 */
/* Device Redirection */
ALIGN64 BOOL DeviceRedirection;
/* Drive Redirection */
ALIGN64 BOOL RedirectDrives;
/* Smartcard Redirection */
ALIGN64 BOOL RedirectSmartCards;
/* Printer Redirection */
ALIGN64 BOOL RedirectPrinters;
/* Serial Port Redirection */
ALIGN64 BOOL RedirectSerialPorts;
/* Parallel Port Redirection */
ALIGN64 BOOL RedirectParallelPorts;
/* Channels */ /* Channels */
ALIGN64 int num_channels; ALIGN64 int num_channels;

View File

@ -35,7 +35,7 @@
struct _RDP_PLUGIN_DATA struct _RDP_PLUGIN_DATA
{ {
UINT16 size; DWORD size;
void* data[4]; void* data[4];
}; };
typedef struct _RDP_PLUGIN_DATA RDP_PLUGIN_DATA; typedef struct _RDP_PLUGIN_DATA RDP_PLUGIN_DATA;

View File

@ -107,7 +107,7 @@ void update_gdi_cache_bitmap_v2(rdpContext* context, CACHE_BITMAP_V2_ORDER* cach
if (cache_bitmap_v2->bitmapBpp == 0) if (cache_bitmap_v2->bitmapBpp == 0)
{ {
/* Workaround for Windows 8 bug where bitmapBpp is not set */ /* Workaround for Windows 8 bug where bitmapBpp is not set */
cache_bitmap_v2->bitmapBpp = context->instance->settings->color_depth; cache_bitmap_v2->bitmapBpp = context->instance->settings->ColorDepth;
} }
bitmap->Decompress(context, bitmap, bitmap->Decompress(context, bitmap,
@ -139,7 +139,7 @@ void update_gdi_cache_bitmap_v3(rdpContext* context, CACHE_BITMAP_V3_ORDER* cach
if (cache_bitmap_v3->bitmapData.bpp == 0) if (cache_bitmap_v3->bitmapData.bpp == 0)
{ {
/* Workaround for Windows 8 bug where bitmapBpp is not set */ /* Workaround for Windows 8 bug where bitmapBpp is not set */
cache_bitmap_v3->bitmapData.bpp = context->instance->settings->color_depth; cache_bitmap_v3->bitmapData.bpp = context->instance->settings->ColorDepth;
} }
bitmap->Decompress(context, bitmap, bitmap->Decompress(context, bitmap,

View File

@ -216,10 +216,10 @@ void rdp_read_bitmap_capability_set(STREAM* s, UINT16 length, rdpSettings* setti
stream_seek_UINT16(s); /* multipleRectangleSupport (2 bytes) */ stream_seek_UINT16(s); /* multipleRectangleSupport (2 bytes) */
stream_seek_UINT16(s); /* pad2OctetsB (2 bytes) */ stream_seek_UINT16(s); /* pad2OctetsB (2 bytes) */
if (!settings->server_mode && preferredBitsPerPixel != settings->color_depth) if (!settings->server_mode && preferredBitsPerPixel != settings->ColorDepth)
{ {
/* The client must respect the actual color depth used by the server */ /* The client must respect the actual color depth used by the server */
settings->color_depth = preferredBitsPerPixel; settings->ColorDepth = preferredBitsPerPixel;
} }
if (desktopResizeFlag == FALSE) if (desktopResizeFlag == FALSE)
@ -228,8 +228,8 @@ void rdp_read_bitmap_capability_set(STREAM* s, UINT16 length, rdpSettings* setti
if (!settings->server_mode && settings->desktop_resize) if (!settings->server_mode && settings->desktop_resize)
{ {
/* The server may request a different desktop size during Deactivation-Reactivation sequence */ /* The server may request a different desktop size during Deactivation-Reactivation sequence */
settings->width = desktopWidth; settings->DesktopWidth = desktopWidth;
settings->height = desktopHeight; settings->DesktopHeight = desktopHeight;
} }
} }
@ -251,8 +251,8 @@ void rdp_write_bitmap_capability_set(STREAM* s, rdpSettings* settings)
drawingFlags |= DRAW_ALLOW_SKIP_ALPHA; drawingFlags |= DRAW_ALLOW_SKIP_ALPHA;
if (settings->rdp_version > 5) if (settings->RdpVersion > 5)
preferredBitsPerPixel = settings->color_depth; preferredBitsPerPixel = settings->ColorDepth;
else else
preferredBitsPerPixel = 8; preferredBitsPerPixel = 8;
@ -262,8 +262,8 @@ void rdp_write_bitmap_capability_set(STREAM* s, rdpSettings* settings)
stream_write_UINT16(s, 1); /* receive1BitPerPixel (2 bytes) */ stream_write_UINT16(s, 1); /* receive1BitPerPixel (2 bytes) */
stream_write_UINT16(s, 1); /* receive4BitsPerPixel (2 bytes) */ stream_write_UINT16(s, 1); /* receive4BitsPerPixel (2 bytes) */
stream_write_UINT16(s, 1); /* receive8BitsPerPixel (2 bytes) */ stream_write_UINT16(s, 1); /* receive8BitsPerPixel (2 bytes) */
stream_write_UINT16(s, settings->width); /* desktopWidth (2 bytes) */ stream_write_UINT16(s, settings->DesktopWidth); /* desktopWidth (2 bytes) */
stream_write_UINT16(s, settings->height); /* desktopHeight (2 bytes) */ stream_write_UINT16(s, settings->DesktopHeight); /* desktopHeight (2 bytes) */
stream_write_UINT16(s, 0); /* pad2Octets (2 bytes) */ stream_write_UINT16(s, 0); /* pad2Octets (2 bytes) */
stream_write_UINT16(s, desktopResizeFlag); /* desktopResizeFlag (2 bytes) */ stream_write_UINT16(s, desktopResizeFlag); /* desktopResizeFlag (2 bytes) */
stream_write_UINT16(s, 1); /* bitmapCompressionFlag (2 bytes) */ stream_write_UINT16(s, 1); /* bitmapCompressionFlag (2 bytes) */
@ -407,7 +407,7 @@ void rdp_write_bitmap_cache_capability_set(STREAM* s, rdpSettings* settings)
header = rdp_capability_set_start(s); header = rdp_capability_set_start(s);
bpp = (settings->color_depth + 7) / 8; bpp = (settings->ColorDepth + 7) / 8;
stream_write_UINT32(s, 0); /* pad1 (4 bytes) */ stream_write_UINT32(s, 0); /* pad1 (4 bytes) */
stream_write_UINT32(s, 0); /* pad2 (4 bytes) */ stream_write_UINT32(s, 0); /* pad2 (4 bytes) */
@ -678,10 +678,10 @@ void rdp_read_input_capability_set(STREAM* s, UINT16 length, rdpSettings* settin
if (settings->server_mode) if (settings->server_mode)
{ {
stream_read_UINT32(s, settings->kbd_layout); /* keyboardLayout (4 bytes) */ stream_read_UINT32(s, settings->KeyboardLayout); /* keyboardLayout (4 bytes) */
stream_read_UINT32(s, settings->kbd_type); /* keyboardType (4 bytes) */ stream_read_UINT32(s, settings->KeyboardType); /* keyboardType (4 bytes) */
stream_read_UINT32(s, settings->kbd_subtype); /* keyboardSubType (4 bytes) */ stream_read_UINT32(s, settings->KeyboardSubType); /* keyboardSubType (4 bytes) */
stream_read_UINT32(s, settings->kbd_fn_keys); /* keyboardFunctionKeys (4 bytes) */ stream_read_UINT32(s, settings->KeyboardFunctionKey); /* keyboardFunctionKeys (4 bytes) */
} }
else else
{ {
@ -735,10 +735,10 @@ void rdp_write_input_capability_set(STREAM* s, rdpSettings* settings)
stream_write_UINT16(s, inputFlags); /* inputFlags (2 bytes) */ stream_write_UINT16(s, inputFlags); /* inputFlags (2 bytes) */
stream_write_UINT16(s, 0); /* pad2OctetsA (2 bytes) */ stream_write_UINT16(s, 0); /* pad2OctetsA (2 bytes) */
stream_write_UINT32(s, settings->kbd_layout); /* keyboardLayout (4 bytes) */ stream_write_UINT32(s, settings->KeyboardLayout); /* keyboardLayout (4 bytes) */
stream_write_UINT32(s, settings->kbd_type); /* keyboardType (4 bytes) */ stream_write_UINT32(s, settings->KeyboardType); /* keyboardType (4 bytes) */
stream_write_UINT32(s, settings->kbd_subtype); /* keyboardSubType (4 bytes) */ stream_write_UINT32(s, settings->KeyboardSubType); /* keyboardSubType (4 bytes) */
stream_write_UINT32(s, settings->kbd_fn_keys); /* keyboardFunctionKeys (4 bytes) */ stream_write_UINT32(s, settings->KeyboardFunctionKey); /* keyboardFunctionKeys (4 bytes) */
stream_write_zero(s, 64); /* imeFileName (64 bytes) */ stream_write_zero(s, 64); /* imeFileName (64 bytes) */
rdp_capability_set_finish(s, header, CAPSET_TYPE_INPUT); rdp_capability_set_finish(s, header, CAPSET_TYPE_INPUT);
@ -2061,7 +2061,7 @@ void rdp_write_confirm_active(STREAM* s, rdpSettings* settings)
rdp_write_bitmap_capability_set(s, settings); rdp_write_bitmap_capability_set(s, settings);
rdp_write_order_capability_set(s, settings); rdp_write_order_capability_set(s, settings);
if (settings->rdp_version >= 5) if (settings->RdpVersion >= 5)
rdp_write_bitmap_cache_v2_capability_set(s, settings); rdp_write_bitmap_cache_v2_capability_set(s, settings);
else else
rdp_write_bitmap_cache_capability_set(s, settings); rdp_write_bitmap_cache_capability_set(s, settings);

View File

@ -503,8 +503,8 @@ BOOL rdp_client_connect_demand_active(rdpRdp* rdp, STREAM* s)
UINT16 width; UINT16 width;
UINT16 height; UINT16 height;
width = rdp->settings->width; width = rdp->settings->DesktopWidth;
height = rdp->settings->height; height = rdp->settings->DesktopHeight;
stream_get_mark(s, mark); stream_get_mark(s, mark);
@ -531,7 +531,7 @@ BOOL rdp_client_connect_demand_active(rdpRdp* rdp, STREAM* s)
* The server may request a different desktop size during Deactivation-Reactivation sequence. * The server may request a different desktop size during Deactivation-Reactivation sequence.
* In this case, the UI should be informed and do actual window resizing at this point. * In this case, the UI should be informed and do actual window resizing at this point.
*/ */
if (width != rdp->settings->width || height != rdp->settings->height) if (width != rdp->settings->DesktopWidth || height != rdp->settings->DesktopHeight)
{ {
IFCALL(rdp->update->DesktopResize, rdp->update->context); IFCALL(rdp->update->DesktopResize, rdp->update->context);
} }

View File

@ -61,11 +61,11 @@ BOOL freerdp_connect(freerdp* instance)
IFCALLRET(instance->PreConnect, status, instance); IFCALLRET(instance->PreConnect, status, instance);
if (settings->kbd_layout == KBD_JAPANESE_INPUT_SYSTEM_MS_IME2002) if (settings->KeyboardLayout == KBD_JAPANESE_INPUT_SYSTEM_MS_IME2002)
{ {
settings->kbd_type = 7; settings->KeyboardType = 7;
settings->kbd_subtype = 2; settings->KeyboardSubType = 2;
settings->kbd_fn_keys = 12; settings->KeyboardFunctionKey = 12;
} }
extension_load_and_init_plugins(rdp->extension); extension_load_and_init_plugins(rdp->extension);

View File

@ -481,14 +481,14 @@ BOOL gcc_read_client_core_data(STREAM* s, rdpSettings* settings, UINT16 blockLen
return FALSE; return FALSE;
stream_read_UINT32(s, version); /* version */ stream_read_UINT32(s, version); /* version */
settings->rdp_version = (version == RDP_VERSION_4 ? 4 : 7); settings->RdpVersion = (version == RDP_VERSION_4 ? 4 : 7);
stream_read_UINT16(s, settings->width); /* desktopWidth */ stream_read_UINT16(s, settings->DesktopWidth); /* DesktopWidth */
stream_read_UINT16(s, settings->height); /* desktopHeight */ stream_read_UINT16(s, settings->DesktopHeight); /* DesktopHeight */
stream_read_UINT16(s, colorDepth); /* colorDepth */ stream_read_UINT16(s, colorDepth); /* ColorDepth */
stream_seek_UINT16(s); /* SASSequence (Secure Access Sequence) */ stream_seek_UINT16(s); /* SASSequence (Secure Access Sequence) */
stream_read_UINT32(s, settings->kbd_layout); /* keyboardLayout */ stream_read_UINT32(s, settings->KeyboardLayout); /* KeyboardLayout */
stream_read_UINT32(s, settings->client_build); /* clientBuild */ stream_read_UINT32(s, settings->ClientBuild); /* ClientBuild */
/* clientName (32 bytes, null-terminated unicode, truncated to 15 characters) */ /* clientName (32 bytes, null-terminated unicode, truncated to 15 characters) */
freerdp_UnicodeToAsciiAlloc((WCHAR*) stream_get_tail(s), &str, 32 / 2); freerdp_UnicodeToAsciiAlloc((WCHAR*) stream_get_tail(s), &str, 32 / 2);
@ -497,9 +497,9 @@ BOOL gcc_read_client_core_data(STREAM* s, rdpSettings* settings, UINT16 blockLen
settings->client_hostname[31] = 0; settings->client_hostname[31] = 0;
free(str); free(str);
stream_read_UINT32(s, settings->kbd_type); /* keyboardType */ stream_read_UINT32(s, settings->KeyboardType); /* KeyboardType */
stream_read_UINT32(s, settings->kbd_subtype); /* keyboardSubType */ stream_read_UINT32(s, settings->KeyboardSubType); /* KeyboardSubType */
stream_read_UINT32(s, settings->kbd_fn_keys); /* keyboardFunctionKey */ stream_read_UINT32(s, settings->KeyboardFunctionKey); /* KeyboardFunctionKey */
stream_seek(s, 64); /* imeFileName */ stream_seek(s, 64); /* imeFileName */
@ -573,7 +573,9 @@ BOOL gcc_read_client_core_data(STREAM* s, rdpSettings* settings, UINT16 blockLen
} while (0); } while (0);
if (highColorDepth > 0) if (highColorDepth > 0)
{
color_depth = highColorDepth; color_depth = highColorDepth;
}
else if (postBeta2ColorDepth > 0) else if (postBeta2ColorDepth > 0)
{ {
switch (postBeta2ColorDepth) switch (postBeta2ColorDepth)
@ -616,8 +618,8 @@ BOOL gcc_read_client_core_data(STREAM* s, rdpSettings* settings, UINT16 blockLen
* If we are in server mode, accept client's color depth only if * If we are in server mode, accept client's color depth only if
* it is smaller than ours. This is what Windows server does. * it is smaller than ours. This is what Windows server does.
*/ */
if (color_depth < settings->color_depth || !settings->server_mode) if (color_depth < settings->ColorDepth || !settings->server_mode)
settings->color_depth = color_depth; settings->ColorDepth = color_depth;
return TRUE; return TRUE;
} }
@ -643,18 +645,18 @@ void gcc_write_client_core_data(STREAM* s, rdpSettings* settings)
gcc_write_user_data_header(s, CS_CORE, 216); gcc_write_user_data_header(s, CS_CORE, 216);
version = settings->rdp_version >= 5 ? RDP_VERSION_5_PLUS : RDP_VERSION_4; version = settings->RdpVersion >= 5 ? RDP_VERSION_5_PLUS : RDP_VERSION_4;
clientNameLength = freerdp_AsciiToUnicodeAlloc(settings->client_hostname, &clientName, 0); clientNameLength = freerdp_AsciiToUnicodeAlloc(settings->client_hostname, &clientName, 0);
clientDigProductIdLength = freerdp_AsciiToUnicodeAlloc(settings->client_product_id, &clientDigProductId, 0); clientDigProductIdLength = freerdp_AsciiToUnicodeAlloc(settings->client_product_id, &clientDigProductId, 0);
stream_write_UINT32(s, version); /* version */ stream_write_UINT32(s, version); /* Version */
stream_write_UINT16(s, settings->width); /* desktopWidth */ stream_write_UINT16(s, settings->DesktopWidth); /* DesktopWidth */
stream_write_UINT16(s, settings->height); /* desktopHeight */ stream_write_UINT16(s, settings->DesktopHeight); /* DesktopHeight */
stream_write_UINT16(s, RNS_UD_COLOR_8BPP); /* colorDepth, ignored because of postBeta2ColorDepth */ stream_write_UINT16(s, RNS_UD_COLOR_8BPP); /* ColorDepth, ignored because of postBeta2ColorDepth */
stream_write_UINT16(s, RNS_UD_SAS_DEL); /* SASSequence (Secure Access Sequence) */ stream_write_UINT16(s, RNS_UD_SAS_DEL); /* SASSequence (Secure Access Sequence) */
stream_write_UINT32(s, settings->kbd_layout); /* keyboardLayout */ stream_write_UINT32(s, settings->KeyboardLayout); /* KeyboardLayout */
stream_write_UINT32(s, settings->client_build); /* clientBuild */ stream_write_UINT32(s, settings->ClientBuild); /* ClientBuild */
/* clientName (32 bytes, null-terminated unicode, truncated to 15 characters) */ /* clientName (32 bytes, null-terminated unicode, truncated to 15 characters) */
@ -668,9 +670,9 @@ void gcc_write_client_core_data(STREAM* s, rdpSettings* settings)
stream_write_zero(s, 32 - ((clientNameLength + 1) * 2)); stream_write_zero(s, 32 - ((clientNameLength + 1) * 2));
free(clientName); free(clientName);
stream_write_UINT32(s, settings->kbd_type); /* keyboardType */ stream_write_UINT32(s, settings->KeyboardType); /* KeyboardType */
stream_write_UINT32(s, settings->kbd_subtype); /* keyboardSubType */ stream_write_UINT32(s, settings->KeyboardSubType); /* KeyboardSubType */
stream_write_UINT32(s, settings->kbd_fn_keys); /* keyboardFunctionKey */ stream_write_UINT32(s, settings->KeyboardFunctionKey); /* KeyboardFunctionKey */
stream_write_zero(s, 64); /* imeFileName */ stream_write_zero(s, 64); /* imeFileName */
@ -678,14 +680,14 @@ void gcc_write_client_core_data(STREAM* s, rdpSettings* settings)
stream_write_UINT16(s, 1); /* clientProductID */ stream_write_UINT16(s, 1); /* clientProductID */
stream_write_UINT32(s, 0); /* serialNumber (should be initialized to 0) */ stream_write_UINT32(s, 0); /* serialNumber (should be initialized to 0) */
highColorDepth = MIN(settings->color_depth, 24); highColorDepth = MIN(settings->ColorDepth, 24);
supportedColorDepths = supportedColorDepths =
RNS_UD_24BPP_SUPPORT | RNS_UD_24BPP_SUPPORT |
RNS_UD_16BPP_SUPPORT | RNS_UD_16BPP_SUPPORT |
RNS_UD_15BPP_SUPPORT; RNS_UD_15BPP_SUPPORT;
connectionType = settings->connection_type; connectionType = settings->ConnectionType;
earlyCapabilityFlags = RNS_UD_CS_SUPPORT_ERRINFO_PDU; earlyCapabilityFlags = RNS_UD_CS_SUPPORT_ERRINFO_PDU;
if (settings->rfx_codec) if (settings->rfx_codec)
@ -694,7 +696,7 @@ void gcc_write_client_core_data(STREAM* s, rdpSettings* settings)
if (connectionType != 0) if (connectionType != 0)
earlyCapabilityFlags |= RNS_UD_CS_VALID_CONNECTION_TYPE; earlyCapabilityFlags |= RNS_UD_CS_VALID_CONNECTION_TYPE;
if (settings->color_depth == 32) if (settings->ColorDepth == 32)
{ {
supportedColorDepths |= RNS_UD_32BPP_SUPPORT; supportedColorDepths |= RNS_UD_32BPP_SUPPORT;
earlyCapabilityFlags |= RNS_UD_CS_WANT_32BPP_SESSION; earlyCapabilityFlags |= RNS_UD_CS_WANT_32BPP_SESSION;
@ -730,10 +732,10 @@ BOOL gcc_read_server_core_data(STREAM* s, rdpSettings* settings)
stream_read_UINT32(s, version); /* version */ stream_read_UINT32(s, version); /* version */
stream_read_UINT32(s, clientRequestedProtocols); /* clientRequestedProtocols */ stream_read_UINT32(s, clientRequestedProtocols); /* clientRequestedProtocols */
if (version == RDP_VERSION_4 && settings->rdp_version > 4) if (version == RDP_VERSION_4 && settings->RdpVersion > 4)
settings->rdp_version = 4; settings->RdpVersion = 4;
else if (version == RDP_VERSION_5_PLUS && settings->rdp_version < 5) else if (version == RDP_VERSION_5_PLUS && settings->RdpVersion < 5)
settings->rdp_version = 7; settings->RdpVersion = 7;
return TRUE; return TRUE;
} }
@ -742,7 +744,7 @@ void gcc_write_server_core_data(STREAM* s, rdpSettings* settings)
{ {
gcc_write_user_data_header(s, SC_CORE, 12); gcc_write_user_data_header(s, SC_CORE, 12);
stream_write_UINT32(s, settings->rdp_version == 4 ? RDP_VERSION_4 : RDP_VERSION_5_PLUS); stream_write_UINT32(s, settings->RdpVersion == 4 ? RDP_VERSION_4 : RDP_VERSION_5_PLUS);
stream_write_UINT32(s, settings->requested_protocols); /* clientRequestedProtocols */ stream_write_UINT32(s, settings->requested_protocols); /* clientRequestedProtocols */
} }

View File

@ -289,7 +289,7 @@ BOOL rdp_read_info_packet(STREAM* s, rdpSettings* settings)
} }
stream_seek(s, 2); stream_seek(s, 2);
if (settings->rdp_version >= 5) if (settings->RdpVersion >= 5)
return rdp_read_extended_info_packet(s, settings); /* extraInfo */ return rdp_read_extended_info_packet(s, settings); /* extraInfo */
return TRUE; return TRUE;
@ -407,7 +407,7 @@ void rdp_write_info_packet(STREAM* s, rdpSettings* settings)
if (!usedPasswordCookie) if (!usedPasswordCookie)
free(password); free(password);
if (settings->rdp_version >= 5) if (settings->RdpVersion >= 5)
rdp_write_extended_info_packet(s, settings); /* extraInfo */ rdp_write_extended_info_packet(s, settings); /* extraInfo */
} }

View File

@ -66,16 +66,16 @@ void settings_client_load_hkey_local_machine(rdpSettings* settings)
if (status == ERROR_SUCCESS) if (status == ERROR_SUCCESS)
{ {
REG_QUERY_DWORD_VALUE(hKey, _T("DesktopWidth"), dwType, dwValue, dwSize, settings->width); REG_QUERY_DWORD_VALUE(hKey, _T("DesktopWidth"), dwType, dwValue, dwSize, settings->DesktopWidth);
REG_QUERY_DWORD_VALUE(hKey, _T("DesktopHeight"), dwType, dwValue, dwSize, settings->height); REG_QUERY_DWORD_VALUE(hKey, _T("DesktopHeight"), dwType, dwValue, dwSize, settings->DesktopHeight);
REG_QUERY_BOOL_VALUE(hKey, _T("Fullscreen"), dwType, dwValue, dwSize, settings->fullscreen); REG_QUERY_BOOL_VALUE(hKey, _T("Fullscreen"), dwType, dwValue, dwSize, settings->fullscreen);
REG_QUERY_DWORD_VALUE(hKey, _T("ColorDepth"), dwType, dwValue, dwSize, settings->color_depth); REG_QUERY_DWORD_VALUE(hKey, _T("ColorDepth"), dwType, dwValue, dwSize, settings->ColorDepth);
REG_QUERY_DWORD_VALUE(hKey, _T("KeyboardType"), dwType, dwValue, dwSize, settings->kbd_type); REG_QUERY_DWORD_VALUE(hKey, _T("KeyboardType"), dwType, dwValue, dwSize, settings->KeyboardType);
REG_QUERY_DWORD_VALUE(hKey, _T("KeyboardSubType"), dwType, dwValue, dwSize, settings->kbd_subtype); REG_QUERY_DWORD_VALUE(hKey, _T("KeyboardSubType"), dwType, dwValue, dwSize, settings->KeyboardSubType);
REG_QUERY_DWORD_VALUE(hKey, _T("KeyboardFunctionKeys"), dwType, dwValue, dwSize, settings->kbd_fn_keys); REG_QUERY_DWORD_VALUE(hKey, _T("KeyboardFunctionKeys"), dwType, dwValue, dwSize, settings->KeyboardFunctionKey);
REG_QUERY_DWORD_VALUE(hKey, _T("KeyboardLayout"), dwType, dwValue, dwSize, settings->kbd_layout); REG_QUERY_DWORD_VALUE(hKey, _T("KeyboardLayout"), dwType, dwValue, dwSize, settings->KeyboardLayout);
REG_QUERY_BOOL_VALUE(hKey, _T("ExtSecurity"), dwType, dwValue, dwSize, settings->ext_security); REG_QUERY_BOOL_VALUE(hKey, _T("ExtSecurity"), dwType, dwValue, dwSize, settings->ext_security);
REG_QUERY_BOOL_VALUE(hKey, _T("NlaSecurity"), dwType, dwValue, dwSize, settings->nla_security); REG_QUERY_BOOL_VALUE(hKey, _T("NlaSecurity"), dwType, dwValue, dwSize, settings->nla_security);
@ -216,14 +216,14 @@ rdpSettings* settings_new(void* instance)
if (!settings->instance) if (!settings->instance)
settings->server_mode = TRUE; settings->server_mode = TRUE;
settings->width = 1024; settings->DesktopWidth = 1024;
settings->height = 768; settings->DesktopHeight = 768;
settings->workarea = FALSE; settings->workarea = FALSE;
settings->fullscreen = FALSE; settings->fullscreen = FALSE;
settings->grab_keyboard = TRUE; settings->grab_keyboard = TRUE;
settings->decorations = TRUE; settings->decorations = TRUE;
settings->rdp_version = 7; settings->RdpVersion = 7;
settings->color_depth = 16; settings->ColorDepth = 16;
settings->ext_security = FALSE; settings->ext_security = FALSE;
settings->nla_security = TRUE; settings->nla_security = TRUE;
settings->tls_security = TRUE; settings->tls_security = TRUE;
@ -231,11 +231,11 @@ rdpSettings* settings_new(void* instance)
settings->security_layer_negotiation = TRUE; settings->security_layer_negotiation = TRUE;
settings->mstsc_cookie_mode = FALSE; settings->mstsc_cookie_mode = FALSE;
settings->cookie_max_length = DEFAULT_COOKIE_MAX_LENGTH; settings->cookie_max_length = DEFAULT_COOKIE_MAX_LENGTH;
settings->client_build = 2600; settings->ClientBuild = 2600;
settings->kbd_type = 4; /* @msdn{cc240510} 'IBM enhanced (101- or 102-key) keyboard' */ settings->KeyboardType = 4; /* @msdn{cc240510} 'IBM enhanced (101- or 102-key) keyboard' */
settings->kbd_subtype = 0; settings->KeyboardSubType = 0;
settings->kbd_fn_keys = 12; settings->KeyboardFunctionKey = 12;
settings->kbd_layout = 0; settings->KeyboardLayout = 0;
settings->encryption = FALSE; settings->encryption = FALSE;
settings->salted_checksum = TRUE; settings->salted_checksum = TRUE;
settings->port = 3389; settings->port = 3389;
@ -298,7 +298,7 @@ rdpSettings* settings_new(void* instance)
settings->disable_full_window_drag = FALSE; settings->disable_full_window_drag = FALSE;
settings->disable_menu_animations = FALSE; settings->disable_menu_animations = FALSE;
settings->disable_theming = FALSE; settings->disable_theming = FALSE;
settings->connection_type = 0; settings->ConnectionType = 0;
settings->draw_gdi_plus = FALSE; settings->draw_gdi_plus = FALSE;

View File

@ -885,9 +885,9 @@ int gdi_init(freerdp* instance, UINT32 flags, BYTE* buffer)
instance->context->gdi = gdi; instance->context->gdi = gdi;
cache = instance->context->cache; cache = instance->context->cache;
gdi->width = instance->settings->width; gdi->width = instance->settings->DesktopWidth;
gdi->height = instance->settings->height; gdi->height = instance->settings->DesktopHeight;
gdi->srcBpp = instance->settings->color_depth; gdi->srcBpp = instance->settings->ColorDepth;
gdi->primary_buffer = buffer; gdi->primary_buffer = buffer;
/* default internal buffer format */ /* default internal buffer format */

View File

@ -192,7 +192,7 @@ int freerdp_parse_args(rdpSettings* settings, int argc, char** argv,
printf("missing color depth\n"); printf("missing color depth\n");
return FREERDP_ARGS_PARSE_FAILURE; return FREERDP_ARGS_PARSE_FAILURE;
} }
settings->color_depth = atoi(argv[index]); settings->ColorDepth = atoi(argv[index]);
} }
else if (strcmp("-u", argv[index]) == 0) else if (strcmp("-u", argv[index]) == 0)
{ {
@ -267,15 +267,16 @@ int freerdp_parse_args(rdpSettings* settings, int argc, char** argv,
} }
else else
{ {
settings->width = (UINT16) strtol(argv[index], &p, 10); settings->DesktopWidth = (UINT16) strtol(argv[index], &p, 10);
if (*p == 'x') if (*p == 'x')
{ {
settings->height = (UINT16) strtol(p + 1, &p, 10); settings->DesktopHeight = (UINT16) strtol(p + 1, &p, 10);
} }
if (*p == '%') if (*p == '%')
{ {
settings->percent_screen = settings->width; settings->percent_screen = settings->DesktopWidth;
if (settings->percent_screen <= 0 || settings->percent_screen > 100) if (settings->percent_screen <= 0 || settings->percent_screen > 100)
{ {
printf("invalid geometry percentage\n"); printf("invalid geometry percentage\n");
@ -326,7 +327,7 @@ int freerdp_parse_args(rdpSettings* settings, int argc, char** argv,
printf("missing keyboard layout id\n"); printf("missing keyboard layout id\n");
return FREERDP_ARGS_PARSE_FAILURE; return FREERDP_ARGS_PARSE_FAILURE;
} }
sscanf(argv[index], "%X", &(settings->kbd_layout)); sscanf(argv[index], "%X", &(settings->KeyboardLayout));
} }
else if (strcmp("-K", argv[index]) == 0) else if (strcmp("-K", argv[index]) == 0)
{ {
@ -489,7 +490,7 @@ int freerdp_parse_args(rdpSettings* settings, int argc, char** argv,
{ {
settings->rfx_codec = TRUE; settings->rfx_codec = TRUE;
settings->fastpath_output = TRUE; settings->fastpath_output = TRUE;
settings->color_depth = 32; settings->ColorDepth = 32;
settings->performance_flags = PERF_FLAG_NONE; settings->performance_flags = PERF_FLAG_NONE;
settings->large_pointer = TRUE; settings->large_pointer = TRUE;
} }
@ -601,17 +602,17 @@ int freerdp_parse_args(rdpSettings* settings, int argc, char** argv,
PERF_DISABLE_FULLWINDOWDRAG | PERF_DISABLE_MENUANIMATIONS | PERF_DISABLE_FULLWINDOWDRAG | PERF_DISABLE_MENUANIMATIONS |
PERF_DISABLE_THEMING; PERF_DISABLE_THEMING;
settings->connection_type = CONNECTION_TYPE_MODEM; settings->ConnectionType = CONNECTION_TYPE_MODEM;
} }
else if (argv[index][0] == 'b') /* broadband */ else if (argv[index][0] == 'b') /* broadband */
{ {
settings->performance_flags = PERF_DISABLE_WALLPAPER; settings->performance_flags = PERF_DISABLE_WALLPAPER;
settings->connection_type = CONNECTION_TYPE_BROADBAND_HIGH; settings->ConnectionType = CONNECTION_TYPE_BROADBAND_HIGH;
} }
else if (argv[index][0] == 'l') /* lan */ else if (argv[index][0] == 'l') /* lan */
{ {
settings->performance_flags = PERF_FLAG_NONE; settings->performance_flags = PERF_FLAG_NONE;
settings->connection_type = CONNECTION_TYPE_LAN; settings->ConnectionType = CONNECTION_TYPE_LAN;
} }
else else
{ {

View File

@ -558,7 +558,7 @@ BOOL xf_peer_post_connect(freerdp_peer* client)
printf("\n"); printf("\n");
printf("Client requested desktop: %dx%dx%d\n", printf("Client requested desktop: %dx%dx%d\n",
client->settings->width, client->settings->height, client->settings->color_depth); client->settings->DesktopWidth, client->settings->DesktopHeight, client->settings->ColorDepth);
if (!client->settings->rfx_codec) if (!client->settings->rfx_codec)
{ {
@ -566,10 +566,10 @@ BOOL xf_peer_post_connect(freerdp_peer* client)
return 0; return 0;
} }
/* A real server should tag the peer as activated here and start sending updates in mainloop. */ /* A real server should tag the peer as activated here and start sending updates in main loop. */
client->settings->width = xfi->width; client->settings->DesktopWidth = xfi->width;
client->settings->height = xfi->height; client->settings->DesktopHeight = xfi->height;
client->update->DesktopResize(client->update->context); client->update->DesktopResize(client->update->context);
xfp->activated = FALSE; xfp->activated = FALSE;