25 #ifndef FREERDP_CHANNEL_RDPDR_CLIENT_MAIN_H
26 #define FREERDP_CHANNEL_RDPDR_CLIENT_MAIN_H
28 #include <winpr/crt.h>
29 #include <winpr/synch.h>
30 #include <winpr/thread.h>
31 #include <winpr/stream.h>
32 #include <winpr/collections.h>
34 #include <freerdp/api.h>
35 #include <freerdp/svc.h>
36 #include <freerdp/addin.h>
38 #include <freerdp/channels/rdpdr.h>
39 #include <freerdp/channels/log.h>
42 #include <CoreServices/CoreServices.h>
45 enum RDPDR_CHANNEL_STATE
47 RDPDR_CHANNEL_STATE_INITIAL = 0,
48 RDPDR_CHANNEL_STATE_ANNOUNCE,
49 RDPDR_CHANNEL_STATE_ANNOUNCE_REPLY,
50 RDPDR_CHANNEL_STATE_NAME_REQUEST,
51 RDPDR_CHANNEL_STATE_SERVER_CAPS,
52 RDPDR_CHANNEL_STATE_CLIENT_CAPS,
53 RDPDR_CHANNEL_STATE_CLIENTID_CONFIRM,
54 RDPDR_CHANNEL_STATE_READY,
55 RDPDR_CHANNEL_STATE_USER_LOGGEDON
63 enum RDPDR_CHANNEL_STATE state;
71 BOOL ignoreInvalidDevices;
74 UINT32 serverOsVersion;
75 UINT16 serverVersionMajor;
76 UINT16 serverVersionMinor;
77 UINT32 serverExtendedPDU;
80 UINT32 serverExtraFlags1;
81 UINT32 serverExtraFlags2;
82 UINT32 serverSpecialTypeDeviceCap;
85 UINT32 clientOsVersion;
86 UINT16 clientVersionMajor;
87 UINT16 clientVersionMinor;
88 UINT32 clientExtendedPDU;
91 UINT32 clientExtraFlags1;
92 UINT32 clientExtraFlags2;
93 UINT32 clientSpecialTypeDeviceCap;
96 char computerName[256];
102 HANDLE hotplugThread;
107 CFRunLoopRef runLoop;
112 rdpContext* rdpcontext;
116 BOOL capabilities[6];
119 BOOL rdpdr_state_advance(
rdpdrPlugin* rdpdr,
enum RDPDR_CHANNEL_STATE next);