neutrinordp: implement suppress output

This commit is contained in:
Jay Sorg 2019-04-09 23:50:28 -07:00
parent 4cbf84d99b
commit c3f7f6bd84
2 changed files with 31 additions and 2 deletions

View File

@ -27,6 +27,12 @@
#include "log.h"
#include <freerdp/settings.h>
#if defined(VERSION_STRUCT_RDP_FREERDP)
#if VERSION_STRUCT_RDP_FREERDP > 1
#define NEUTRINORDP_HAS_SUPPRESS_OUTPUT
#endif
#endif
#ifdef XRDP_DEBUG
#define LOG_LEVEL 99
#else
@ -541,6 +547,24 @@ lxrdp_check_wait_objs(struct mod *mod)
return 0;
}
/******************************************************************************/
static int
lxrdp_frame_ack(struct mod* mod, int flags, int frame_id)
{
return 0;
}
/******************************************************************************/
static int
lxrdp_suppress_output(struct mod* mod, int suppress,
int left, int top, int right, int bottom)
{
#if defined(NEUTRINORDP_HAS_SUPPRESS_OUTPUT)
mod->inst->SendSuppressOutput(mod->inst, !suppress, left, top, right, bottom);
#endif
return 0;
}
/******************************************************************************/
static void
lfreerdp_begin_paint(rdpContext *context)
@ -2009,6 +2033,8 @@ mod_init(void)
mod->mod_session_change = lxrdp_session_change;
mod->mod_get_wait_objs = lxrdp_get_wait_objs;
mod->mod_check_wait_objs = lxrdp_check_wait_objs;
mod->mod_frame_ack = lxrdp_frame_ack;
mod->mod_suppress_output = lxrdp_suppress_output;
mod->inst = freerdp_new();
mod->inst->PreConnect = lfreerdp_pre_connect;

View File

@ -76,8 +76,11 @@ struct mod
int (*mod_get_wait_objs)(struct mod *v, tbus *read_objs, int *rcount,
tbus *write_objs, int *wcount, int *timeout);
int (*mod_check_wait_objs)(struct mod *v);
tintptr mod_dumby[100 - 9]; /* align, 100 minus the number of mod
functions above */
int (*mod_frame_ack)(struct mod* mod, int flags, int frame_id);
int (*mod_suppress_output)(struct mod* mod, int suppress,
int left, int top, int right, int bottom);
tintptr mod_dumby[100 - 11]; /* align, 100 minus the number of mod
functions above */
/* server functions */
int (*server_begin_update)(struct mod *v);
int (*server_end_update)(struct mod *v);