diff options
author | FORT David <rdp.effort@gmail.com> | 2016-05-01 23:32:07 +0200 |
---|---|---|
committer | Bryce Harrington <bryce@osg.samsung.com> | 2016-05-19 14:48:17 -0700 |
commit | 58b63ab7f1eec70c421b42a509f13dbc08a558ad (patch) | |
tree | eea94bcd88e19597869620349ea5d3d7b19d8374 | |
parent | 0887956e4d2ea747db97ce7943d3e0ff79f89cd9 (diff) | |
download | weston-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>
-rw-r--r-- | configure.ac | 5 | ||||
-rw-r--r-- | src/compositor-rdp.c | 23 |
2 files changed, 20 insertions, 8 deletions
diff --git a/configure.ac b/configure.ac index c49c632a..e1300b45 100644 --- a/configure.ac +++ b/configure.ac @@ -238,7 +238,10 @@ AM_CONDITIONAL([ENABLE_RDP_COMPOSITOR], [test x$enable_rdp_compositor = xyes]) if test x$enable_rdp_compositor = xyes; then AC_DEFINE([BUILD_RDP_COMPOSITOR], [1], [Build the RDP compositor]) - PKG_CHECK_MODULES(RDP_COMPOSITOR, [freerdp >= 1.1.0]) + PKG_CHECK_MODULES(RDP_COMPOSITOR, [freerdp2 >= 2.0.0], + [], + [PKG_CHECK_MODULES(RDP_COMPOSITOR, [freerdp >= 1.1.0],[])] + ) SAVED_CPPFLAGS="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $RDP_COMPOSITOR_CFLAGS" 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; |