FreeRDP
capabilities.h
1 
20 #ifndef FREERDP_LIB_CORE_CAPABILITIES_H
21 #define FREERDP_LIB_CORE_CAPABILITIES_H
22 
23 #include "rdp.h"
24 
25 #include <freerdp/freerdp.h>
26 #include <freerdp/constants.h>
27 #include <freerdp/settings.h>
28 #include <freerdp/api.h>
29 
30 #include <winpr/stream.h>
31 
32 /* Capability Set Types */
33 #define CAPSET_TYPE_GENERAL 0x0001
34 #define CAPSET_TYPE_BITMAP 0x0002
35 #define CAPSET_TYPE_ORDER 0x0003
36 #define CAPSET_TYPE_BITMAP_CACHE 0x0004
37 #define CAPSET_TYPE_CONTROL 0x0005
38 #define CAPSET_TYPE_BITMAP_CACHE_V3_CODEC_ID 0x0006
39 #define CAPSET_TYPE_ACTIVATION 0x0007
40 #define CAPSET_TYPE_POINTER 0x0008
41 #define CAPSET_TYPE_SHARE 0x0009
42 #define CAPSET_TYPE_COLOR_CACHE 0x000A
43 #define CAPSET_TYPE_SOUND 0x000C
44 #define CAPSET_TYPE_INPUT 0x000D
45 #define CAPSET_TYPE_FONT 0x000E
46 #define CAPSET_TYPE_BRUSH 0x000F
47 #define CAPSET_TYPE_GLYPH_CACHE 0x0010
48 #define CAPSET_TYPE_OFFSCREEN_CACHE 0x0011
49 #define CAPSET_TYPE_BITMAP_CACHE_HOST_SUPPORT 0x0012
50 #define CAPSET_TYPE_BITMAP_CACHE_V2 0x0013
51 #define CAPSET_TYPE_VIRTUAL_CHANNEL 0x0014
52 #define CAPSET_TYPE_DRAW_NINE_GRID_CACHE 0x0015
53 #define CAPSET_TYPE_DRAW_GDI_PLUS 0x0016
54 #define CAPSET_TYPE_RAIL 0x0017
55 #define CAPSET_TYPE_WINDOW 0x0018
56 #define CAPSET_TYPE_COMP_DESK 0x0019
57 #define CAPSET_TYPE_MULTI_FRAGMENT_UPDATE 0x001A
58 #define CAPSET_TYPE_LARGE_POINTER 0x001B
59 #define CAPSET_TYPE_SURFACE_COMMANDS 0x001C
60 #define CAPSET_TYPE_BITMAP_CODECS 0x001D
61 #define CAPSET_TYPE_FRAME_ACKNOWLEDGE 0x001E
62 
63 #define CAPSET_HEADER_LENGTH 4
64 
65 #define SOURCE_DESCRIPTOR "FREERDP"
66 
67 /* Capabilities Protocol Version */
68 #define CAPS_PROTOCOL_VERSION 0x0200
69 
70 /* General Capability Flags */
71 #define FASTPATH_OUTPUT_SUPPORTED 0x0001
72 #define NO_BITMAP_COMPRESSION_HDR 0x0400
73 #define LONG_CREDENTIALS_SUPPORTED 0x0004
74 #define AUTORECONNECT_SUPPORTED 0x0008
75 #define ENC_SALTED_CHECKSUM 0x0010
76 
77 /* Drawing Flags */
78 #define DRAW_ALLOW_DYNAMIC_COLOR_FIDELITY 0x02
79 #define DRAW_ALLOW_COLOR_SUBSAMPLING 0x04
80 #define DRAW_ALLOW_SKIP_ALPHA 0x08
81 
82 /* Order Flags */
83 #define NEGOTIATE_ORDER_SUPPORT 0x0002
84 #define ZERO_BOUNDS_DELTA_SUPPORT 0x0008
85 #define COLOR_INDEX_SUPPORT 0x0020
86 #define SOLID_PATTERN_BRUSH_ONLY 0x0040
87 #define ORDER_FLAGS_EXTRA_SUPPORT 0x0080
88 
89 /* Extended Order Flags */
90 #define CACHE_BITMAP_V3_SUPPORT 0x0002
91 #define ALTSEC_FRAME_MARKER_SUPPORT 0x0004
92 
93 /* Sound Flags */
94 #define SOUND_BEEPS_FLAG 0x0001
95 
96 /* Input Flags */
97 #define INPUT_FLAG_SCANCODES 0x0001
98 #define INPUT_FLAG_MOUSEX 0x0004
99 #define INPUT_FLAG_FASTPATH_INPUT 0x0008
100 #define INPUT_FLAG_UNICODE 0x0010
101 #define INPUT_FLAG_FASTPATH_INPUT2 0x0020
102 #define INPUT_FLAG_UNUSED1 0x0040
103 #define INPUT_FLAG_MOUSE_RELATIVE 0x0080
104 #define TS_INPUT_FLAG_MOUSE_HWHEEL 0x0100
105 #define TS_INPUT_FLAG_QOE_TIMESTAMPS 0x0200
106 
107 /* Font Support Flags */
108 #define FONTSUPPORT_FONTLIST 0x0001
109 
110 /* Brush Support Level */
111 #define BRUSH_DEFAULT 0x00000000
112 #define BRUSH_COLOR_8x8 0x00000001
113 #define BRUSH_COLOR_FULL 0x00000002
114 
115 /* Bitmap Cache Version */
116 #define BITMAP_CACHE_V2 0x01
117 
118 /* Bitmap Cache V2 Flags */
119 #define PERSISTENT_KEYS_EXPECTED_FLAG 0x0001
120 #define ALLOW_CACHE_WAITING_LIST_FLAG 0x0002
121 
122 /* Draw Nine Grid Support Level */
123 #define DRAW_NINEGRID_NO_SUPPORT 0x00000000
124 #define DRAW_NINEGRID_SUPPORTED 0x00000001
125 #define DRAW_NINEGRID_SUPPORTED_V2 0x00000002
126 
127 /* Draw GDI+ Support Level */
128 #define DRAW_GDIPLUS_DEFAULT 0x00000000
129 #define DRAW_GDIPLUS_SUPPORTED 0x00000001
130 
131 /* Draw GDI+ Cache Level */
132 #define DRAW_GDIPLUS_CACHE_LEVEL_DEFAULT 0x00000000
133 #define DRAW_GDIPLUS_CACHE_LEVEL_ONE 0x00000001
134 
135 /* Window Support Level */
136 #define WINDOW_LEVEL_NOT_SUPPORTED 0x00000000
137 #define WINDOW_LEVEL_SUPPORTED 0x00000001
138 #define WINDOW_LEVEL_SUPPORTED_EX 0x00000002
139 
140 /* Desktop Composition Support Level */
141 #define COMPDESK_NOT_SUPPORTED 0x0000
142 #define COMPDESK_SUPPORTED 0x0001
143 
144 /* Bitmap Codec Constants */
145 #define CARDP_CAPS_CAPTURE_NON_CAC 0x00000001
146 #define CBY_CAPS 0xCBC0
147 #define CBY_CAPSET 0xCBC1
148 #define CLY_CAPSET 0xCFC0
149 #define CLW_VERSION_1_0 0x0100
150 #define CT_TILE_64x64 0x0040
151 #define CLW_COL_CONV_ICT 0x1
152 #define CLW_XFORM_DWT_53_A 0x1
153 #define CLW_ENTROPY_RLGR1 0x01
154 #define CLW_ENTROPY_RLGR3 0x04
155 
156 FREERDP_LOCAL BOOL rdp_recv_get_active_header(rdpRdp* rdp, wStream* s, UINT16* pChannelId,
157  UINT16* length);
158 FREERDP_LOCAL BOOL rdp_recv_demand_active(rdpRdp* rdp, wStream* s, UINT16 pduSource, UINT16 length);
159 FREERDP_LOCAL BOOL rdp_send_demand_active(rdpRdp* rdp);
160 FREERDP_LOCAL BOOL rdp_recv_confirm_active(rdpRdp* rdp, wStream* s, UINT16 pduLength);
161 FREERDP_LOCAL BOOL rdp_send_confirm_active(rdpRdp* rdp);
162 
163 FREERDP_LOCAL BOOL rdp_read_capability_set(wStream* sub, UINT16 type, rdpSettings* settings,
164  BOOL isServer);
165 
166 FREERDP_LOCAL const char* rdp_input_flag_string(UINT16 flags, char* buffer, size_t len);
167 
168 #endif /* FREERDP_LIB_CORE_CAPABILITIES_H */