From 551d7dd58f934945b8f4508168b55caa086a6d05 Mon Sep 17 00:00:00 2001 From: speidy Date: Sat, 16 Apr 2016 14:04:51 -0400 Subject: [PATCH] neutrinordp: support for 32 to 16 bitmap conversion --- neutrinordp/xrdp-color.c | 22 ++++++++++++++++++++++ neutrinordp/xrdp-neutrinordp.c | 3 +++ 2 files changed, 25 insertions(+) diff --git a/neutrinordp/xrdp-color.c b/neutrinordp/xrdp-color.c index 34afc67c..80fac32b 100644 --- a/neutrinordp/xrdp-color.c +++ b/neutrinordp/xrdp-color.c @@ -213,6 +213,28 @@ convert_bitmap(int in_bpp, int out_bpp, char *bmpdata, return bmpdata; } + if ((in_bpp == 16) && (out_bpp == 32)) + { + out = (char *)g_malloc(width * height * 4, 0); + src = bmpdata; + dst = out; + + for (i = 0; i < height; i++) + { + for (j = 0; j < width; j++) + { + pixel = *((tui16 *)src); + SPLITCOLOR16(red, green, blue, pixel); + pixel = COLOR24RGB(red, green, blue); + *((tui32 *)dst) = pixel; + src += 2; + dst += 4; + } + } + + return out; + } + g_writeln("convert_bitmap: error unknown conversion from %d to %d", in_bpp, out_bpp); return 0; diff --git a/neutrinordp/xrdp-neutrinordp.c b/neutrinordp/xrdp-neutrinordp.c index 784b6e88..e2acc6de 100644 --- a/neutrinordp/xrdp-neutrinordp.c +++ b/neutrinordp/xrdp-neutrinordp.c @@ -145,6 +145,9 @@ lxrdp_connect(struct mod *mod) g_snprintf(buf, 128, "Authentication error check your password " "and username"); break; + case INSUFFICIENTPRIVILEGESERROR: + g_snprintf(buf, 128, "Insufficent privileges on target server"); + break; default: g_snprintf(buf, 128, "Unhandled Errorcode from connect : %d", connectErrorCode);