[PATCH 1/5] rdp: allow to compile against FreeRDP 2.0
Hardening
rdp.effort at gmail.com
Fri Apr 22 13:23:23 UTC 2016
Le 22/04/2016 15:19, David Fort a écrit :
> FreeRDP 2.0 is about to be released, this allows to compile against this version.
>
> Signed-off-by: David Fort <contact at hardening-consulting.com>
> ---
> configure.ac | 8 +++++++-
> src/compositor-rdp.c | 23 ++++++++++++++++-------
> 2 files changed, 23 insertions(+), 8 deletions(-)
>
> diff --git a/configure.ac b/configure.ac
> index 670200c..9c70b2e 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -242,12 +242,18 @@ 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(FreeRDP, [freerdp >= 1.1.0],
> + [RDP_COMPOSITOR_CFLAGS=$FreeRDP_CFLAGS; RDP_COMPOSITOR_LIBS=$FreeRDP_LIBS;],
> + [PKG_CHECK_MODULES(FreeRDP2, [freerdp2 >= 2.0.0],[RDP_COMPOSITOR_CFLAGS=$FreeRDP2_CFLAGS; RDP_COMPOSITOR_LIBS=$FreeRDP2_LIBS;])]
> + )
>
> SAVED_CPPFLAGS="$CPPFLAGS"
> CPPFLAGS="$CPPFLAGS $RDP_COMPOSITOR_CFLAGS"
> AC_CHECK_HEADERS([freerdp/version.h])
> CPPFLAGS="$SAVED_CPPFLAGS"
> +
> + AC_SUBST(RDP_COMPOSITOR_CFLAGS)
> + AC_SUBST(RDP_COMPOSITOR_LIBS)
> fi
>
> AC_ARG_ENABLE([screen-sharing], [ --enable-screen-sharing],,
> diff --git a/src/compositor-rdp.c b/src/compositor-rdp.c
> index 773b6b5..0649bee 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
> @@ -819,6 +828,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;
> @@ -867,10 +877,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;
>
I forgot to specify that this one superseeds
https://patchwork.freedesktop.org/patch/76168/.
Best regards.
--
David FORT
website: http://www.hardening-consulting.com/
More information about the wayland-devel
mailing list