diff options
author | Giovanni Panozzo <giovanni@panozzo.it> | 2014-10-16 02:03:55 +0400 |
---|---|---|
committer | Giovanni Panozzo <giovanni@panozzo.it> | 2014-10-16 02:03:55 +0400 |
commit | 943d6d8dff76b83311a9e266240a9c7e21440712 (patch) | |
tree | f41a9c829b21cadc00ac3ea5936dc96300b7bcc1 | |
parent | b1b3c12da764c23d3bc3105002d4e03a51896bf6 (diff) |
Added printer redirection, code cleanup
-rw-r--r-- | remmina-plugins/rdp/rdp_plugin.c | 48 |
1 files changed, 11 insertions, 37 deletions
diff --git a/remmina-plugins/rdp/rdp_plugin.c b/remmina-plugins/rdp/rdp_plugin.c index 2318dcd36..259b748f2 100644 --- a/remmina-plugins/rdp/rdp_plugin.c +++ b/remmina-plugins/rdp/rdp_plugin.c @@ -561,27 +561,6 @@ static void remmina_rdp_main_loop(RemminaProtocolWidget* gp) } } -gboolean remmina_rdp_load_plugin(rdpChannels* channels, rdpSettings* settings, const char* name, rdpSettings* plugin_data) -{ - void* entry = NULL; - - entry = freerdp_channels_client_find_static_entry("VirtualChannelEntry", name); - - if (entry) - { - if (freerdp_channels_client_load(channels, settings, entry, plugin_data) == 0) - { - g_printf("loading channel %s (static)\n", name); - return TRUE; - } - } - - g_printf("loading channel %s (plugin)\n", name); - freerdp_channels_load_plugin(channels, settings, name, plugin_data); - - return TRUE; -} - int remmina_rdp_load_static_channel_addin(rdpChannels* channels, rdpSettings* settings, char* name, void* data) { void* entry; @@ -630,7 +609,6 @@ static gboolean remmina_rdp_main(RemminaProtocolWidget* gp) gint port; gchar* host; gchar* value; - gint rdpdr_num; gint drdynvc_num; gint rdpsnd_rate; gint rdpsnd_channel; @@ -829,7 +807,6 @@ static gboolean remmina_rdp_main(RemminaProtocolWidget* gp) rfi->settings->RedirectClipboard = ( remmina_plugin_service->file_get_int(remminafile, "disableclipboard", FALSE) ? FALSE: TRUE ); - rdpdr_num = 0; cs = remmina_plugin_service->file_get_string(remminafile, "sharefolder"); if (cs && cs[0] == '/') @@ -854,28 +831,25 @@ static gboolean remmina_rdp_main(RemminaProtocolWidget* gp) freerdp_device_collection_add(rfi->settings, (RDPDR_DEVICE*) drive); rfi->settings->DeviceRedirection = TRUE; - rdpdr_num++; } if (remmina_plugin_service->file_get_int(remminafile, "shareprinter", FALSE)) { -// rfi->rdpdr_data[rdpdr_num].size = sizeof(RDP_PLUGIN_DATA); -// rfi->rdpdr_data[rdpdr_num].data[0] = "printer"; - rdpdr_num++; - } + RDPDR_PRINTER* printer; + printer = (RDPDR_PRINTER*) malloc(sizeof(RDPDR_DEVICE)); + ZeroMemory(printer, sizeof(RDPDR_PRINTER)); + + printer->Type = RDPDR_DTYP_PRINT; + + freerdp_device_collection_add(rfi->settings, (RDPDR_DEVICE*) printer); + rfi->settings->DeviceRedirection = TRUE; - if (remmina_plugin_service->file_get_int(remminafile, "sharesmartcard", FALSE)) - { - //rfi->rdpdr_data[rdpdr_num].size = sizeof(RDP_PLUGIN_DATA); - //rfi->rdpdr_data[rdpdr_num].data[0] = "scard"; - //rfi->rdpdr_data[rdpdr_num].data[1] = "scard"; - rdpdr_num++; } - if (rdpdr_num) + if (remmina_plugin_service->file_get_int(remminafile, "sharesmartcard", FALSE)) { - //remmina_rdp_load_plugin(rfi->channels, rfi->settings, "rdpdr", rfi->rdpdr_data); - remmina_rdp_load_plugin(rfi->instance->context->channels, rfi->settings, "rdpdr", rfi->settings); + // Not implemented yet + // see FreeRDP client/common/cmdline.c for an example } |