FreeRDP
Loading...
Searching...
No Matches
libfreerdp/core/input.h
1
20#ifndef FREERDP_LIB_CORE_INPUT_H
21#define FREERDP_LIB_CORE_INPUT_H
22
23#include "rdp.h"
24#include "fastpath.h"
25#include "message.h"
26
27#include <freerdp/input.h>
28#include <freerdp/freerdp.h>
29#include <freerdp/api.h>
30
31#include <winpr/stream.h>
32
33typedef struct
34{
35 rdpInput common;
36 /* Internal */
37
38 rdpInputProxy* proxy;
39 wMessageQueue* queue;
40
41 UINT64 lastInputTimestamp;
42 UINT16 lastX;
43 UINT16 lastY;
44 wLog* log;
46
47WINPR_ATTR_NODISCARD
48static inline rdp_input_internal* input_cast(rdpInput* input)
49{
50 union
51 {
52 rdpInput* pub;
53 rdp_input_internal* internal;
54 } cnv;
55
56 WINPR_ASSERT(input);
57 cnv.pub = input;
58 return cnv.internal;
59}
60
61WINPR_ATTR_NODISCARD
62FREERDP_LOCAL BOOL input_recv(rdpInput* input, wStream* s);
63
64WINPR_ATTR_NODISCARD
65FREERDP_LOCAL int input_process_events(rdpInput* input);
66
67WINPR_ATTR_NODISCARD
68FREERDP_LOCAL BOOL input_register_client_callbacks(rdpInput* input);
69
70FREERDP_LOCAL void input_free(rdpInput* input);
71
72WINPR_ATTR_MALLOC(input_free, 1)
73WINPR_ATTR_NODISCARD
74FREERDP_LOCAL rdpInput* input_new(rdpRdp* rdp);
75
76#endif /* FREERDP_LIB_CORE_INPUT_H */