FreeRDP
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Modules Pages
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
156FREERDP_LOCAL BOOL rdp_recv_get_active_header(rdpRdp* rdp, wStream* s, UINT16* pChannelId,
157 UINT16* length);
158FREERDP_LOCAL BOOL rdp_recv_demand_active(rdpRdp* rdp, wStream* s, UINT16 pduSource, UINT16 length);
159FREERDP_LOCAL BOOL rdp_send_demand_active(rdpRdp* rdp);
160FREERDP_LOCAL BOOL rdp_recv_confirm_active(rdpRdp* rdp, wStream* s, UINT16 pduLength);
161FREERDP_LOCAL BOOL rdp_send_confirm_active(rdpRdp* rdp);
162
163FREERDP_LOCAL BOOL rdp_read_capability_set(wLog* log, wStream* sub, UINT16 type,
164 rdpSettings* settings, BOOL isServer);
165
166FREERDP_LOCAL const char* rdp_input_flag_string(UINT16 flags, char* buffer, size_t len);
167
168#endif /* FREERDP_LIB_CORE_CAPABILITIES_H */