FreeRDP
include/freerdp/server/shadow.h File Reference
#include <freerdp/api.h>
#include <freerdp/types.h>
#include <freerdp/freerdp.h>
#include <freerdp/settings.h>
#include <freerdp/listener.h>
#include <freerdp/channels/wtsvc.h>
#include <freerdp/channels/channels.h>
#include <freerdp/server/encomsp.h>
#include <freerdp/server/remdesk.h>
#include <freerdp/server/rdpsnd.h>
#include <freerdp/server/rdpgfx.h>
#include <freerdp/codec/color.h>
#include <freerdp/codec/region.h>
#include <winpr/crt.h>
#include <winpr/synch.h>
#include <winpr/collections.h>
#include <winpr/cmdline.h>
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, UINT8 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 *data)
 
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 WINPR_DEPRECATED_VAR ("Use shadow_subsystem_pointer_convert_alpha_pointer_data_to_format instead", int shadow_subsystem_pointer_convert_alpha_pointer_data(const BYTE *WINPR_RESTRICT pixels, BOOL premultiplied, UINT32 width, UINT32 height, SHADOW_MSG_OUT_POINTER_ALPHA_UPDATE *WINPR_RESTRICT pointerColor))
 
FREERDP_API int shadow_subsystem_pointer_convert_alpha_pointer_data_to_format (const BYTE *WINPR_RESTRICT pixels, UINT32 format, BOOL premultiplied, UINT32 width, UINT32 height, SHADOW_MSG_OUT_POINTER_ALPHA_UPDATE *WINPR_RESTRICT 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 void shadow_server_free (rdpShadowServer *server)
 
FREERDP_API rdpShadowServer * shadow_server_new (void)
 
FREERDP_API int shadow_capture_align_clip_rect (RECTANGLE_16 *rect, const RECTANGLE_16 *clip)
 
FREERDP_API WINPR_DEPRECATED_VAR ("Use shadow_capture_compare_with_format", int shadow_capture_compare(const BYTE *WINPR_RESTRICT pData1, UINT32 nStep1, UINT32 nWidth, UINT32 nHeight, const BYTE *WINPR_RESTRICT pData2, UINT32 nStep2, RECTANGLE_16 *WINPR_RESTRICT rect))
 
FREERDP_API int shadow_capture_compare_with_format (const BYTE *WINPR_RESTRICT pData1, UINT32 format1, UINT32 nStep1, UINT32 nWidth, UINT32 nHeight, const BYTE *WINPR_RESTRICT pData2, UINT32 format2, UINT32 nStep2, RECTANGLE_16 *WINPR_RESTRICT 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 UINT32 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 *data)

◆ 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, UINT8 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,
const RECTANGLE_16 clip 
)
Here is the caller graph for this function:

◆ shadow_capture_compare_with_format()

FREERDP_API int shadow_capture_compare_with_format ( const BYTE *WINPR_RESTRICT  pData1,
UINT32  format1,
UINT32  nStep1,
UINT32  nWidth,
UINT32  nHeight,
const BYTE *WINPR_RESTRICT  pData2,
UINT32  format2,
UINT32  nStep2,
RECTANGLE_16 *WINPR_RESTRICT  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 UINT32 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_to_format()

FREERDP_API int shadow_subsystem_pointer_convert_alpha_pointer_data_to_format ( const BYTE *WINPR_RESTRICT  pixels,
UINT32  format,
BOOL  premultiplied,
UINT32  width,
UINT32  height,
SHADOW_MSG_OUT_POINTER_ALPHA_UPDATE *WINPR_RESTRICT  pointerColor 
)
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:

◆ WINPR_DEPRECATED_VAR() [1/2]

FREERDP_API WINPR_DEPRECATED_VAR ( "Use shadow_capture_compare_with_format ,
int   shadow_capture_compareconst BYTE *WINPR_RESTRICT pData1, UINT32 nStep1, UINT32 nWidth, UINT32 nHeight, const BYTE *WINPR_RESTRICT pData2, UINT32 nStep2, RECTANGLE_16 *WINPR_RESTRICT rect 
)

◆ WINPR_DEPRECATED_VAR() [2/2]

FREERDP_API WINPR_DEPRECATED_VAR ( "Use shadow_subsystem_pointer_convert_alpha_pointer_data_to_format instead"  ,
int   shadow_subsystem_pointer_convert_alpha_pointer_dataconst BYTE *WINPR_RESTRICT pixels, BOOL premultiplied, UINT32 width, UINT32 height, SHADOW_MSG_OUT_POINTER_ALPHA_UPDATE *WINPR_RESTRICT pointerColor 
)