summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorFORT David <rdp.effort@gmail.com>2016-05-01 23:32:07 +0200
committerBryce Harrington <bryce@osg.samsung.com>2016-05-19 14:48:17 -0700
commit58b63ab7f1eec70c421b42a509f13dbc08a558ad (patch)
treeeea94bcd88e19597869620349ea5d3d7b19d8374 /src
parent0887956e4d2ea747db97ce7943d3e0ff79f89cd9 (diff)
downloadweston-58b63ab7f1eec70c421b42a509f13dbc08a558ad.tar.gz
rdp: allow to compile against FreeRDP 2.0
FreeRDP 2.0 is about to be released, this allows to compile against this version. The detection is adjusted to prefer FreeRDP 2 against version 1.x. Signed-off-by: David Fort <contact@hardening-consulting.com> Reviewed-by: Quentin Glidic <sardemff7+git@sardemff7.net> Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
Diffstat (limited to 'src')
-rw-r--r--src/compositor-rdp.c23
1 files changed, 16 insertions, 7 deletions
diff --git a/src/compositor-rdp.c b/src/compositor-rdp.c
index 2860556c..f6778b61 100644
--- a/src/compositor-rdp.c
+++ b/src/compositor-rdp.c
@@ -42,15 +42,24 @@
#define FREERDP_VERSION_NUMBER ((FREERDP_VERSION_MAJOR * 0x10000) + \
(FREERDP_VERSION_MINOR * 0x100) + FREERDP_VERSION_REVISION)
+
#if FREERDP_VERSION_NUMBER >= 0x10201
#define HAVE_SKIP_COMPRESSION
#endif
#if FREERDP_VERSION_NUMBER < 0x10202
-#define FREERDP_CB_RET_TYPE void
-#define FREERDP_CB_RETURN(V) return
+# define FREERDP_CB_RET_TYPE void
+# define FREERDP_CB_RETURN(V) return
+# define NSC_RESET(C, W, H)
+# define RFX_RESET(C, W, H) do { rfx_context_reset(C); C->width = W; C->height = H; } while(0)
+#else
+#if FREERDP_VERSION_MAJOR >= 2
+# define NSC_RESET(C, W, H) nsc_context_reset(C, W, H)
+# define RFX_RESET(C, W, H) rfx_context_reset(C, W, H)
#else
-#define HAVE_NSC_RESET
+# define NSC_RESET(C, W, H) do { nsc_context_reset(C); C->width = W; C->height = H; } while(0)
+# define RFX_RESET(C, W, H) do { rfx_context_reset(C); C->width = W; C->height = H; } while(0)
+#endif
#define FREERDP_CB_RET_TYPE BOOL
#define FREERDP_CB_RETURN(V) return TRUE
#endif
@@ -795,6 +804,7 @@ xf_peer_activate(freerdp_peer* client)
struct xkb_context *xkbContext;
struct xkb_rule_names xkbRuleNames;
struct xkb_keymap *keymap;
+ struct weston_output *weston_output;
int i;
pixman_box32_t box;
pixman_region32_t damage;
@@ -843,10 +853,9 @@ xf_peer_activate(freerdp_peer* client)
}
}
- rfx_context_reset(peerCtx->rfx_context);
-#ifdef HAVE_NSC_RESET
- nsc_context_reset(peerCtx->nsc_context);
-#endif
+ weston_output = &output->base;
+ RFX_RESET(peerCtx->rfx_context, weston_output->width, weston_output->height);
+ NSC_RESET(peerCtx->nsc_context, weston_output->width, weston_output->height);
if (peersItem->flags & RDP_PEER_ACTIVATED)
return TRUE;