/** * xrdp: A Remote Desktop Protocol server. * * Copyright (C) Jay Sorg 2004-2025 * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /** * @file common/xup_client_info.h * @brief Data shared with xorgxrdp */ #if !defined(XUP_CLIENT_INFO_H) #define XUP_CLIENT_INFO_H #include "xrdp_client_info.h" /** * Information about the xrdp client which is passed to xorgxrdp * * This is a subset of 'struct xrdp_client_info' * * @note If you change this structure, you MUST bump the * XUP_CLIENT_INFO_CURRENT_VERSION number so that the mismatch * can be detected. */ struct xup_client_info { int size; /* bytes for this structure */ int version; /* Should be XUP_CLIENT_INFO_CURRENT_VERSION */ int bpp; int jpeg; /* non standard bitmap cache v2 cap */ int offscreen_support_level; int offscreen_cache_size; int offscreen_cache_entries; char orders[XR_PRIMARY_ORDER_COUNT]; int order_flags_ex; int pointer_flags; /* 0 color, 1 new, 2 no new */ int large_pointer_support_flags; struct display_size_description display_sizes; enum xrdp_capture_code capture_code; int capture_format; /* X11 keyboard layout - inferred from keyboard type/subtype */ char model[CI_KBD_MODEL_SIZE]; char layout[CI_KBD_LAYOUT_SIZE]; char variant[CI_KBD_VARIANT_SIZE]; char options[CI_KBD_OPTIONS_SIZE]; char xkb_rules[CI_KBD_XKB_RULES_SIZE]; // A few x11 keycodes are needed by the xup module int x11_keycode_caps_lock; int x11_keycode_num_lock; int x11_keycode_scroll_lock; /* xorgxrdp: frame capture interval (milliseconds) */ int rfx_frame_interval; int h264_frame_interval; int normal_frame_interval; }; /* yyyymmdd of last incompatible change to xup_client_info */ #define XUP_CLIENT_INFO_CURRENT_VERSION 20250528 #endif // XUP_CLIENT_INFO_H