Files
xrdp/common/xup_client_info.h
T
matt335672 b2892fbe5e Factor out xup_client_info for xorgxrdp
The data in 'struct xrdp_client_info' which is shared with xorgxrdp
is separated out into a separate structure. This makes it simpler to
change 'struct xrdp_client_info' without affecting xorgxrdp.
2025-05-28 11:53:21 +01:00

79 lines
2.3 KiB
C

/**
* 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