diff options
author | Rene Rheaume <rene.rheaume@gmail.com> | 2014-03-15 08:09:15 +0400 |
---|---|---|
committer | Rene Rheaume <rene.rheaume@gmail.com> | 2014-03-15 08:09:15 +0400 |
commit | e8cb0b54e44f0057454db9f963da01beed5ffd1b (patch) | |
tree | 73ce153211ac7524d1bbedf96d8259ed0ea3602e /remmina-plugins/rdp | |
parent | 4bf107c55629282b4cd22a1ff2027a177673801b (diff) |
Multiple compile-time changes against the Remmina 2012-09-22 snapshot to make it compile with FreeRDP 1.1.0_beta1_p20130710
Diffstat (limited to 'remmina-plugins/rdp')
-rw-r--r-- | remmina-plugins/rdp/rdp_cliprdr.c | 137 | ||||
-rw-r--r-- | remmina-plugins/rdp/rdp_cliprdr.h | 2 | ||||
-rw-r--r-- | remmina-plugins/rdp/rdp_event.c | 14 | ||||
-rw-r--r-- | remmina-plugins/rdp/rdp_gdi.c | 13 | ||||
-rw-r--r-- | remmina-plugins/rdp/rdp_graphics.c | 46 | ||||
-rw-r--r-- | remmina-plugins/rdp/rdp_plugin.c | 220 | ||||
-rw-r--r-- | remmina-plugins/rdp/rdp_plugin.h | 22 |
7 files changed, 220 insertions, 234 deletions
diff --git a/remmina-plugins/rdp/rdp_cliprdr.c b/remmina-plugins/rdp/rdp_cliprdr.c index 15505bcb8..030b146ae 100644 --- a/remmina-plugins/rdp/rdp_cliprdr.c +++ b/remmina-plugins/rdp/rdp_cliprdr.c @@ -22,13 +22,12 @@ #include "rdp_cliprdr.h" #include <freerdp/freerdp.h> -#include <freerdp/utils/memory.h> #include <freerdp/utils/event.h> #include <freerdp/channels/channels.h> -#include <freerdp/plugins/cliprdr.h> +#include <freerdp/client/cliprdr.h> -uint32 remmina_rdp_cliprdr_get_format_from_gdkatom(GdkAtom atom) +UINT32 remmina_rdp_cliprdr_get_format_from_gdkatom(GdkAtom atom) { gchar* name = gdk_atom_name(atom); if (g_strcmp0("UTF8_STRING", name) == 0 || g_strcmp0("text/plain;charset=utf-8", name) == 0) @@ -58,16 +57,16 @@ uint32 remmina_rdp_cliprdr_get_format_from_gdkatom(GdkAtom atom) return CB_FORMAT_RAW; } -void remmina_rdp_cliprdr_get_target_types(uint32** formats, uint16* size, GdkAtom* types, int count) +void remmina_rdp_cliprdr_get_target_types(UINT32** formats, UINT16* size, GdkAtom* types, int count) { int i; *size = 1; - *formats = (uint32*) xmalloc(sizeof(uint32) * (count+1)); + *formats = (UINT32*) malloc(sizeof(UINT32) * (count+1)); *formats[0] = CB_FORMAT_RAW; for (i = 0; i < count; i++) { - uint32 format = remmina_rdp_cliprdr_get_format_from_gdkatom(types[i]); + UINT32 format = remmina_rdp_cliprdr_get_format_from_gdkatom(types[i]); if (format != CB_FORMAT_RAW) { (*formats)[*size] = format; @@ -75,20 +74,20 @@ void remmina_rdp_cliprdr_get_target_types(uint32** formats, uint16* size, GdkAto } } - *formats = xrealloc(*formats, sizeof(uint32) * (*size)); + *formats = realloc(*formats, sizeof(UINT32) * (*size)); } -static uint8* lf2crlf(uint8* data, int* size) +static UINT8* lf2crlf(UINT8* data, int* size) { - uint8 c; - uint8* outbuf; - uint8* out; - uint8* in_end; - uint8* in; + UINT8 c; + UINT8* outbuf; + UINT8* out; + UINT8* in_end; + UINT8* in; int out_size; out_size = (*size) * 2 + 1; - outbuf = (uint8*) xmalloc(out_size); + outbuf = (UINT8*) malloc(out_size); out = outbuf; in = data; in_end = data + (*size); @@ -113,12 +112,12 @@ static uint8* lf2crlf(uint8* data, int* size) return outbuf; } -static void crlf2lf(uint8* data, int* size) +static void crlf2lf(UINT8* data, int* size) { - uint8 c; - uint8* out; - uint8* in; - uint8* in_end; + UINT8 c; + UINT8* out; + UINT8* in; + UINT8* in_end; out = data; in = data; @@ -200,7 +199,7 @@ void remmina_rdp_cliprdr_process_data_request(RemminaProtocolWidget* gp, RDP_CB_ void remmina_rdp_cliprdr_process_data_response(RemminaProtocolWidget* gp, RDP_CB_DATA_RESPONSE_EVENT* event) { - uint8* data; + UINT8* data; int size; rfContext* rfi = GET_DATA(gp); GdkPixbufLoader *pixbuf; @@ -215,12 +214,7 @@ void remmina_rdp_cliprdr_process_data_response(RemminaProtocolWidget* gp, RDP_CB { case CB_FORMAT_UNICODETEXT: { - UNICONV* uniconv; - - uniconv = freerdp_uniconv_new(); - data = (uint8*) freerdp_uniconv_in(uniconv, data, size); - size = strlen((char*) data); - freerdp_uniconv_free(uniconv); + size = ConvertFromUnicode(CP_UTF8, 0, (WCHAR*)data, size / 2, (CHAR**)&data, 0, NULL, NULL); crlf2lf(data, &size); output = data; break; @@ -236,32 +230,29 @@ void remmina_rdp_cliprdr_process_data_response(RemminaProtocolWidget* gp, RDP_CB case CB_FORMAT_DIB: { - STREAM* s; - uint16 bpp; - uint32 offset; - uint32 ncolors; - - s = stream_new(0); - stream_attach(s, data, size); - stream_seek(s, 14); - stream_read_uint16(s, bpp); - stream_read_uint32(s, ncolors); + wStream* s; + UINT16 bpp; + UINT32 offset; + UINT32 ncolors; + + s = Stream_New(data, size); + Stream_Seek(s, 14); + Stream_Read_UINT16(s, bpp); + Stream_Read_UINT32(s, ncolors); offset = 14 + 40 + (bpp <= 8 ? (ncolors == 0 ? (1 << bpp) : ncolors) * 4 : 0); - stream_detach(s); - stream_free(s); - - s = stream_new(14 + size); - stream_write_uint8(s, 'B'); - stream_write_uint8(s, 'M'); - stream_write_uint32(s, 14 + size); - stream_write_uint32(s, 0); - stream_write_uint32(s, offset); - stream_write(s, data, size); - - data = stream_get_head(s); - size = stream_get_length(s); - stream_detach(s); - stream_free(s); + Stream_Free(s, TRUE); + + s = Stream_New(NULL, 14 + size); + Stream_Write_UINT8(s, 'B'); + Stream_Write_UINT8(s, 'M'); + Stream_Write_UINT32(s, 14 + size); + Stream_Write_UINT32(s, 0); + Stream_Write_UINT32(s, offset); + Stream_Write(s, data, size); + + data = Stream_Buffer(s); + size = Stream_Length(s); + Stream_Free(s, TRUE); pixbuf = gdk_pixbuf_loader_new(); gdk_pixbuf_loader_write(pixbuf, data, size, NULL); output = g_object_ref(gdk_pixbuf_loader_get_pixbuf(pixbuf)); @@ -289,23 +280,23 @@ void remmina_rdp_cliprdr_process_data_response(RemminaProtocolWidget* gp, RDP_CB g_async_queue_push(rfi->clipboard_queue, output); } -void remmina_rdp_channel_cliprdr_process(RemminaProtocolWidget* gp, RDP_EVENT* event) +void remmina_rdp_channel_cliprdr_process(RemminaProtocolWidget* gp, wMessage* event) { - switch (event->event_type) + switch (GetMessageType(event->id)) { - case RDP_EVENT_TYPE_CB_MONITOR_READY: + case CliprdrChannel_MonitorReady: remmina_rdp_cliprdr_process_monitor_ready(gp, (RDP_CB_MONITOR_READY_EVENT*) event); break; - case RDP_EVENT_TYPE_CB_FORMAT_LIST: + case CliprdrChannel_FormatList: remmina_rdp_cliprdr_process_format_list(gp, (RDP_CB_FORMAT_LIST_EVENT*) event); break; - case RDP_EVENT_TYPE_CB_DATA_REQUEST: + case CliprdrChannel_DataRequest: remmina_rdp_cliprdr_process_data_request(gp, (RDP_CB_DATA_REQUEST_EVENT*) event); break; - case RDP_EVENT_TYPE_CB_DATA_RESPONSE: + case CliprdrChannel_DataResponse: remmina_rdp_cliprdr_process_data_response(gp, (RDP_CB_DATA_RESPONSE_EVENT*) event); break; } @@ -324,9 +315,9 @@ void remmina_rdp_cliprdr_request_data(GtkClipboard *clipboard, GtkSelectionData /* Request Clipboard data of the server */ event = (RDP_CB_DATA_REQUEST_EVENT*) - freerdp_event_new(RDP_EVENT_CLASS_CLIPRDR, RDP_EVENT_TYPE_CB_DATA_REQUEST, NULL, NULL); + freerdp_event_new(CliprdrChannel_Class, CliprdrChannel_DataRequest, NULL, NULL); event->format = rfi->format; - freerdp_channels_send_event(rfi->channels, (RDP_EVENT*) event); + freerdp_channels_send_event(rfi->channels, (wMessage*) event); data = g_async_queue_timeout_pop(rfi->clipboard_queue, 1000000); if (data != NULL) @@ -375,20 +366,20 @@ int remmina_rdp_cliprdr_send_format_list(RemminaProtocolWidget* gp, RemminaPlugi return 0; event = (RDP_CB_FORMAT_LIST_EVENT*) - freerdp_event_new(RDP_EVENT_CLASS_CLIPRDR, RDP_EVENT_TYPE_CB_FORMAT_LIST, NULL, NULL); + freerdp_event_new(CliprdrChannel_Class, CliprdrChannel_FormatList, NULL, NULL); remmina_rdp_cliprdr_get_target_types(&event->formats, &event->num_formats, targets, count); g_free(targets); - return freerdp_channels_send_event(rfi->channels, (RDP_EVENT*) event); + return freerdp_channels_send_event(rfi->channels, (wMessage*) event); } void remmina_rdp_cliprdr_get_clipboard_data(RemminaProtocolWidget* gp, RemminaPluginRdpUiObject* ui) { RDP_CB_DATA_RESPONSE_EVENT* event; GtkClipboard* clipboard; - uint8* inbuf = NULL; - uint8* outbuf = NULL; + UINT8* inbuf = NULL; + UINT8* outbuf = NULL; GdkPixbuf *image = NULL; int size = 0; @@ -403,7 +394,7 @@ void remmina_rdp_cliprdr_get_clipboard_data(RemminaProtocolWidget* gp, RemminaPl case CB_FORMAT_UNICODETEXT: case CB_FORMAT_HTML: { - inbuf = (uint8*)gtk_clipboard_wait_for_text(clipboard); + inbuf = (UINT8*)gtk_clipboard_wait_for_text(clipboard); break; } @@ -431,16 +422,10 @@ void remmina_rdp_cliprdr_get_clipboard_data(RemminaProtocolWidget* gp, RemminaPl } case CB_FORMAT_UNICODETEXT: { - size_t out_size; - UNICONV* uniconv; - size = strlen((char*)inbuf); inbuf = lf2crlf(inbuf, &size); - uniconv = freerdp_uniconv_new(); - outbuf = (uint8*) freerdp_uniconv_out(uniconv, (char*) inbuf, &out_size); - freerdp_uniconv_free(uniconv); + size = (ConvertToUnicode(CP_UTF8, 0, (CHAR*)inbuf, -1, (WCHAR**)&outbuf, 0) + 1) * 2; g_free(inbuf); - size = out_size + 2; break; } case CB_FORMAT_PNG: @@ -448,7 +433,7 @@ void remmina_rdp_cliprdr_get_clipboard_data(RemminaProtocolWidget* gp, RemminaPl gchar* data; gsize buffersize; gdk_pixbuf_save_to_buffer(image, &data, &buffersize, "png", NULL, NULL); - outbuf = (uint8*) xmalloc(buffersize); + outbuf = (UINT8*) malloc(buffersize); memcpy(outbuf, data, buffersize); size = buffersize; g_object_unref(image); @@ -459,7 +444,7 @@ void remmina_rdp_cliprdr_get_clipboard_data(RemminaProtocolWidget* gp, RemminaPl gchar* data; gsize buffersize; gdk_pixbuf_save_to_buffer(image, &data, &buffersize, "jpeg", NULL, NULL); - outbuf = (uint8*) xmalloc(buffersize); + outbuf = (UINT8*) malloc(buffersize); memcpy(outbuf, data, buffersize); size = buffersize; g_object_unref(image); @@ -471,7 +456,7 @@ void remmina_rdp_cliprdr_get_clipboard_data(RemminaProtocolWidget* gp, RemminaPl gsize buffersize; gdk_pixbuf_save_to_buffer(image, &data, &buffersize, "bmp", NULL, NULL); size = buffersize - 14; - outbuf = (uint8*) xmalloc(size); + outbuf = (UINT8*) malloc(size); memcpy(outbuf, data + 14, size); g_object_unref(image); break; @@ -479,10 +464,10 @@ void remmina_rdp_cliprdr_get_clipboard_data(RemminaProtocolWidget* gp, RemminaPl } } event = (RDP_CB_DATA_RESPONSE_EVENT*) - freerdp_event_new(RDP_EVENT_CLASS_CLIPRDR, RDP_EVENT_TYPE_CB_DATA_RESPONSE, NULL, NULL); + freerdp_event_new(CliprdrChannel_Class, CliprdrChannel_DataResponse, NULL, NULL); event->data = outbuf; event->size = size; - freerdp_channels_send_event(rfi->channels, (RDP_EVENT*) event); + freerdp_channels_send_event(rfi->channels, (wMessage*) event); } void remmina_rdp_cliprdr_set_clipboard_data(RemminaProtocolWidget* gp, RemminaPluginRdpUiObject* ui) diff --git a/remmina-plugins/rdp/rdp_cliprdr.h b/remmina-plugins/rdp/rdp_cliprdr.h index 705a911a5..72f629987 100644 --- a/remmina-plugins/rdp/rdp_cliprdr.h +++ b/remmina-plugins/rdp/rdp_cliprdr.h @@ -24,7 +24,7 @@ G_BEGIN_DECLS -void remmina_rdp_channel_cliprdr_process(RemminaProtocolWidget* gp, RDP_EVENT* event); +void remmina_rdp_channel_cliprdr_process(RemminaProtocolWidget* gp, wMessage* event); void remmina_rdp_event_process_clipboard(RemminaProtocolWidget* gp, RemminaPluginRdpUiObject* ui); G_END_DECLS diff --git a/remmina-plugins/rdp/rdp_event.c b/remmina-plugins/rdp/rdp_event.c index a3b1a4547..0b005b41e 100644 --- a/remmina-plugins/rdp/rdp_event.c +++ b/remmina-plugins/rdp/rdp_event.c @@ -40,7 +40,7 @@ static void remmina_rdp_event_on_focus_in(GtkWidget* widget, GdkEventKey* event, rfi = GET_DATA(gp); input = rfi->instance->input; - uint32 toggle_keys_state = 0; + UINT32 toggle_keys_state = 0; #if GTK_VERSION == 3 manager = gdk_display_get_device_manager(gdk_display_get_default()); @@ -311,7 +311,7 @@ static gboolean remmina_rdp_event_on_configure(GtkWidget* widget, GdkEventConfig return FALSE; } -static void remmina_rdp_event_translate_pos(RemminaProtocolWidget* gp, int ix, int iy, uint16* ox, uint16* oy) +static void remmina_rdp_event_translate_pos(RemminaProtocolWidget* gp, int ix, int iy, UINT16* ox, UINT16* oy) { rfContext* rfi; @@ -319,13 +319,13 @@ static void remmina_rdp_event_translate_pos(RemminaProtocolWidget* gp, int ix, i if ((rfi->scale) && (rfi->scale_width >= 1) && (rfi->scale_height >= 1)) { - *ox = (uint16) (ix * remmina_plugin_service->protocol_plugin_get_width(gp) / rfi->scale_width); - *oy = (uint16) (iy * remmina_plugin_service->protocol_plugin_get_height(gp) / rfi->scale_height); + *ox = (UINT16) (ix * remmina_plugin_service->protocol_plugin_get_width(gp) / rfi->scale_width); + *oy = (UINT16) (iy * remmina_plugin_service->protocol_plugin_get_height(gp) / rfi->scale_height); } else { - *ox = (uint16) ix; - *oy = (uint16) iy; + *ox = (UINT16) ix; + *oy = (UINT16) iy; } } @@ -431,7 +431,7 @@ static gboolean remmina_rdp_event_on_key(GtkWidget* widget, GdkEventKey* event, guint16 cooked_keycode; rfContext* rfi; RemminaPluginRdpEvent rdp_event; - RDP_SCANCODE scancode; + DWORD scancode; rfi = GET_DATA(gp); rdp_event.type = REMMINA_RDP_EVENT_TYPE_SCANCODE; diff --git a/remmina-plugins/rdp/rdp_gdi.c b/remmina-plugins/rdp/rdp_gdi.c index 17d54cb25..4f75fecf2 100644 --- a/remmina-plugins/rdp/rdp_gdi.c +++ b/remmina-plugins/rdp/rdp_gdi.c @@ -28,7 +28,6 @@ #include <freerdp/freerdp.h> #include <freerdp/constants.h> #include <freerdp/cache/cache.h> -#include <freerdp/utils/memory.h> static void rf_desktop_resize(rdpContext* context) { @@ -40,8 +39,8 @@ static void rf_desktop_resize(rdpContext* context) LOCK_BUFFER(TRUE) - remmina_plugin_service->protocol_plugin_set_width(gp, rfi->settings->width); - remmina_plugin_service->protocol_plugin_set_height(gp, rfi->settings->height); + remmina_plugin_service->protocol_plugin_set_width(gp, rfi->settings->DesktopWidth); + remmina_plugin_service->protocol_plugin_set_height(gp, rfi->settings->DesktopHeight); UNLOCK_BUFFER(TRUE) @@ -108,12 +107,12 @@ static void rf_gdi_fast_index(rdpContext* context, FAST_INDEX_ORDER* fast_index) static void rf_gdi_surface_bits(rdpContext* context, SURFACE_BITS_COMMAND* surface_bits_command) { - uint8* bitmap; + UINT8* bitmap; RFX_MESSAGE* message; RemminaPluginRdpUiObject* ui; rfContext* rfi = (rfContext*) context; - if (surface_bits_command->codecID == CODEC_ID_REMOTEFX && rfi->rfx_context) + if (surface_bits_command->codecID == RDP_CODEC_ID_REMOTEFX && rfi->rfx_context) { message = rfx_process_message(rfi->rfx_context, surface_bits_command->bitmapData, surface_bits_command->bitmapDataLength); @@ -126,9 +125,9 @@ static void rf_gdi_surface_bits(rdpContext* context, SURFACE_BITS_COMMAND* surfa rf_queue_ui(rfi->protocol_widget, ui); } - else if (surface_bits_command->codecID == CODEC_ID_NONE) + else if (surface_bits_command->codecID == RDP_CODEC_ID_NONE) { - bitmap = (uint8*) xzalloc(surface_bits_command->width * surface_bits_command->height * 4); + bitmap = (UINT8*) xzalloc(surface_bits_command->width * surface_bits_command->height * 4); freerdp_image_flip(surface_bits_command->bitmapData, bitmap, surface_bits_command->width, surface_bits_command->height, 32); diff --git a/remmina-plugins/rdp/rdp_graphics.c b/remmina-plugins/rdp/rdp_graphics.c index d4306cec0..9df1630fb 100644 --- a/remmina-plugins/rdp/rdp_graphics.c +++ b/remmina-plugins/rdp/rdp_graphics.c @@ -24,7 +24,6 @@ #include "rdp_event.h" #include "rdp_graphics.h" -#include <freerdp/utils/memory.h> #include <freerdp/codec/color.h> #include <freerdp/codec/bitmap.h> @@ -36,7 +35,7 @@ void rf_Bitmap_New(rdpContext* context, rdpBitmap* bitmap) { #ifdef RF_BITMAP - uint8* data; + UINT8* data; Pixmap pixmap; XImage* image; rfContext* rfi = (rfContext*) context; @@ -49,7 +48,7 @@ void rf_Bitmap_New(rdpContext* context, rdpBitmap* bitmap) data = freerdp_image_convert(bitmap->data, NULL, bitmap->width, bitmap->height, rfi->srcBpp, rfi->bpp, rfi->clrconv); - if (bitmap->ephemeral != true) + if (bitmap->ephemeral != TRUE) { image = XCreateImage(rfi->display, rfi->visual, rfi->depth, ZPixmap, 0, (char*) data, bitmap->width, bitmap->height, rfi->scanline_pad, 0); @@ -57,13 +56,13 @@ void rf_Bitmap_New(rdpContext* context, rdpBitmap* bitmap) XPutImage(rfi->display, pixmap, rfi->gc, image, 0, 0, 0, 0, bitmap->width, bitmap->height); XFree(image); - if (data != bitmap->data) - xfree(data); + if (data != bitmap->data) && (data != NULL) + free(data); } else { - if (data != bitmap->data) - xfree(bitmap->data); + if (data != bitmap->data) && (data != NULL) + free(bitmap->data); bitmap->data = data; } @@ -115,19 +114,19 @@ void rf_Bitmap_Paint(rdpContext* context, rdpBitmap* bitmap) } void rf_Bitmap_Decompress(rdpContext* context, rdpBitmap* bitmap, - uint8* data, int width, int height, int bpp, int length, boolean compressed) + UINT8* data, int width, int height, int bpp, int length, BOOL compressed) { #ifdef RF_BITMAP - uint16 size; + UINT16 size; printf("rf_Bitmap_Decompress\n"); size = width * height * (bpp + 7) / 8; if (bitmap->data == NULL) - bitmap->data = (uint8*) xmalloc(size); + bitmap->data = (UINT8*) malloc(size); else - bitmap->data = (uint8*) xrealloc(bitmap->data, size); + bitmap->data = (UINT8*) realloc(bitmap->data, size); if (compressed) { @@ -135,7 +134,7 @@ void rf_Bitmap_Decompress(rdpContext* context, rdpBitmap* bitmap, status = bitmap_decompress(data, bitmap->data, width, height, length, bpp, bpp); - if (status != true) + if (status != TRUE) { printf("Bitmap Decompression Failed\n"); } @@ -145,13 +144,13 @@ void rf_Bitmap_Decompress(rdpContext* context, rdpBitmap* bitmap, freerdp_image_flip(data, bitmap->data, width, height, bpp); } - bitmap->compressed = false; + bitmap->compressed = FALSE; bitmap->length = size; bitmap->bpp = bpp; #endif } -void rf_Bitmap_SetSurface(rdpContext* context, rdpBitmap* bitmap, boolean primary) +void rf_Bitmap_SetSurface(rdpContext* context, rdpBitmap* bitmap, BOOL primary) { #ifdef RF_BITMAP rfContext* rfi = (rfContext*) context; @@ -278,7 +277,7 @@ void rf_Glyph_Draw(rdpContext* context, rdpGlyph* glyph, int x, int y) #endif } -void rf_Glyph_BeginDraw(rdpContext* context, int x, int y, int width, int height, uint32 bgcolor, uint32 fgcolor) +void rf_Glyph_BeginDraw(rdpContext* context, int x, int y, int width, int height, UINT32 bgcolor, UINT32 fgcolor) { #ifdef RF_GLYPH rfContext* rfi = (rfContext*) context; @@ -302,7 +301,7 @@ void rf_Glyph_BeginDraw(rdpContext* context, int x, int y, int width, int height #endif } -void rf_Glyph_EndDraw(rdpContext* context, int x, int y, int width, int height, uint32 bgcolor, uint32 fgcolor) +void rf_Glyph_EndDraw(rdpContext* context, int x, int y, int width, int height, UINT32 bgcolor, UINT32 fgcolor) { #ifdef RF_GLYPH rfContext* rfi = (rfContext*) context; @@ -323,7 +322,7 @@ void rf_register_graphics(rdpGraphics* graphics) rdpPointer* pointer; rdpGlyph* glyph; - bitmap = xnew(rdpBitmap); + bitmap = calloc(1, sizeof(rdpBitmap)); bitmap->size = sizeof(rfBitmap); bitmap->New = rf_Bitmap_New; @@ -333,9 +332,10 @@ void rf_register_graphics(rdpGraphics* graphics) bitmap->SetSurface = rf_Bitmap_SetSurface; graphics_register_bitmap(graphics, bitmap); - xfree(bitmap); + if (bitmap != NULL) + free(bitmap); - pointer = xnew(rdpPointer); + pointer = calloc(1, sizeof(rdpPointer)); pointer->size = sizeof(rfPointer); pointer->New = rf_Pointer_New; @@ -345,9 +345,10 @@ void rf_register_graphics(rdpGraphics* graphics) pointer->SetDefault = rf_Pointer_SetDefault; graphics_register_pointer(graphics, pointer); - xfree(pointer); + if (pointer != NULL) + free(pointer); - glyph = xnew(rdpGlyph); + glyph = calloc(1, sizeof(rdpGlyph)); glyph->size = sizeof(rfGlyph); glyph->New = rf_Glyph_New; @@ -357,5 +358,6 @@ void rf_register_graphics(rdpGraphics* graphics) glyph->EndDraw = rf_Glyph_EndDraw; graphics_register_glyph(graphics, glyph); - xfree(glyph); + if (glyph != NULL) + free(glyph); } diff --git a/remmina-plugins/rdp/rdp_plugin.c b/remmina-plugins/rdp/rdp_plugin.c index 1a9b2ef97..30b5a31d7 100644 --- a/remmina-plugins/rdp/rdp_plugin.c +++ b/remmina-plugins/rdp/rdp_plugin.c @@ -31,8 +31,7 @@ #include <cairo/cairo-xlib.h> #include <freerdp/freerdp.h> #include <freerdp/constants.h> -#include <freerdp/utils/memory.h> -#include <freerdp/plugins/cliprdr.h> +#include <freerdp/client/cliprdr.h> #define REMMINA_RDP_FEATURE_TOOL_REFRESH 1 #define REMMINA_RDP_FEATURE_SCALE 2 @@ -53,9 +52,9 @@ void rf_get_fds(RemminaProtocolWidget* gp, void** rfds, int* rcount) } } -boolean rf_check_fds(RemminaProtocolWidget* gp) +BOOL rf_check_fds(RemminaProtocolWidget* gp) { - uint16 flags; + UINT16 flags; gchar buf[100]; rdpInput* input; rfContext* rfi; @@ -122,7 +121,9 @@ void rf_object_free(RemminaProtocolWidget* gp, RemminaPluginRdpUiObject* obj) break; case REMMINA_RDP_UI_NOCODEC: - xfree(obj->nocodec.bitmap); + if (obj->nocodec.bitmap) { + free(obj->nocodec.bitmap); + } break; default: @@ -141,8 +142,8 @@ void rf_begin_paint(rdpContext* context) void rf_end_paint(rdpContext* context) { - sint32 x, y; - uint32 w, h; + INT32 x, y; + UINT32 w, h; rdpGdi* gdi; rfContext* rfi; RemminaProtocolWidget* gp; @@ -180,8 +181,8 @@ static void rf_desktop_resize(rdpContext* context) LOCK_BUFFER(TRUE) - remmina_plugin_service->protocol_plugin_set_width(gp, rfi->settings->width); - remmina_plugin_service->protocol_plugin_set_height(gp, rfi->settings->height); + remmina_plugin_service->protocol_plugin_set_width(gp, rfi->settings->DesktopWidth); + remmina_plugin_service->protocol_plugin_set_height(gp, rfi->settings->DesktopHeight); UNLOCK_BUFFER(TRUE) @@ -192,7 +193,7 @@ static void rf_desktop_resize(rdpContext* context) remmina_plugin_service->protocol_plugin_emit_signal(gp, "desktop-resize"); } -static boolean remmina_rdp_pre_connect(freerdp* instance) +static BOOL remmina_rdp_pre_connect(freerdp* instance) { rfContext* rfi; rdpSettings* settings; @@ -202,51 +203,50 @@ static boolean remmina_rdp_pre_connect(freerdp* instance) settings = instance->settings; gp = rfi->protocol_widget; - settings->bitmap_cache = True; - settings->offscreen_bitmap_cache = True; - - settings->order_support[NEG_DSTBLT_INDEX] = True; - settings->order_support[NEG_PATBLT_INDEX] = True; - settings->order_support[NEG_SCRBLT_INDEX] = True; - settings->order_support[NEG_OPAQUE_RECT_INDEX] = True; - settings->order_support[NEG_DRAWNINEGRID_INDEX] = False; - settings->order_support[NEG_MULTIDSTBLT_INDEX] = False; - settings->order_support[NEG_MULTIPATBLT_INDEX] = False; - settings->order_support[NEG_MULTISCRBLT_INDEX] = False; - settings->order_support[NEG_MULTIOPAQUERECT_INDEX] = True; - settings->order_support[NEG_MULTI_DRAWNINEGRID_INDEX] = False; - settings->order_support[NEG_LINETO_INDEX] = True; - settings->order_support[NEG_POLYLINE_INDEX] = True; - settings->order_support[NEG_MEMBLT_INDEX] = True; - settings->order_support[NEG_MEM3BLT_INDEX] = False; - settings->order_support[NEG_MEMBLT_V2_INDEX] = True; - settings->order_support[NEG_MEM3BLT_V2_INDEX] = False; - settings->order_support[NEG_SAVEBITMAP_INDEX] = False; - settings->order_support[NEG_GLYPH_INDEX_INDEX] = True; - settings->order_support[NEG_FAST_INDEX_INDEX] = True; - settings->order_support[NEG_FAST_GLYPH_INDEX] = False; - settings->order_support[NEG_POLYGON_SC_INDEX] = False; - settings->order_support[NEG_POLYGON_CB_INDEX] = False; - settings->order_support[NEG_ELLIPSE_SC_INDEX] = False; - settings->order_support[NEG_ELLIPSE_CB_INDEX] = False; - - if (settings->rfx_codec == True) + settings->BitmapCacheEnabled = True; + settings->OffscreenSupportLevel = True; + + settings->OrderSupport[NEG_DSTBLT_INDEX] = True; + settings->OrderSupport[NEG_PATBLT_INDEX] = True; + settings->OrderSupport[NEG_SCRBLT_INDEX] = True; + settings->OrderSupport[NEG_OPAQUE_RECT_INDEX] = True; + settings->OrderSupport[NEG_DRAWNINEGRID_INDEX] = False; + settings->OrderSupport[NEG_MULTIDSTBLT_INDEX] = False; + settings->OrderSupport[NEG_MULTIPATBLT_INDEX] = False; + settings->OrderSupport[NEG_MULTISCRBLT_INDEX] = False; + settings->OrderSupport[NEG_MULTIOPAQUERECT_INDEX] = True; + settings->OrderSupport[NEG_MULTI_DRAWNINEGRID_INDEX] = False; + settings->OrderSupport[NEG_LINETO_INDEX] = True; + settings->OrderSupport[NEG_POLYLINE_INDEX] = True; + settings->OrderSupport[NEG_MEMBLT_INDEX] = True; + settings->OrderSupport[NEG_MEM3BLT_INDEX] = False; + settings->OrderSupport[NEG_MEMBLT_V2_INDEX] = True; + settings->OrderSupport[NEG_MEM3BLT_V2_INDEX] = False; + settings->OrderSupport[NEG_SAVEBITMAP_INDEX] = False; + settings->OrderSupport[NEG_GLYPH_INDEX_INDEX] = True; + settings->OrderSupport[NEG_FAST_INDEX_INDEX] = True; + settings->OrderSupport[NEG_FAST_GLYPH_INDEX] = False; + settings->OrderSupport[NEG_POLYGON_SC_INDEX] = False; + settings->OrderSupport[NEG_POLYGON_CB_INDEX] = False; + settings->OrderSupport[NEG_ELLIPSE_SC_INDEX] = False; + settings->OrderSupport[NEG_ELLIPSE_CB_INDEX] = False; + + if (settings->RemoteFxCodec == True) { - settings->frame_acknowledge = False; - settings->large_pointer = True; - settings->performance_flags = PERF_FLAG_NONE; + settings->FrameAcknowledge = False; + settings->LargePointerFlag = True; + settings->PerformanceFlags = PERF_FLAG_NONE; rfi->rfx_context = rfx_context_new(); - rfx_context_set_cpu_opt(rfi->rfx_context, CPU_SSE2); } freerdp_channels_pre_connect(rfi->channels, instance); - rfi->clrconv = xnew(CLRCONV); - rfi->clrconv->alpha = true; - rfi->clrconv->invert = false; - rfi->clrconv->rgb555 = false; - rfi->clrconv->palette = xnew(rdpPalette); + rfi->clrconv = calloc(1, sizeof(CLRCONV)); + rfi->clrconv->alpha = TRUE; + rfi->clrconv->invert = FALSE; + rfi->clrconv->rgb555 = FALSE; + rfi->clrconv->palette = calloc(1, sizeof(rdpPalette)); instance->context->cache = cache_new(instance->settings); @@ -254,23 +254,23 @@ static boolean remmina_rdp_pre_connect(freerdp* instance) } -static boolean remmina_rdp_post_connect(freerdp* instance) +static BOOL remmina_rdp_post_connect(freerdp* instance) { rfContext* rfi; RemminaProtocolWidget* gp; RemminaPluginRdpUiObject* ui; rdpGdi* gdi; - uint32 flags; + UINT32 flags; rfi = (rfContext*) instance->context; gp = rfi->protocol_widget; - rfi->width = rfi->settings->width; - rfi->height = rfi->settings->height; - rfi->srcBpp = rfi->settings->color_depth; + rfi->width = rfi->settings->DesktopWidth; + rfi->height = rfi->settings->DesktopHeight; + rfi->srcBpp = rfi->settings->ColorDepth; - if (rfi->settings->rfx_codec == false) - rfi->sw_gdi = true; + if (rfi->settings->RemoteFxCodec == FALSE) + rfi->sw_gdi = TRUE; rf_register_graphics(instance->context->graphics); @@ -311,7 +311,7 @@ static boolean remmina_rdp_post_connect(freerdp* instance) pointer_cache_register_callbacks(instance->update); /* - if (rfi->sw_gdi != true) + if (rfi->sw_gdi != TRUE) { glyph_cache_register_callbacks(instance->update); brush_cache_register_callbacks(instance->update); @@ -336,7 +336,7 @@ static boolean remmina_rdp_post_connect(freerdp* instance) return True; } -static boolean remmina_rdp_authenticate(freerdp* instance, char** username, char** password, char** domain) +static BOOL remmina_rdp_authenticate(freerdp* instance, char** username, char** password, char** domain) { gchar* s; gint ret; @@ -356,7 +356,7 @@ static boolean remmina_rdp_authenticate(freerdp* instance, char** username, char if (s) { - rfi->settings->username = xstrdup(s); + rfi->settings->Username = strdup(s); g_free(s); } @@ -364,7 +364,7 @@ static boolean remmina_rdp_authenticate(freerdp* instance, char** username, char if (s) { - rfi->settings->password = xstrdup(s); + rfi->settings->Password = strdup(s); g_free(s); } @@ -372,7 +372,7 @@ static boolean remmina_rdp_authenticate(freerdp* instance, char** username, char if (s) { - rfi->settings->domain = xstrdup(s); + rfi->settings->Domain = strdup(s); g_free(s); } @@ -387,7 +387,7 @@ static boolean remmina_rdp_authenticate(freerdp* instance, char** username, char return True; } -static boolean remmina_rdp_verify_certificate(freerdp* instance, char* subject, char* issuer, char* fingerprint) +static BOOL remmina_rdp_verify_certificate(freerdp* instance, char* subject, char* issuer, char* fingerprint) { gint status; rfContext* rfi; @@ -405,7 +405,7 @@ static boolean remmina_rdp_verify_certificate(freerdp* instance, char* subject, return False; } -static boolean remmina_rdp_verify_changed_certificate(freerdp* instance, char* subject, char* issuer, char* new_fingerprint, char* old_fingerprint) +static BOOL remmina_rdp_verify_changed_certificate(freerdp* instance, char* subject, char* issuer, char* new_fingerprint, char* old_fingerprint) { gint status; rfContext* rfi; @@ -424,16 +424,16 @@ static boolean remmina_rdp_verify_changed_certificate(freerdp* instance, char* s return False; } -static int remmina_rdp_receive_channel_data(freerdp* instance, int channelId, uint8* data, int size, int flags, int total_size) +static int remmina_rdp_receive_channel_data(freerdp* instance, int channelId, UINT8* data, int size, int flags, int total_size) { return freerdp_channels_data(instance, channelId, data, size, flags, total_size); } -void remmina_rdp_channels_process_event(RemminaProtocolWidget* gp, RDP_EVENT* event) +void remmina_rdp_channels_process_event(RemminaProtocolWidget* gp, wMessage* event) { - switch (event->event_class) + switch (GetMessageClass(event->id)) { - case RDP_EVENT_CLASS_CLIPRDR: + case CliprdrChannel_Class: remmina_rdp_channel_cliprdr_process(gp, event); break; } @@ -451,7 +451,7 @@ static void remmina_rdp_main_loop(RemminaProtocolWidget* gp) fd_set rfds_set; fd_set wfds_set; rfContext* rfi; - RDP_EVENT* event; + wMessage* event; memset(rfds, 0, sizeof(rfds)); memset(wfds, 0, sizeof(wfds)); @@ -477,7 +477,7 @@ static void remmina_rdp_main_loop(RemminaProtocolWidget* gp) FD_ZERO(&rfds_set); for (i = 0; i < rcount; i++) { - fds = (int) (uint64) (rfds[i]); + fds = (int) (UINT64) (rfds[i]); if (fds > max_fds) max_fds = fds; @@ -561,29 +561,29 @@ static gboolean remmina_rdp_main(RemminaProtocolWidget* gp) return FALSE; remmina_plugin_service->get_server_port(s, 3389, &host, &port); - rfi->settings->hostname = xstrdup(host); + rfi->settings->ServerHostname = strdup(host); g_free(host); g_free(s); - rfi->settings->port = port; + rfi->settings->ServerPort = port; - rfi->settings->color_depth = remmina_plugin_service->file_get_int(remminafile, "colordepth", 0); + rfi->settings->ColorDepth = remmina_plugin_service->file_get_int(remminafile, "colordepth", 0); - if (rfi->settings->color_depth == 0) + if (rfi->settings->ColorDepth == 0) { - rfi->settings->rfx_codec = True; - rfi->settings->color_depth = 32; + rfi->settings->RemoteFxCodec = True; + rfi->settings->ColorDepth = 32; } - rfi->settings->width = remmina_plugin_service->file_get_int(remminafile, "resolution_width", 1024); - rfi->settings->height = remmina_plugin_service->file_get_int(remminafile, "resolution_height", 768); - remmina_plugin_service->protocol_plugin_set_width(gp, rfi->settings->width); - remmina_plugin_service->protocol_plugin_set_height(gp, rfi->settings->height); + rfi->settings->DesktopWidth = remmina_plugin_service->file_get_int(remminafile, "resolution_width", 1024); + rfi->settings->DesktopHeight = remmina_plugin_service->file_get_int(remminafile, "resolution_height", 768); + remmina_plugin_service->protocol_plugin_set_width(gp, rfi->settings->DesktopWidth); + remmina_plugin_service->protocol_plugin_set_height(gp, rfi->settings->DesktopHeight); if (remmina_plugin_service->file_get_string(remminafile, "username")) - rfi->settings->username = xstrdup(remmina_plugin_service->file_get_string(remminafile, "username")); + rfi->settings->Username = strdup(remmina_plugin_service->file_get_string(remminafile, "username")); if (remmina_plugin_service->file_get_string(remminafile, "domain")) - rfi->settings->domain = xstrdup(remmina_plugin_service->file_get_string(remminafile, "domain")); + rfi->settings->Domain = strdup(remmina_plugin_service->file_get_string(remminafile, "domain")); THREADS_ENTER s = remmina_plugin_service->file_get_secret(remminafile, "password"); @@ -591,29 +591,29 @@ static gboolean remmina_rdp_main(RemminaProtocolWidget* gp) if (s) { - rfi->settings->password = xstrdup(s); - rfi->settings->autologon = 1; + rfi->settings->Password = strdup(s); + rfi->settings->AutoLogonEnabled = 1; g_free(s); } if (remmina_plugin_service->file_get_string(remminafile, "clientname")) { - strncpy(rfi->settings->client_hostname, remmina_plugin_service->file_get_string(remminafile, "clientname"), - sizeof(rfi->settings->client_hostname) - 1); + strncpy(rfi->settings->ClientHostname, remmina_plugin_service->file_get_string(remminafile, "clientname"), + sizeof(rfi->settings->ClientHostname) - 1); } else { - strncpy(rfi->settings->client_hostname, g_get_host_name(), sizeof(rfi->settings->client_hostname) - 1); + strncpy(rfi->settings->ClientHostname, g_get_host_name(), sizeof(rfi->settings->ClientHostname) - 1); } if (remmina_plugin_service->file_get_string(remminafile, "exec")) { - rfi->settings->shell = xstrdup(remmina_plugin_service->file_get_string(remminafile, "exec")); + rfi->settings->AlternateShell = strdup(remmina_plugin_service->file_get_string(remminafile, "exec")); } if (remmina_plugin_service->file_get_string(remminafile, "execpath")) { - rfi->settings->directory = xstrdup(remmina_plugin_service->file_get_string(remminafile, "execpath")); + rfi->settings->ShellWorkingDirectory = strdup(remmina_plugin_service->file_get_string(remminafile, "execpath")); } s = g_strdup_printf("rdp_quality_%i", remmina_plugin_service->file_get_int(remminafile, "quality", DEFAULT_QUALITY_0)); @@ -622,63 +622,63 @@ static gboolean remmina_rdp_main(RemminaProtocolWidget* gp) if (value && value[0]) { - rfi->settings->performance_flags = strtoul(value, NULL, 16); + rfi->settings->PerformanceFlags = strtoul(value, NULL, 16); } else { switch (remmina_plugin_service->file_get_int(remminafile, "quality", DEFAULT_QUALITY_0)) { case 9: - rfi->settings->performance_flags = DEFAULT_QUALITY_9; + rfi->settings->PerformanceFlags = DEFAULT_QUALITY_9; break; case 2: - rfi->settings->performance_flags = DEFAULT_QUALITY_2; + rfi->settings->PerformanceFlags = DEFAULT_QUALITY_2; break; case 1: - rfi->settings->performance_flags = DEFAULT_QUALITY_1; + rfi->settings->PerformanceFlags = DEFAULT_QUALITY_1; break; case 0: default: - rfi->settings->performance_flags = DEFAULT_QUALITY_0; + rfi->settings->PerformanceFlags = DEFAULT_QUALITY_0; break; } } g_free(value); - rfi->settings->kbd_layout = remmina_rdp_settings_get_keyboard_layout(); + rfi->settings->KeyboardLayout = remmina_rdp_settings_get_keyboard_layout(); if (remmina_plugin_service->file_get_int(remminafile, "console", FALSE)) { - rfi->settings->console_session = True; + rfi->settings->ConsoleSession = True; } cs = remmina_plugin_service->file_get_string(remminafile, "security"); if (g_strcmp0(cs, "rdp") == 0) { - rfi->settings->rdp_security = True; - rfi->settings->tls_security = False; - rfi->settings->nla_security = False; + rfi->settings->RdpSecurity = True; + rfi->settings->TlsSecurity = False; + rfi->settings->NlaSecurity = False; } else if (g_strcmp0(cs, "tls") == 0) { - rfi->settings->rdp_security = False; - rfi->settings->tls_security = True; - rfi->settings->nla_security = False; + rfi->settings->RdpSecurity = False; + rfi->settings->TlsSecurity = True; + rfi->settings->NlaSecurity = False; } else if (g_strcmp0(cs, "nla") == 0) { - rfi->settings->rdp_security = False; - rfi->settings->tls_security = False; - rfi->settings->nla_security = True; + rfi->settings->RdpSecurity = False; + rfi->settings->TlsSecurity = False; + rfi->settings->NlaSecurity = True; } - rfi->settings->compression = True; - rfi->settings->fastpath_input = True; - rfi->settings->fastpath_output = True; + rfi->settings->CompressionEnabled = True; + rfi->settings->FastPathInput = True; + rfi->settings->FastPathOutput = True; drdynvc_num = 0; rdpsnd_num = 0; @@ -686,7 +686,7 @@ static gboolean remmina_rdp_main(RemminaProtocolWidget* gp) if (g_strcmp0(cs, "remote") == 0) { - rfi->settings->console_audio = 1; + rfi->settings->RemoteConsoleAudio = 1; } else if (g_str_has_prefix(cs, "local")) { @@ -770,7 +770,7 @@ static gboolean remmina_rdp_main(RemminaProtocolWidget* gp) if (!rfi->user_cancelled) { remmina_plugin_service->protocol_plugin_set_error(gp, _("Unable to connect to RDP server %s"), - rfi->settings->hostname); + rfi->settings->ServerHostname); } return FALSE; @@ -810,11 +810,11 @@ static void remmina_rdp_init(RemminaProtocolWidget* gp) instance->VerifyChangedCertificate = remmina_rdp_verify_changed_certificate; instance->ReceiveChannelData = remmina_rdp_receive_channel_data; - instance->context_size = sizeof(rfContext); + instance->ContextSize = sizeof(rfContext); freerdp_context_new(instance); rfi = (rfContext*) instance->context; - g_object_set_data_full(G_OBJECT(gp), "plugin-data", rfi, xfree); + g_object_set_data_full(G_OBJECT(gp), "plugin-data", rfi, free); rfi->protocol_widget = gp; rfi->instance = instance; diff --git a/remmina-plugins/rdp/rdp_plugin.h b/remmina-plugins/rdp/rdp_plugin.h index dece96432..0d8e7ab91 100644 --- a/remmina-plugins/rdp/rdp_plugin.h +++ b/remmina-plugins/rdp/rdp_plugin.h @@ -111,7 +111,7 @@ struct rf_context gint scanline_pad; gint* colormap; HCLRCONV clrconv; - uint8* primary_buffer; + UINT8* primary_buffer; guint object_id_seq; GHashTable* object_table; @@ -124,7 +124,7 @@ struct rf_context gint event_pipe[2]; GAsyncQueue* clipboard_queue; - uint32 format; + UINT32 format; gboolean clipboard_wait; gulong clipboard_handler; }; @@ -142,15 +142,15 @@ struct remmina_plugin_rdp_event { struct { - boolean up; - boolean extended; - uint8 key_code; + BOOL up; + BOOL extended; + UINT8 key_code; } key_event; struct { - uint16 flags; - uint16 x; - uint16 y; + UINT16 flags; + UINT16 x; + UINT16 y; } mouse_event; }; }; @@ -210,13 +210,13 @@ struct remmina_plugin_rdp_ui_object gint top; gint width; gint height; - uint8* bitmap; + UINT8* bitmap; } nocodec; struct { RemminaPluginRdpUiClipboardType type; GtkTargetList* targetlist; - uint32 format; + UINT32 format; } clipboard; }; }; @@ -225,7 +225,7 @@ typedef struct remmina_plugin_rdp_ui_object RemminaPluginRdpUiObject; void rf_init(RemminaProtocolWidget* gp); void rf_uninit(RemminaProtocolWidget* gp); void rf_get_fds(RemminaProtocolWidget* gp, void** rfds, int* rcount); -boolean rf_check_fds(RemminaProtocolWidget* gp); +BOOL rf_check_fds(RemminaProtocolWidget* gp); void rf_queue_ui(RemminaProtocolWidget* gp, RemminaPluginRdpUiObject* ui); void rf_object_free(RemminaProtocolWidget* gp, RemminaPluginRdpUiObject* obj); |