FreeRDP
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 
33 typedef struct
34 {
35  rdpInput common;
36  /* Internal */
37 
38  rdpInputProxy* proxy;
39  wMessageQueue* queue;
40 
41  UINT64 lastInputTimestamp;
42  UINT16 lastX;
43  UINT16 lastY;
45 
46 static INLINE rdp_input_internal* input_cast(rdpInput* input)
47 {
48  union
49  {
50  rdpInput* pub;
51  rdp_input_internal* internal;
52  } cnv;
53 
54  WINPR_ASSERT(input);
55  cnv.pub = input;
56  return cnv.internal;
57 }
58 FREERDP_LOCAL BOOL input_recv(rdpInput* input, wStream* s);
59 
60 FREERDP_LOCAL int input_process_events(rdpInput* input);
61 FREERDP_LOCAL BOOL input_register_client_callbacks(rdpInput* input);
62 
63 FREERDP_LOCAL void input_free(rdpInput* input);
64 
65 WINPR_ATTR_MALLOC(input_free, 1)
66 FREERDP_LOCAL rdpInput* input_new(rdpRdp* rdp);
67 
68 #endif /* FREERDP_LIB_CORE_INPUT_H */