FreeRDP
client/rdpgfx_main.c File Reference
#include <assert.h>
#include <winpr/crt.h>
#include <winpr/wlog.h>
#include <winpr/print.h>
#include <winpr/synch.h>
#include <winpr/thread.h>
#include <winpr/stream.h>
#include <winpr/sysinfo.h>
#include <winpr/cmdline.h>
#include <winpr/collections.h>
#include <freerdp/addin.h>
#include <freerdp/channels/log.h>
#include "rdpgfx_common.h"
#include "rdpgfx_codec.h"
#include "rdpgfx_main.h"

Macros

#define TAG   CHANNELS_TAG("rdpgfx.client")
 
#define DVCPluginEntry   FREERDP_API DVCPluginEntry
 

Functions

static UINT rdpgfx_send_caps_advertise_pdu (RDPGFX_CHANNEL_CALLBACK *callback)
 
static UINT rdpgfx_recv_caps_confirm_pdu (RDPGFX_CHANNEL_CALLBACK *callback, wStream *s)
 
static UINT rdpgfx_send_frame_acknowledge_pdu (RDPGFX_CHANNEL_CALLBACK *callback, RDPGFX_FRAME_ACKNOWLEDGE_PDU *pdu)
 
static UINT rdpgfx_send_qoe_frame_acknowledge_pdu (RDPGFX_CHANNEL_CALLBACK *callback, const RDPGFX_QOE_FRAME_ACKNOWLEDGE_PDU *pdu)
 
static UINT rdpgfx_recv_reset_graphics_pdu (RDPGFX_CHANNEL_CALLBACK *callback, wStream *s)
 
static UINT rdpgfx_recv_evict_cache_entry_pdu (RDPGFX_CHANNEL_CALLBACK *callback, wStream *s)
 
static UINT rdpgfx_recv_cache_import_reply_pdu (RDPGFX_CHANNEL_CALLBACK *callback, wStream *s)
 
static UINT rdpgfx_recv_create_surface_pdu (RDPGFX_CHANNEL_CALLBACK *callback, wStream *s)
 
static UINT rdpgfx_recv_delete_surface_pdu (RDPGFX_CHANNEL_CALLBACK *callback, wStream *s)
 
static UINT rdpgfx_recv_start_frame_pdu (RDPGFX_CHANNEL_CALLBACK *callback, wStream *s)
 
static UINT rdpgfx_recv_end_frame_pdu (RDPGFX_CHANNEL_CALLBACK *callback, wStream *s)
 
static UINT rdpgfx_recv_wire_to_surface_1_pdu (RDPGFX_CHANNEL_CALLBACK *callback, wStream *s)
 
static UINT rdpgfx_recv_wire_to_surface_2_pdu (RDPGFX_CHANNEL_CALLBACK *callback, wStream *s)
 
static UINT rdpgfx_recv_delete_encoding_context_pdu (RDPGFX_CHANNEL_CALLBACK *callback, wStream *s)
 
static UINT rdpgfx_recv_solid_fill_pdu (RDPGFX_CHANNEL_CALLBACK *callback, wStream *s)
 
static UINT rdpgfx_recv_surface_to_surface_pdu (RDPGFX_CHANNEL_CALLBACK *callback, wStream *s)
 
static UINT rdpgfx_recv_surface_to_cache_pdu (RDPGFX_CHANNEL_CALLBACK *callback, wStream *s)
 
static UINT rdpgfx_recv_cache_to_surface_pdu (RDPGFX_CHANNEL_CALLBACK *callback, wStream *s)
 
static UINT rdpgfx_recv_map_surface_to_output_pdu (RDPGFX_CHANNEL_CALLBACK *callback, wStream *s)
 
static UINT rdpgfx_recv_map_surface_to_window_pdu (RDPGFX_CHANNEL_CALLBACK *callback, wStream *s)
 
static UINT rdpgfx_recv_pdu (RDPGFX_CHANNEL_CALLBACK *callback, wStream *s)
 
static UINT rdpgfx_on_data_received (IWTSVirtualChannelCallback *pChannelCallback, wStream *data)
 
static UINT rdpgfx_on_open (IWTSVirtualChannelCallback *pChannelCallback)
 
static UINT rdpgfx_on_close (IWTSVirtualChannelCallback *pChannelCallback)
 
static UINT rdpgfx_on_new_channel_connection (IWTSListenerCallback *pListenerCallback, IWTSVirtualChannel *pChannel, BYTE *Data, BOOL *pbAccept, IWTSVirtualChannelCallback **ppCallback)
 
static UINT rdpgfx_plugin_initialize (IWTSPlugin *pPlugin, IWTSVirtualChannelManager *pChannelMgr)
 
static UINT rdpgfx_plugin_terminated (IWTSPlugin *pPlugin)
 
static UINT rdpgfx_set_surface_data (RdpgfxClientContext *context, UINT16 surfaceId, void *pData)
 
static UINT rdpgfx_get_surface_ids (RdpgfxClientContext *context, UINT16 **ppSurfaceIds, UINT16 *count_out)
 
static voidrdpgfx_get_surface_data (RdpgfxClientContext *context, UINT16 surfaceId)
 
static UINT rdpgfx_set_cache_slot_data (RdpgfxClientContext *context, UINT16 cacheSlot, void *pData)
 
static voidrdpgfx_get_cache_slot_data (RdpgfxClientContext *context, UINT16 cacheSlot)
 
UINT DVCPluginEntry (IDRDYNVC_ENTRY_POINTS *pEntryPoints)
 

Macro Definition Documentation

#define DVCPluginEntry   FREERDP_API DVCPluginEntry
#define TAG   CHANNELS_TAG("rdpgfx.client")

FreeRDP: A Remote Desktop Protocol Implementation Graphics Pipeline Extension

Copyright 2013-2014 Marc-Andre Moreau marca.nosp@m.ndre.nosp@m..more.nosp@m.au@g.nosp@m.mail..nosp@m.com Copyright 2015 Thincast Technologies GmbH Copyright 2015 DI (FH) Martin Haimberger marti.nosp@m.n.ha.nosp@m.imber.nosp@m.ger@.nosp@m.thinc.nosp@m.ast..nosp@m.com Copyright 2016 Thincast Technologies GmbH Copyright 2016 Armin Novak armin.nosp@m..nov.nosp@m.ak@th.nosp@m.inca.nosp@m.st.co.nosp@m.m

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Function Documentation

UINT DVCPluginEntry ( IDRDYNVC_ENTRY_POINTS *  pEntryPoints)

Function description

Returns
0 on success, otherwise a Win32 error code

Here is the call graph for this function:

static void* rdpgfx_get_cache_slot_data ( RdpgfxClientContext *  context,
UINT16  cacheSlot 
)
static

Here is the call graph for this function:

Here is the caller graph for this function:

static void* rdpgfx_get_surface_data ( RdpgfxClientContext *  context,
UINT16  surfaceId 
)
static

Here is the call graph for this function:

Here is the caller graph for this function:

static UINT rdpgfx_get_surface_ids ( RdpgfxClientContext *  context,
UINT16 **  ppSurfaceIds,
UINT16 count_out 
)
static

Function description

Returns
0 on success, otherwise a Win32 error code

Here is the call graph for this function:

Here is the caller graph for this function:

static UINT rdpgfx_on_close ( IWTSVirtualChannelCallback *  pChannelCallback)
static

Function description

Returns
0 on success, otherwise a Win32 error code

Here is the call graph for this function:

Here is the caller graph for this function:

static UINT rdpgfx_on_data_received ( IWTSVirtualChannelCallback *  pChannelCallback,
wStream *  data 
)
static

Function description

Returns
0 on success, otherwise a Win32 error code

Here is the call graph for this function:

Here is the caller graph for this function:

static UINT rdpgfx_on_new_channel_connection ( IWTSListenerCallback *  pListenerCallback,
IWTSVirtualChannel *  pChannel,
BYTE Data,
BOOL *  pbAccept,
IWTSVirtualChannelCallback **  ppCallback 
)
static

Function description

Returns
0 on success, otherwise a Win32 error code

Here is the call graph for this function:

Here is the caller graph for this function:

static UINT rdpgfx_on_open ( IWTSVirtualChannelCallback *  pChannelCallback)
static

Function description

Returns
0 on success, otherwise a Win32 error code

Here is the call graph for this function:

Here is the caller graph for this function:

static UINT rdpgfx_plugin_initialize ( IWTSPlugin *  pPlugin,
IWTSVirtualChannelManager *  pChannelMgr 
)
static

Function description

Returns
0 on success, otherwise a Win32 error code

Here is the call graph for this function:

Here is the caller graph for this function:

static UINT rdpgfx_plugin_terminated ( IWTSPlugin *  pPlugin)
static

Function description

Returns
0 on success, otherwise a Win32 error code

Here is the call graph for this function:

Here is the caller graph for this function:

static UINT rdpgfx_recv_cache_import_reply_pdu ( RDPGFX_CHANNEL_CALLBACK *  callback,
wStream *  s 
)
static

Function description

Returns
0 on success, otherwise a Win32 error code

Here is the call graph for this function:

Here is the caller graph for this function:

static UINT rdpgfx_recv_cache_to_surface_pdu ( RDPGFX_CHANNEL_CALLBACK *  callback,
wStream *  s 
)
static

Function description

Returns
0 on success, otherwise a Win32 error code

Here is the call graph for this function:

Here is the caller graph for this function:

static UINT rdpgfx_recv_caps_confirm_pdu ( RDPGFX_CHANNEL_CALLBACK *  callback,
wStream *  s 
)
static

Function description

Returns
0 on success, otherwise a Win32 error code

Here is the call graph for this function:

Here is the caller graph for this function:

static UINT rdpgfx_recv_create_surface_pdu ( RDPGFX_CHANNEL_CALLBACK *  callback,
wStream *  s 
)
static

Function description

Returns
0 on success, otherwise a Win32 error code

Here is the call graph for this function:

Here is the caller graph for this function:

static UINT rdpgfx_recv_delete_encoding_context_pdu ( RDPGFX_CHANNEL_CALLBACK *  callback,
wStream *  s 
)
static

Function description

Returns
0 on success, otherwise a Win32 error code

Here is the call graph for this function:

Here is the caller graph for this function:

static UINT rdpgfx_recv_delete_surface_pdu ( RDPGFX_CHANNEL_CALLBACK *  callback,
wStream *  s 
)
static

Function description

Returns
0 on success, otherwise a Win32 error code

Here is the call graph for this function:

Here is the caller graph for this function:

static UINT rdpgfx_recv_end_frame_pdu ( RDPGFX_CHANNEL_CALLBACK *  callback,
wStream *  s 
)
static

Function description

Returns
0 on success, otherwise a Win32 error code

Here is the call graph for this function:

Here is the caller graph for this function:

static UINT rdpgfx_recv_evict_cache_entry_pdu ( RDPGFX_CHANNEL_CALLBACK *  callback,
wStream *  s 
)
static

Function description

Returns
0 on success, otherwise a Win32 error code

Here is the call graph for this function:

Here is the caller graph for this function:

static UINT rdpgfx_recv_map_surface_to_output_pdu ( RDPGFX_CHANNEL_CALLBACK *  callback,
wStream *  s 
)
static

Function description

Returns
0 on success, otherwise a Win32 error code

Here is the call graph for this function:

Here is the caller graph for this function:

static UINT rdpgfx_recv_map_surface_to_window_pdu ( RDPGFX_CHANNEL_CALLBACK *  callback,
wStream *  s 
)
static

Function description

Returns
0 on success, otherwise a Win32 error code

Here is the call graph for this function:

Here is the caller graph for this function:

static UINT rdpgfx_recv_pdu ( RDPGFX_CHANNEL_CALLBACK *  callback,
wStream *  s 
)
static

Function description

Returns
0 on success, otherwise a Win32 error code

Here is the call graph for this function:

Here is the caller graph for this function:

static UINT rdpgfx_recv_reset_graphics_pdu ( RDPGFX_CHANNEL_CALLBACK *  callback,
wStream *  s 
)
static

Function description

Returns
0 on success, otherwise a Win32 error code

Here is the call graph for this function:

Here is the caller graph for this function:

static UINT rdpgfx_recv_solid_fill_pdu ( RDPGFX_CHANNEL_CALLBACK *  callback,
wStream *  s 
)
static

Function description

Returns
0 on success, otherwise a Win32 error code

Here is the call graph for this function:

Here is the caller graph for this function:

static UINT rdpgfx_recv_start_frame_pdu ( RDPGFX_CHANNEL_CALLBACK *  callback,
wStream *  s 
)
static

Function description

Returns
0 on success, otherwise a Win32 error code

Here is the call graph for this function:

Here is the caller graph for this function:

static UINT rdpgfx_recv_surface_to_cache_pdu ( RDPGFX_CHANNEL_CALLBACK *  callback,
wStream *  s 
)
static

Function description

Returns
0 on success, otherwise a Win32 error code

Here is the call graph for this function:

Here is the caller graph for this function:

static UINT rdpgfx_recv_surface_to_surface_pdu ( RDPGFX_CHANNEL_CALLBACK *  callback,
wStream *  s 
)
static

Function description

Returns
0 on success, otherwise a Win32 error code

Here is the call graph for this function:

Here is the caller graph for this function:

static UINT rdpgfx_recv_wire_to_surface_1_pdu ( RDPGFX_CHANNEL_CALLBACK *  callback,
wStream *  s 
)
static

Function description

Returns
0 on success, otherwise a Win32 error code

Here is the call graph for this function:

Here is the caller graph for this function:

static UINT rdpgfx_recv_wire_to_surface_2_pdu ( RDPGFX_CHANNEL_CALLBACK *  callback,
wStream *  s 
)
static

Function description

Returns
0 on success, otherwise a Win32 error code

Here is the call graph for this function:

Here is the caller graph for this function:

static UINT rdpgfx_send_caps_advertise_pdu ( RDPGFX_CHANNEL_CALLBACK *  callback)
static

Function description

Returns
0 on success, otherwise a Win32 error code

Here is the call graph for this function:

Here is the caller graph for this function:

static UINT rdpgfx_send_frame_acknowledge_pdu ( RDPGFX_CHANNEL_CALLBACK *  callback,
RDPGFX_FRAME_ACKNOWLEDGE_PDU *  pdu 
)
static

Function description

Returns
0 on success, otherwise a Win32 error code

Here is the call graph for this function:

Here is the caller graph for this function:

static UINT rdpgfx_send_qoe_frame_acknowledge_pdu ( RDPGFX_CHANNEL_CALLBACK *  callback,
const RDPGFX_QOE_FRAME_ACKNOWLEDGE_PDU *  pdu 
)
static

Here is the call graph for this function:

Here is the caller graph for this function:

static UINT rdpgfx_set_cache_slot_data ( RdpgfxClientContext *  context,
UINT16  cacheSlot,
void pData 
)
static

Function description

Returns
0 on success, otherwise a Win32 error code

Here is the call graph for this function:

Here is the caller graph for this function:

static UINT rdpgfx_set_surface_data ( RdpgfxClientContext *  context,
UINT16  surfaceId,
void pData 
)
static

Function description

Returns
0 on success, otherwise a Win32 error code

Here is the call graph for this function:

Here is the caller graph for this function: