FreeRDP
input.c File Reference
#include <time.h>
#include <freerdp/config.h>
#include <winpr/crt.h>
#include <winpr/assert.h>
#include <freerdp/input.h>
#include <freerdp/log.h>
#include "message.h"
#include "input.h"

Macros

#define TAG   FREERDP_TAG("core")
 
#define INPUT_EVENT_SYNC   0x0000
 
#define INPUT_EVENT_SCANCODE   0x0004
 
#define INPUT_EVENT_UNICODE   0x0005
 
#define INPUT_EVENT_MOUSE   0x8001
 
#define INPUT_EVENT_MOUSEX   0x8002
 
#define INPUT_EVENT_MOUSEREL   0x8004
 
#define RDP_CLIENT_INPUT_PDU_HEADER_LENGTH   4
 

Functions

static void rdp_write_client_input_pdu_header (wStream *s, UINT16 number)
 
static void rdp_write_input_event_header (wStream *s, UINT32 time, UINT16 type)
 
static wStreamrdp_client_input_pdu_init (rdpRdp *rdp, UINT16 type)
 
static BOOL rdp_send_client_input_pdu (rdpRdp *rdp, wStream *s)
 
static void input_write_synchronize_event (wStream *s, UINT32 flags)
 
static BOOL input_ensure_client_running (rdpInput *input)
 
static BOOL input_send_synchronize_event (rdpInput *input, UINT32 flags)
 
static void input_write_keyboard_event (wStream *s, UINT16 flags, UINT16 code)
 
static BOOL input_send_keyboard_event (rdpInput *input, UINT16 flags, UINT8 code)
 
static void input_write_unicode_keyboard_event (wStream *s, UINT16 flags, UINT16 code)
 
static BOOL input_send_unicode_keyboard_event (rdpInput *input, UINT16 flags, UINT16 code)
 
static void input_write_mouse_event (wStream *s, UINT16 flags, UINT16 x, UINT16 y)
 
static BOOL input_send_mouse_event (rdpInput *input, UINT16 flags, UINT16 x, UINT16 y)
 
static BOOL input_send_relmouse_event (rdpInput *input, UINT16 flags, INT16 xDelta, INT16 yDelta)
 
static void input_write_extended_mouse_event (wStream *s, UINT16 flags, UINT16 x, UINT16 y)
 
static BOOL input_send_extended_mouse_event (rdpInput *input, UINT16 flags, UINT16 x, UINT16 y)
 
static BOOL input_send_focus_in_event (rdpInput *input, UINT16 toggleStates)
 
static BOOL input_send_keyboard_pause_event (rdpInput *input)
 
static BOOL input_send_fastpath_synchronize_event (rdpInput *input, UINT32 flags)
 
static BOOL input_send_fastpath_keyboard_event (rdpInput *input, UINT16 flags, UINT8 code)
 
static BOOL input_send_fastpath_unicode_keyboard_event (rdpInput *input, UINT16 flags, UINT16 code)
 
static BOOL input_send_fastpath_mouse_event (rdpInput *input, UINT16 flags, UINT16 x, UINT16 y)
 
static BOOL input_send_fastpath_extended_mouse_event (rdpInput *input, UINT16 flags, UINT16 x, UINT16 y)
 
static BOOL input_send_fastpath_relmouse_event (rdpInput *input, UINT16 flags, INT16 xDelta, INT16 yDelta)
 
static BOOL input_send_fastpath_qoe_event (rdpInput *input, UINT32 timestampMS)
 
static BOOL input_send_fastpath_focus_in_event (rdpInput *input, UINT16 toggleStates)
 
static BOOL input_send_fastpath_keyboard_pause_event (rdpInput *input)
 
static BOOL input_recv_sync_event (rdpInput *input, wStream *s)
 
static BOOL input_recv_keyboard_event (rdpInput *input, wStream *s)
 
static BOOL input_recv_unicode_keyboard_event (rdpInput *input, wStream *s)
 
static BOOL input_recv_mouse_event (rdpInput *input, wStream *s)
 
static BOOL input_recv_relmouse_event (rdpInput *input, wStream *s)
 
static BOOL input_recv_extended_mouse_event (rdpInput *input, wStream *s)
 
static BOOL input_recv_event (rdpInput *input, wStream *s)
 
BOOL input_recv (rdpInput *input, wStream *s)
 
BOOL input_register_client_callbacks (rdpInput *input)
 
static BOOL input_update_last_event (rdpInput *input, BOOL mouse, UINT16 x, UINT16 y)
 
BOOL freerdp_input_send_synchronize_event (rdpInput *input, UINT32 flags)
 
BOOL freerdp_input_send_keyboard_event (rdpInput *input, UINT16 flags, UINT8 code)
 
BOOL freerdp_input_send_keyboard_event_ex (rdpInput *input, BOOL down, BOOL repeat, UINT32 rdp_scancode)
 
BOOL freerdp_input_send_unicode_keyboard_event (rdpInput *input, UINT16 flags, UINT16 code)
 
BOOL freerdp_input_send_mouse_event (rdpInput *input, UINT16 flags, UINT16 x, UINT16 y)
 
BOOL freerdp_input_send_rel_mouse_event (rdpInput *input, UINT16 flags, INT16 xDelta, INT16 yDelta)
 
BOOL freerdp_input_send_qoe_timestamp (rdpInput *input, UINT32 timestampMS)
 
BOOL freerdp_input_send_extended_mouse_event (rdpInput *input, UINT16 flags, UINT16 x, UINT16 y)
 
BOOL freerdp_input_send_focus_in_event (rdpInput *input, UINT16 toggleStates)
 
BOOL freerdp_input_send_keyboard_pause_event (rdpInput *input)
 
int input_process_events (rdpInput *input)
 
static void input_free_queued_message (void *obj)
 
rdpInput * input_new (rdpRdp *rdp)
 
void input_free (rdpInput *input)
 

Macro Definition Documentation

◆ INPUT_EVENT_MOUSE

#define INPUT_EVENT_MOUSE   0x8001

◆ INPUT_EVENT_MOUSEREL

#define INPUT_EVENT_MOUSEREL   0x8004

◆ INPUT_EVENT_MOUSEX

#define INPUT_EVENT_MOUSEX   0x8002

◆ INPUT_EVENT_SCANCODE

#define INPUT_EVENT_SCANCODE   0x0004

◆ INPUT_EVENT_SYNC

#define INPUT_EVENT_SYNC   0x0000

◆ INPUT_EVENT_UNICODE

#define INPUT_EVENT_UNICODE   0x0005

◆ RDP_CLIENT_INPUT_PDU_HEADER_LENGTH

#define RDP_CLIENT_INPUT_PDU_HEADER_LENGTH   4

◆ TAG

#define TAG   FREERDP_TAG("core")

FreeRDP: A Remote Desktop Protocol Implementation Input PDUs

Copyright 2011 Marc-Andre Moreau marca.nosp@m.ndre.nosp@m..more.nosp@m.au@g.nosp@m.mail..nosp@m.com

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

◆ freerdp_input_send_extended_mouse_event()

BOOL freerdp_input_send_extended_mouse_event ( rdpInput *  input,
UINT16  flags,
UINT16  x,
UINT16  y 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freerdp_input_send_focus_in_event()

BOOL freerdp_input_send_focus_in_event ( rdpInput *  input,
UINT16  toggleStates 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freerdp_input_send_keyboard_event()

BOOL freerdp_input_send_keyboard_event ( rdpInput *  input,
UINT16  flags,
UINT8  code 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freerdp_input_send_keyboard_event_ex()

BOOL freerdp_input_send_keyboard_event_ex ( rdpInput *  input,
BOOL  down,
BOOL  repeat,
UINT32  rdp_scancode 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freerdp_input_send_keyboard_pause_event()

BOOL freerdp_input_send_keyboard_pause_event ( rdpInput *  input)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freerdp_input_send_mouse_event()

BOOL freerdp_input_send_mouse_event ( rdpInput *  input,
UINT16  flags,
UINT16  x,
UINT16  y 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freerdp_input_send_qoe_timestamp()

BOOL freerdp_input_send_qoe_timestamp ( rdpInput *  input,
UINT32  timestampMS 
)

◆ freerdp_input_send_rel_mouse_event()

BOOL freerdp_input_send_rel_mouse_event ( rdpInput *  input,
UINT16  flags,
INT16  xDelta,
INT16  yDelta 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freerdp_input_send_synchronize_event()

BOOL freerdp_input_send_synchronize_event ( rdpInput *  input,
UINT32  flags 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freerdp_input_send_unicode_keyboard_event()

BOOL freerdp_input_send_unicode_keyboard_event ( rdpInput *  input,
UINT16  flags,
UINT16  code 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ input_ensure_client_running()

static BOOL input_ensure_client_running ( rdpInput *  input)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ input_free()

void input_free ( rdpInput *  input)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ input_free_queued_message()

static void input_free_queued_message ( void *  obj)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ input_new()

rdpInput* input_new ( rdpRdp *  rdp)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ input_process_events()

int input_process_events ( rdpInput *  input)
Here is the call graph for this function:

◆ input_recv()

BOOL input_recv ( rdpInput *  input,
wStream s 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ input_recv_event()

static BOOL input_recv_event ( rdpInput *  input,
wStream s 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ input_recv_extended_mouse_event()

static BOOL input_recv_extended_mouse_event ( rdpInput *  input,
wStream s 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ input_recv_keyboard_event()

static BOOL input_recv_keyboard_event ( rdpInput *  input,
wStream s 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ input_recv_mouse_event()

static BOOL input_recv_mouse_event ( rdpInput *  input,
wStream s 
)
static
Here is the caller graph for this function:

◆ input_recv_relmouse_event()

static BOOL input_recv_relmouse_event ( rdpInput *  input,
wStream s 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ input_recv_sync_event()

static BOOL input_recv_sync_event ( rdpInput *  input,
wStream s 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ input_recv_unicode_keyboard_event()

static BOOL input_recv_unicode_keyboard_event ( rdpInput *  input,
wStream s 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ input_register_client_callbacks()

BOOL input_register_client_callbacks ( rdpInput *  input)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ input_send_extended_mouse_event()

static BOOL input_send_extended_mouse_event ( rdpInput *  input,
UINT16  flags,
UINT16  x,
UINT16  y 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ input_send_fastpath_extended_mouse_event()

static BOOL input_send_fastpath_extended_mouse_event ( rdpInput *  input,
UINT16  flags,
UINT16  x,
UINT16  y 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ input_send_fastpath_focus_in_event()

static BOOL input_send_fastpath_focus_in_event ( rdpInput *  input,
UINT16  toggleStates 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ input_send_fastpath_keyboard_event()

static BOOL input_send_fastpath_keyboard_event ( rdpInput *  input,
UINT16  flags,
UINT8  code 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ input_send_fastpath_keyboard_pause_event()

static BOOL input_send_fastpath_keyboard_pause_event ( rdpInput *  input)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ input_send_fastpath_mouse_event()

static BOOL input_send_fastpath_mouse_event ( rdpInput *  input,
UINT16  flags,
UINT16  x,
UINT16  y 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ input_send_fastpath_qoe_event()

static BOOL input_send_fastpath_qoe_event ( rdpInput *  input,
UINT32  timestampMS 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ input_send_fastpath_relmouse_event()

static BOOL input_send_fastpath_relmouse_event ( rdpInput *  input,
UINT16  flags,
INT16  xDelta,
INT16  yDelta 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ input_send_fastpath_synchronize_event()

static BOOL input_send_fastpath_synchronize_event ( rdpInput *  input,
UINT32  flags 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ input_send_fastpath_unicode_keyboard_event()

static BOOL input_send_fastpath_unicode_keyboard_event ( rdpInput *  input,
UINT16  flags,
UINT16  code 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ input_send_focus_in_event()

static BOOL input_send_focus_in_event ( rdpInput *  input,
UINT16  toggleStates 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ input_send_keyboard_event()

static BOOL input_send_keyboard_event ( rdpInput *  input,
UINT16  flags,
UINT8  code 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ input_send_keyboard_pause_event()

static BOOL input_send_keyboard_pause_event ( rdpInput *  input)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ input_send_mouse_event()

static BOOL input_send_mouse_event ( rdpInput *  input,
UINT16  flags,
UINT16  x,
UINT16  y 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ input_send_relmouse_event()

static BOOL input_send_relmouse_event ( rdpInput *  input,
UINT16  flags,
INT16  xDelta,
INT16  yDelta 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ input_send_synchronize_event()

static BOOL input_send_synchronize_event ( rdpInput *  input,
UINT32  flags 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ input_send_unicode_keyboard_event()

static BOOL input_send_unicode_keyboard_event ( rdpInput *  input,
UINT16  flags,
UINT16  code 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ input_update_last_event()

static BOOL input_update_last_event ( rdpInput *  input,
BOOL  mouse,
UINT16  x,
UINT16  y 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ input_write_extended_mouse_event()

static void input_write_extended_mouse_event ( wStream s,
UINT16  flags,
UINT16  x,
UINT16  y 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ input_write_keyboard_event()

static void input_write_keyboard_event ( wStream s,
UINT16  flags,
UINT16  code 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ input_write_mouse_event()

static void input_write_mouse_event ( wStream s,
UINT16  flags,
UINT16  x,
UINT16  y 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ input_write_synchronize_event()

static void input_write_synchronize_event ( wStream s,
UINT32  flags 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ input_write_unicode_keyboard_event()

static void input_write_unicode_keyboard_event ( wStream s,
UINT16  flags,
UINT16  code 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ rdp_client_input_pdu_init()

static wStream* rdp_client_input_pdu_init ( rdpRdp *  rdp,
UINT16  type 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ rdp_send_client_input_pdu()

static BOOL rdp_send_client_input_pdu ( rdpRdp *  rdp,
wStream s 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ rdp_write_client_input_pdu_header()

static void rdp_write_client_input_pdu_header ( wStream s,
UINT16  number 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ rdp_write_input_event_header()

static void rdp_write_input_event_header ( wStream s,
UINT32  time,
UINT16  type 
)
static
Here is the call graph for this function:
Here is the caller graph for this function: