diff --git a/libxrdp/libxrdp.c b/libxrdp/libxrdp.c index f3823994..3f8307c2 100644 --- a/libxrdp/libxrdp.c +++ b/libxrdp/libxrdp.c @@ -658,6 +658,17 @@ libxrdp_orders_send_bitmap2(struct xrdp_session* session, cache_id, cache_idx, hints); } +/*****************************************************************************/ +int EXPORT_CC +libxrdp_orders_send_bitmap3(struct xrdp_session* session, + int width, int height, int bpp, char* data, + int cache_id, int cache_idx, int hints) +{ + return xrdp_orders_send_bitmap3((struct xrdp_orders*)session->orders, + width, height, bpp, data, + cache_id, cache_idx, hints); +} + /*****************************************************************************/ /* returns error */ /* this function gets the channel name and its flags, index is zero diff --git a/libxrdp/libxrdp.h b/libxrdp/libxrdp.h index 7792d157..82f7eed1 100644 --- a/libxrdp/libxrdp.h +++ b/libxrdp/libxrdp.h @@ -119,6 +119,7 @@ struct xrdp_rdp int mcs_channel; struct xrdp_client_info client_info; void* mppc_enc; + void* rfx_enc; }; /* state */ @@ -387,6 +388,10 @@ xrdp_orders_send_bitmap2(struct xrdp_orders* self, int width, int height, int bpp, char* data, int cache_id, int cache_idx, int hints); int APP_CC +xrdp_orders_send_bitmap3(struct xrdp_orders* self, + int width, int height, int bpp, char* data, + int cache_id, int cache_idx, int hints); +int APP_CC xrdp_orders_send_brush(struct xrdp_orders* self, int width, int height, int bpp, int type, int size, char* data, int cache_id); int APP_CC diff --git a/libxrdp/libxrdpinc.h b/libxrdp/libxrdpinc.h index 2730535c..4f3504e6 100644 --- a/libxrdp/libxrdpinc.h +++ b/libxrdp/libxrdpinc.h @@ -166,6 +166,10 @@ libxrdp_orders_send_bitmap2(struct xrdp_session* session, int width, int height, int bpp, char* data, int cache_id, int cache_idx, int hints); int DEFAULT_CC +libxrdp_orders_send_bitmap3(struct xrdp_session* session, + int width, int height, int bpp, char* data, + int cache_id, int cache_idx, int hints); +int DEFAULT_CC libxrdp_query_channel(struct xrdp_session* session, int index, char* channel_name, int* channel_flags); int DEFAULT_CC diff --git a/libxrdp/xrdp_orders.c b/libxrdp/xrdp_orders.c index d068c39a..77fdbf23 100644 --- a/libxrdp/xrdp_orders.c +++ b/libxrdp/xrdp_orders.c @@ -22,6 +22,10 @@ #include "libxrdp.h" +#if defined(XRDP_FREERDP1) +#include +#endif + /*****************************************************************************/ struct xrdp_orders* APP_CC xrdp_orders_create(struct xrdp_session* session, struct xrdp_rdp* rdp_layer) @@ -1942,6 +1946,16 @@ height(%d)", lines_sending, height); return 0; } +/*****************************************************************************/ +/* secondary drawing order (bitmap v3) using remotefx compression */ +int APP_CC +xrdp_orders_send_bitmap3(struct xrdp_orders* self, + int width, int height, int bpp, char* data, + int cache_id, int cache_idx, int hints) +{ + return 0; +} + /*****************************************************************************/ /* returns error */ /* send a brush cache entry */