static void update_send_synchronize(rdpContext* context) { STREAM* s; rdpRdp* rdp = context->rdp; s = fastpath_update_pdu_init(rdp->fastpath); stream_write_zero(s, 2); /* pad2Octets (2 bytes) */ fastpath_send_update_pdu(rdp->fastpath, FASTPATH_UPDATETYPE_SYNCHRONIZE, s); }
static void update_send_pointer_cached(rdpContext* context, POINTER_CACHED_UPDATE* pointer_cached) { STREAM* s; rdpRdp* rdp = context->rdp; s = fastpath_update_pdu_init(rdp->fastpath); stream_write_UINT16(s, pointer_cached->cacheIndex); /* cacheIndex (2 bytes) */ fastpath_send_update_pdu(rdp->fastpath, FASTPATH_UPDATETYPE_CACHED, s); }
static void update_send_pointer_color(rdpContext* context, POINTER_COLOR_UPDATE* pointer_color) { STREAM* s; rdpRdp* rdp = context->rdp; s = fastpath_update_pdu_init(rdp->fastpath); update_write_pointer_color(s, pointer_color); fastpath_send_update_pdu(rdp->fastpath, FASTPATH_UPDATETYPE_COLOR, s); }
static void update_send_surface_frame_marker(rdpContext* context, SURFACE_FRAME_MARKER* surface_frame_marker) { STREAM* s; rdpRdp* rdp = context->rdp; s = fastpath_update_pdu_init(rdp->fastpath); update_write_surfcmd_frame_marker(s, surface_frame_marker->frameAction, surface_frame_marker->frameId); fastpath_send_update_pdu(rdp->fastpath, FASTPATH_UPDATETYPE_SURFCMDS, s); }
static void update_send_synchronize(rdpUpdate* update) { rdpRdp* rdp = (rdpRdp*)update->rdp; STREAM* s; s = fastpath_update_pdu_init(rdp->fastpath); stream_write_uint8(s, FASTPATH_UPDATETYPE_SYNCHRONIZE); /* updateHeader (1 byte) */ stream_write_uint16(s, 0); /* size (2 bytes) */ fastpath_send_update_pdu(rdp->fastpath, s); }
static void update_send_pointer_new(rdpContext* context, POINTER_NEW_UPDATE* pointer_new) { STREAM* s; rdpRdp* rdp = context->rdp; s = fastpath_update_pdu_init(rdp->fastpath); stream_write_UINT16(s, pointer_new->xorBpp); /* xorBpp (2 bytes) */ update_write_pointer_color(s, &pointer_new->colorPtrAttr); fastpath_send_update_pdu(rdp->fastpath, FASTPATH_UPDATETYPE_POINTER, s); }
static void update_send_surface_command(rdpContext* context, STREAM* s) { STREAM* update; rdpRdp* rdp = context->rdp; update = fastpath_update_pdu_init(rdp->fastpath); stream_check_size(update, stream_get_length(s)); stream_write(update, stream_get_head(s), stream_get_length(s)); fastpath_send_update_pdu(rdp->fastpath, FASTPATH_UPDATETYPE_SURFCMDS, update); }
static void update_send_surface_command(rdpContext* context, wStream* s) { wStream* update; rdpRdp* rdp = context->rdp; update = fastpath_update_pdu_init(rdp->fastpath); Stream_EnsureRemainingCapacity(update, Stream_GetPosition(s)); Stream_Write(update, Stream_Buffer(s), Stream_GetPosition(s)); fastpath_send_update_pdu(rdp->fastpath, FASTPATH_UPDATETYPE_SURFCMDS, update); Stream_Release(update); }
static void update_send_surface_bits(rdpContext* context, SURFACE_BITS_COMMAND* surface_bits_command) { STREAM* s; rdpRdp* rdp = context->rdp; s = fastpath_update_pdu_init(rdp->fastpath); stream_check_size(s, SURFCMD_SURFACE_BITS_HEADER_LENGTH + (int) surface_bits_command->bitmapDataLength); update_write_surfcmd_surface_bits_header(s, surface_bits_command); stream_write(s, surface_bits_command->bitmapData, surface_bits_command->bitmapDataLength); fastpath_send_update_pdu(rdp->fastpath, FASTPATH_UPDATETYPE_SURFCMDS, s); }
static void update_send_surface_bits(rdpContext* context, SURFACE_BITS_COMMAND* surface_bits_command) { wStream* s; rdpRdp* rdp = context->rdp; s = fastpath_update_pdu_init(rdp->fastpath); Stream_EnsureRemainingCapacity(s, SURFCMD_SURFACE_BITS_HEADER_LENGTH + (int) surface_bits_command->bitmapDataLength); update_write_surfcmd_surface_bits_header(s, surface_bits_command); Stream_Write(s, surface_bits_command->bitmapData, surface_bits_command->bitmapDataLength); fastpath_send_update_pdu(rdp->fastpath, FASTPATH_UPDATETYPE_SURFCMDS, s); Stream_Release(s); }
static void update_send_pointer_system(rdpUpdate* update, POINTER_SYSTEM_UPDATE* pointer_system) { rdpRdp* rdp = (rdpRdp*)update->rdp; STREAM* s; s = fastpath_update_pdu_init(rdp->fastpath); /* updateHeader (1 byte) */ if (pointer_system->type == SYSPTR_NULL) stream_write_uint8(s, FASTPATH_UPDATETYPE_PTR_NULL); else stream_write_uint8(s, FASTPATH_UPDATETYPE_PTR_DEFAULT); stream_write_uint16(s, 0); /* size (2 bytes) */ fastpath_send_update_pdu(rdp->fastpath, s); }
static void update_send_pointer_system(rdpContext* context, POINTER_SYSTEM_UPDATE* pointer_system) { STREAM* s; BYTE updateCode; rdpRdp* rdp = context->rdp; s = fastpath_update_pdu_init(rdp->fastpath); if (pointer_system->type == SYSPTR_NULL) updateCode = FASTPATH_UPDATETYPE_PTR_NULL; else updateCode = FASTPATH_UPDATETYPE_PTR_DEFAULT; fastpath_send_update_pdu(rdp->fastpath, updateCode, s); }
static void update_send_bitmap_update(rdpContext* context, BITMAP_UPDATE* bitmapUpdate) { wStream* s; rdpRdp* rdp = context->rdp; rdpUpdate* update = context->update; update_force_flush(context); s = fastpath_update_pdu_init(rdp->fastpath); update_write_bitmap_update(update, s, bitmapUpdate); fastpath_send_update_pdu(rdp->fastpath, FASTPATH_UPDATETYPE_BITMAP, s); update_force_flush(context); Stream_Release(s); }
static void update_send_scrblt(rdpContext* context, SCRBLT_ORDER* scrblt) { STREAM* s; rdpRdp* rdp = context->rdp; s = fastpath_update_pdu_init(rdp->fastpath); stream_write_UINT16(s, 1); /* numberOrders (2 bytes) */ stream_write_BYTE(s, ORDER_STANDARD | ORDER_TYPE_CHANGE); /* controlFlags (1 byte) */ stream_write_BYTE(s, ORDER_TYPE_SCRBLT); /* orderType (1 byte) */ stream_write_BYTE(s, 0x7F); /* fieldFlags (variable) */ stream_write_UINT16(s, scrblt->nLeftRect); stream_write_UINT16(s, scrblt->nTopRect); stream_write_UINT16(s, scrblt->nWidth); stream_write_UINT16(s, scrblt->nHeight); stream_write_BYTE(s, scrblt->bRop); stream_write_UINT16(s, scrblt->nXSrc); stream_write_UINT16(s, scrblt->nYSrc); fastpath_send_update_pdu(rdp->fastpath, FASTPATH_UPDATETYPE_ORDERS, s); }