summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--libxrdp/libxrdp.c11
-rw-r--r--libxrdp/libxrdp.h5
-rw-r--r--libxrdp/libxrdpinc.h4
-rw-r--r--libxrdp/xrdp_orders.c14
4 files changed, 34 insertions, 0 deletions
diff --git a/libxrdp/libxrdp.c b/libxrdp/libxrdp.c
index f3823994..3f8307c2 100644
--- a/libxrdp/libxrdp.c
+++ b/libxrdp/libxrdp.c
@@ -659,6 +659,17 @@ libxrdp_orders_send_bitmap2(struct xrdp_session* session,
}
/*****************************************************************************/
+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
based. either channel_name or channel_flags can be passed in nil if
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 <freerdp/codec/rfx.h>
+#endif
+
/*****************************************************************************/
struct xrdp_orders* APP_CC
xrdp_orders_create(struct xrdp_session* session, struct xrdp_rdp* rdp_layer)
@@ -1943,6 +1947,16 @@ height(%d)", lines_sending, height);
}
/*****************************************************************************/
+/* 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 */
int APP_CC