FreeRDP
include/freerdp/server/shadow.h File Reference
This graph shows which files directly or indirectly include this file:

Data Structures

struct  rdpShadowClient
 
struct  rdpShadowServer
 
struct  rdpShadowSurface
 
struct  RDP_SHADOW_ENTRY_POINTS
 
struct  rdpShadowSubsystem
 
struct  SHADOW_MSG_OUT
 
struct  SHADOW_MSG_OUT_POINTER_POSITION_UPDATE
 
struct  SHADOW_MSG_OUT_POINTER_ALPHA_UPDATE
 
struct  SHADOW_MSG_OUT_AUDIO_OUT_SAMPLES
 
struct  SHADOW_MSG_OUT_AUDIO_OUT_VOLUME
 

Macros

#define SHADOW_MSG_IN_REFRESH_REQUEST_ID   1001
 
#define SHADOW_MSG_OUT_POINTER_POSITION_UPDATE_ID   2001
 
#define SHADOW_MSG_OUT_POINTER_ALPHA_UPDATE_ID   2002
 
#define SHADOW_MSG_OUT_AUDIO_OUT_SAMPLES_ID   2003
 
#define SHADOW_MSG_OUT_AUDIO_OUT_VOLUME_ID   2004
 

Typedefs

typedef int(* pfnShadowSubsystemEntry) (RDP_SHADOW_ENTRY_POINTS *pEntryPoints)
 
typedef rdpShadowSubsystem *(* pfnShadowSubsystemNew) (void)
 
typedef void(* pfnShadowSubsystemFree) (rdpShadowSubsystem *subsystem)
 
typedef int(* pfnShadowSubsystemInit) (rdpShadowSubsystem *subsystem)
 
typedef int(* pfnShadowSubsystemUninit) (rdpShadowSubsystem *subsystem)
 
typedef int(* pfnShadowSubsystemStart) (rdpShadowSubsystem *subsystem)
 
typedef int(* pfnShadowSubsystemStop) (rdpShadowSubsystem *subsystem)
 
typedef UINT32(* pfnShadowEnumMonitors) (MONITOR_DEF *monitors, UINT32 maxMonitors)
 
typedef int(* pfnShadowAuthenticate) (rdpShadowSubsystem *subsystem, rdpShadowClient *client, const char *user, const char *domain, const char *password)
 
typedef BOOL(* pfnShadowClientConnect) (rdpShadowSubsystem *subsystem, rdpShadowClient *client)
 
typedef void(* pfnShadowClientDisconnect) (rdpShadowSubsystem *subsystem, rdpShadowClient *client)
 
typedef BOOL(* pfnShadowClientCapabilities) (rdpShadowSubsystem *subsystem, rdpShadowClient *client)
 
typedef BOOL(* pfnShadowSynchronizeEvent) (rdpShadowSubsystem *subsystem, rdpShadowClient *client, UINT32 flags)
 
typedef BOOL(* pfnShadowKeyboardEvent) (rdpShadowSubsystem *subsystem, rdpShadowClient *client, UINT16 flags, UINT16 code)
 
typedef BOOL(* pfnShadowUnicodeKeyboardEvent) (rdpShadowSubsystem *subsystem, rdpShadowClient *client, UINT16 flags, UINT16 code)
 
typedef BOOL(* pfnShadowMouseEvent) (rdpShadowSubsystem *subsystem, rdpShadowClient *client, UINT16 flags, UINT16 x, UINT16 y)
 
typedef BOOL(* pfnShadowExtendedMouseEvent) (rdpShadowSubsystem *subsystem, rdpShadowClient *client, UINT16 flags, UINT16 x, UINT16 y)
 
typedef BOOL(* pfnShadowChannelAudinServerReceiveSamples) (rdpShadowSubsystem *subsystem, rdpShadowClient *client, const AUDIO_FORMAT *format, wStream *buf, size_t nframes)
 
typedef void(* MSG_OUT_FREE_FN) (UINT32 id, SHADOW_MSG_OUT *msg)
 

Functions

FREERDP_API void shadow_subsystem_set_entry_builtin (const char *name)
 
FREERDP_API void shadow_subsystem_set_entry (pfnShadowSubsystemEntry pEntry)
 
FREERDP_API int shadow_subsystem_pointer_convert_alpha_pointer_data (BYTE *pixels, BOOL premultiplied, UINT32 width, UINT32 height, SHADOW_MSG_OUT_POINTER_ALPHA_UPDATE *pointerColor)
 
FREERDP_API int shadow_server_parse_command_line (rdpShadowServer *server, int argc, char **argv, COMMAND_LINE_ARGUMENT_A *cargs)
 
FREERDP_API int shadow_server_command_line_status_print (rdpShadowServer *server, int argc, char **argv, int status, COMMAND_LINE_ARGUMENT_A *cargs)
 
FREERDP_API int shadow_server_start (rdpShadowServer *server)
 
FREERDP_API int shadow_server_stop (rdpShadowServer *server)
 
FREERDP_API int shadow_server_init (rdpShadowServer *server)
 
FREERDP_API int shadow_server_uninit (rdpShadowServer *server)
 
FREERDP_API UINT32 shadow_enum_monitors (MONITOR_DEF *monitors, UINT32 maxMonitors)
 
FREERDP_API rdpShadowServer * shadow_server_new (void)
 
FREERDP_API void shadow_server_free (rdpShadowServer *server)
 
FREERDP_API int shadow_capture_align_clip_rect (RECTANGLE_16 *rect, RECTANGLE_16 *clip)
 
FREERDP_API int shadow_capture_compare (BYTE *pData1, UINT32 nStep1, UINT32 nWidth, UINT32 nHeight, BYTE *pData2, UINT32 nStep2, RECTANGLE_16 *rect)
 
FREERDP_API void shadow_subsystem_frame_update (rdpShadowSubsystem *subsystem)
 
FREERDP_API BOOL shadow_client_post_msg (rdpShadowClient *client, void *context, UINT32 type, SHADOW_MSG_OUT *msg, void *lParam)
 
FREERDP_API int shadow_client_boardcast_msg (rdpShadowServer *server, void *context, UINT32 type, SHADOW_MSG_OUT *msg, void *lParam)
 
FREERDP_API int shadow_client_boardcast_quit (rdpShadowServer *server, int nExitCode)
 
FREERDP_API int shadow_encoder_preferred_fps (rdpShadowEncoder *encoder)
 
FREERDP_API UINT32 shadow_encoder_inflight_frames (rdpShadowEncoder *encoder)
 
FREERDP_API BOOL shadow_screen_resize (rdpShadowScreen *screen)
 

Macro Definition Documentation

◆ SHADOW_MSG_IN_REFRESH_REQUEST_ID

#define SHADOW_MSG_IN_REFRESH_REQUEST_ID   1001

◆ SHADOW_MSG_OUT_AUDIO_OUT_SAMPLES_ID

#define SHADOW_MSG_OUT_AUDIO_OUT_SAMPLES_ID   2003

◆ SHADOW_MSG_OUT_AUDIO_OUT_VOLUME_ID

#define SHADOW_MSG_OUT_AUDIO_OUT_VOLUME_ID   2004

◆ SHADOW_MSG_OUT_POINTER_ALPHA_UPDATE_ID

#define SHADOW_MSG_OUT_POINTER_ALPHA_UPDATE_ID   2002

◆ SHADOW_MSG_OUT_POINTER_POSITION_UPDATE_ID

#define SHADOW_MSG_OUT_POINTER_POSITION_UPDATE_ID   2001

Typedef Documentation

◆ MSG_OUT_FREE_FN

typedef void(* MSG_OUT_FREE_FN) (UINT32 id, SHADOW_MSG_OUT *msg)

◆ pfnShadowAuthenticate

typedef int(* pfnShadowAuthenticate) (rdpShadowSubsystem *subsystem, rdpShadowClient *client, const char *user, const char *domain, const char *password)

◆ pfnShadowChannelAudinServerReceiveSamples

typedef BOOL(* pfnShadowChannelAudinServerReceiveSamples) (rdpShadowSubsystem *subsystem, rdpShadowClient *client, const AUDIO_FORMAT *format, wStream *buf, size_t nframes)

◆ pfnShadowClientCapabilities

typedef BOOL(* pfnShadowClientCapabilities) (rdpShadowSubsystem *subsystem, rdpShadowClient *client)

◆ pfnShadowClientConnect

typedef BOOL(* pfnShadowClientConnect) (rdpShadowSubsystem *subsystem, rdpShadowClient *client)

◆ pfnShadowClientDisconnect

typedef void(* pfnShadowClientDisconnect) (rdpShadowSubsystem *subsystem, rdpShadowClient *client)

◆ pfnShadowEnumMonitors

typedef UINT32(* pfnShadowEnumMonitors) (MONITOR_DEF *monitors, UINT32 maxMonitors)

◆ pfnShadowExtendedMouseEvent

typedef BOOL(* pfnShadowExtendedMouseEvent) (rdpShadowSubsystem *subsystem, rdpShadowClient *client, UINT16 flags, UINT16 x, UINT16 y)

◆ pfnShadowKeyboardEvent

typedef BOOL(* pfnShadowKeyboardEvent) (rdpShadowSubsystem *subsystem, rdpShadowClient *client, UINT16 flags, UINT16 code)

◆ pfnShadowMouseEvent

typedef BOOL(* pfnShadowMouseEvent) (rdpShadowSubsystem *subsystem, rdpShadowClient *client, UINT16 flags, UINT16 x, UINT16 y)

◆ pfnShadowSubsystemEntry

typedef int(* pfnShadowSubsystemEntry) (RDP_SHADOW_ENTRY_POINTS *pEntryPoints)

◆ pfnShadowSubsystemFree

typedef void(* pfnShadowSubsystemFree) (rdpShadowSubsystem *subsystem)

◆ pfnShadowSubsystemInit

typedef int(* pfnShadowSubsystemInit) (rdpShadowSubsystem *subsystem)

◆ pfnShadowSubsystemNew

typedef rdpShadowSubsystem*(* pfnShadowSubsystemNew) (void)

◆ pfnShadowSubsystemStart

typedef int(* pfnShadowSubsystemStart) (rdpShadowSubsystem *subsystem)

◆ pfnShadowSubsystemStop

typedef int(* pfnShadowSubsystemStop) (rdpShadowSubsystem *subsystem)

◆ pfnShadowSubsystemUninit

typedef int(* pfnShadowSubsystemUninit) (rdpShadowSubsystem *subsystem)

◆ pfnShadowSynchronizeEvent

typedef BOOL(* pfnShadowSynchronizeEvent) (rdpShadowSubsystem *subsystem, rdpShadowClient *client, UINT32 flags)

◆ pfnShadowUnicodeKeyboardEvent

typedef BOOL(* pfnShadowUnicodeKeyboardEvent) (rdpShadowSubsystem *subsystem, rdpShadowClient *client, UINT16 flags, UINT16 code)

Function Documentation

◆ shadow_capture_align_clip_rect()

FREERDP_API int shadow_capture_align_clip_rect ( RECTANGLE_16 *  rect,
RECTANGLE_16 *  clip 
)
Here is the caller graph for this function:

◆ shadow_capture_compare()

FREERDP_API int shadow_capture_compare ( BYTE pData1,
UINT32  nStep1,
UINT32  nWidth,
UINT32  nHeight,
BYTE pData2,
UINT32  nStep2,
RECTANGLE_16 *  rect 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ shadow_client_boardcast_msg()

FREERDP_API int shadow_client_boardcast_msg ( rdpShadowServer *  server,
void *  context,
UINT32  type,
SHADOW_MSG_OUT *  msg,
void *  lParam 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ shadow_client_boardcast_quit()

FREERDP_API int shadow_client_boardcast_quit ( rdpShadowServer *  server,
int  nExitCode 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ shadow_client_post_msg()

FREERDP_API BOOL shadow_client_post_msg ( rdpShadowClient *  client,
void *  context,
UINT32  type,
SHADOW_MSG_OUT *  msg,
void *  lParam 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ shadow_encoder_inflight_frames()

FREERDP_API UINT32 shadow_encoder_inflight_frames ( rdpShadowEncoder *  encoder)
Here is the caller graph for this function:

◆ shadow_encoder_preferred_fps()

FREERDP_API int shadow_encoder_preferred_fps ( rdpShadowEncoder *  encoder)
Here is the caller graph for this function:

◆ shadow_enum_monitors()

FREERDP_API UINT32 shadow_enum_monitors ( MONITOR_DEF *  monitors,
UINT32  maxMonitors 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ shadow_screen_resize()

FREERDP_API BOOL shadow_screen_resize ( rdpShadowScreen *  screen)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ shadow_server_command_line_status_print()

FREERDP_API int shadow_server_command_line_status_print ( rdpShadowServer *  server,
int  argc,
char **  argv,
int  status,
COMMAND_LINE_ARGUMENT_A *  cargs 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ shadow_server_free()

FREERDP_API void shadow_server_free ( rdpShadowServer *  server)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ shadow_server_init()

FREERDP_API int shadow_server_init ( rdpShadowServer *  server)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ shadow_server_new()

FREERDP_API rdpShadowServer* shadow_server_new ( void  )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ shadow_server_parse_command_line()

FREERDP_API int shadow_server_parse_command_line ( rdpShadowServer *  server,
int  argc,
char **  argv,
COMMAND_LINE_ARGUMENT_A *  cargs 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ shadow_server_start()

FREERDP_API int shadow_server_start ( rdpShadowServer *  server)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ shadow_server_stop()

FREERDP_API int shadow_server_stop ( rdpShadowServer *  server)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ shadow_server_uninit()

FREERDP_API int shadow_server_uninit ( rdpShadowServer *  server)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ shadow_subsystem_frame_update()

FREERDP_API void shadow_subsystem_frame_update ( rdpShadowSubsystem *  subsystem)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ shadow_subsystem_pointer_convert_alpha_pointer_data()

FREERDP_API int shadow_subsystem_pointer_convert_alpha_pointer_data ( BYTE pixels,
BOOL  premultiplied,
UINT32  width,
UINT32  height,
SHADOW_MSG_OUT_POINTER_ALPHA_UPDATE *  pointerColor 
)

Common function for subsystem implementation. This function convert 32bit ARGB format pixels to xormask data and andmask data and fill into SHADOW_MSG_OUT_POINTER_ALPHA_UPDATE Caller should free the andMaskData and xorMaskData later.

Here is the caller graph for this function:

◆ shadow_subsystem_set_entry()

FREERDP_API void shadow_subsystem_set_entry ( pfnShadowSubsystemEntry  pEntry)
Here is the caller graph for this function:

◆ shadow_subsystem_set_entry_builtin()

FREERDP_API void shadow_subsystem_set_entry_builtin ( const char *  name)
Here is the call graph for this function:
Here is the caller graph for this function: