24
24
#if !defined(XRDP_CLIENT_INFO_H )
25
25
#define XRDP_CLIENT_INFO_H
26
26
27
+ /*
28
+ * 2.2.1.3.6.1 Monitor Definition (TS_MONITOR_DEF)
29
+ * 2.2.1.3.9.1 Monitor Attributes (TS_MONITOR_ATTRIBUTES)
30
+ * 2.2.2.2.1 DISPLAYCONTROL_MONITOR_LAYOUT
31
+ */
27
32
struct monitor_info
28
33
{
34
+ /* From 2.2.1.3.6.1 Monitor Definition (TS_MONITOR_DEF) */
29
35
int left ;
30
36
int top ;
31
37
int right ;
32
38
int bottom ;
33
- int is_primary ;
39
+ int flags ;
40
+
41
+ /* From 2.2.2.2.1 DISPLAYCONTROL_MONITOR_LAYOUT */
42
+ unsigned int physical_width ;
43
+ unsigned int physical_height ;
44
+ unsigned int orientation ;
45
+ unsigned int desktop_scale_factor ;
46
+ unsigned int device_scale_factor ;
47
+
48
+ /* Derived setting */
49
+ unsigned int is_primary ;
34
50
};
35
51
36
52
/* xrdp keyboard overrids */
@@ -41,6 +57,15 @@ struct xrdp_keyboard_overrides
41
57
int layout ;
42
58
};
43
59
60
+ struct display_size_description
61
+ {
62
+ unsigned int monitorCount ; /* 2.2.2.2 DISPLAYCONTROL_MONITOR_LAYOUT_PDU: number of monitors detected (max = 16) */
63
+ struct monitor_info minfo [CLIENT_MONITOR_DATA_MAXIMUM_MONITORS ]; /* client monitor data */
64
+ struct monitor_info minfo_wm [CLIENT_MONITOR_DATA_MAXIMUM_MONITORS ]; /* client monitor data, non-negative values */
65
+ unsigned int session_width ;
66
+ unsigned int session_height ;
67
+ };
68
+
44
69
/**
45
70
* Information about the xrdp client
46
71
*
@@ -54,8 +79,6 @@ struct xrdp_client_info
54
79
int size ; /* bytes for this structure */
55
80
int version ; /* Should be CLIENT_INFO_CURRENT_VERSION */
56
81
int bpp ;
57
- int width ;
58
- int height ;
59
82
/* bitmap cache info */
60
83
int cache1_entries ;
61
84
int cache1_size ;
@@ -128,9 +151,7 @@ struct xrdp_client_info
128
151
129
152
int security_layer ; /* 0 = rdp, 1 = tls , 2 = hybrid */
130
153
int multimon ; /* 0 = deny , 1 = allow */
131
- int monitorCount ; /* number of monitors detected (max = 16) */
132
- struct monitor_info minfo [CLIENT_MONITOR_DATA_MAXIMUM_MONITORS ]; /* client monitor data */
133
- struct monitor_info minfo_wm [CLIENT_MONITOR_DATA_MAXIMUM_MONITORS ]; /* client monitor data, non-negative values */
154
+ struct display_size_description display_sizes ;
134
155
135
156
int keyboard_type ;
136
157
int keyboard_subtype ;
@@ -186,6 +207,6 @@ struct xrdp_client_info
186
207
};
187
208
188
209
/* yyyymmdd of last incompatible change to xrdp_client_info */
189
- #define CLIENT_INFO_CURRENT_VERSION 20210723
210
+ #define CLIENT_INFO_CURRENT_VERSION 20220320
190
211
191
212
#endif
0 commit comments