Blame libfreerdp/core/capabilities.h

Packit 1fb8d4
/**
Packit 1fb8d4
 * FreeRDP: A Remote Desktop Protocol Implementation
Packit 1fb8d4
 * RDP Capability Sets
Packit 1fb8d4
 *
Packit 1fb8d4
 * Copyright 2011 Marc-Andre Moreau <marcandre.moreau@gmail.com>
Packit 1fb8d4
 *
Packit 1fb8d4
 * Licensed under the Apache License, Version 2.0 (the "License");
Packit 1fb8d4
 * you may not use this file except in compliance with the License.
Packit 1fb8d4
 * You may obtain a copy of the License at
Packit 1fb8d4
 *
Packit 1fb8d4
 *     http://www.apache.org/licenses/LICENSE-2.0
Packit 1fb8d4
 *
Packit 1fb8d4
 * Unless required by applicable law or agreed to in writing, software
Packit 1fb8d4
 * distributed under the License is distributed on an "AS IS" BASIS,
Packit 1fb8d4
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
Packit 1fb8d4
 * See the License for the specific language governing permissions and
Packit 1fb8d4
 * limitations under the License.
Packit 1fb8d4
 */
Packit 1fb8d4
Packit 1fb8d4
#ifndef FREERDP_LIB_CORE_CAPABILITIES_H
Packit 1fb8d4
#define FREERDP_LIB_CORE_CAPABILITIES_H
Packit 1fb8d4
Packit 1fb8d4
#include "rdp.h"
Packit 1fb8d4
Packit 1fb8d4
#include <freerdp/freerdp.h>
Packit 1fb8d4
#include <freerdp/constants.h>
Packit 1fb8d4
#include <freerdp/settings.h>
Packit 1fb8d4
#include <freerdp/api.h>
Packit 1fb8d4
Packit 1fb8d4
#include <winpr/stream.h>
Packit 1fb8d4
Packit 1fb8d4
/* Capability Set Types */
Packit 1fb8d4
#define CAPSET_TYPE_GENERAL			0x0001
Packit 1fb8d4
#define CAPSET_TYPE_BITMAP			0x0002
Packit 1fb8d4
#define CAPSET_TYPE_ORDER			0x0003
Packit 1fb8d4
#define CAPSET_TYPE_BITMAP_CACHE		0x0004
Packit 1fb8d4
#define CAPSET_TYPE_CONTROL			0x0005
Packit 1fb8d4
#define CAPSET_TYPE_BITMAP_CACHE_V3_CODEC_ID	0x0006
Packit 1fb8d4
#define CAPSET_TYPE_ACTIVATION			0x0007
Packit 1fb8d4
#define CAPSET_TYPE_POINTER			0x0008
Packit 1fb8d4
#define CAPSET_TYPE_SHARE			0x0009
Packit 1fb8d4
#define CAPSET_TYPE_COLOR_CACHE			0x000A
Packit 1fb8d4
#define CAPSET_TYPE_SOUND			0x000C
Packit 1fb8d4
#define CAPSET_TYPE_INPUT			0x000D
Packit 1fb8d4
#define CAPSET_TYPE_FONT			0x000E
Packit 1fb8d4
#define CAPSET_TYPE_BRUSH			0x000F
Packit 1fb8d4
#define CAPSET_TYPE_GLYPH_CACHE			0x0010
Packit 1fb8d4
#define CAPSET_TYPE_OFFSCREEN_CACHE		0x0011
Packit 1fb8d4
#define CAPSET_TYPE_BITMAP_CACHE_HOST_SUPPORT	0x0012
Packit 1fb8d4
#define CAPSET_TYPE_BITMAP_CACHE_V2		0x0013
Packit 1fb8d4
#define CAPSET_TYPE_VIRTUAL_CHANNEL		0x0014
Packit 1fb8d4
#define CAPSET_TYPE_DRAW_NINE_GRID_CACHE	0x0015
Packit 1fb8d4
#define CAPSET_TYPE_DRAW_GDI_PLUS		0x0016
Packit 1fb8d4
#define CAPSET_TYPE_RAIL			0x0017
Packit 1fb8d4
#define CAPSET_TYPE_WINDOW			0x0018
Packit 1fb8d4
#define CAPSET_TYPE_COMP_DESK			0x0019
Packit 1fb8d4
#define CAPSET_TYPE_MULTI_FRAGMENT_UPDATE	0x001A
Packit 1fb8d4
#define CAPSET_TYPE_LARGE_POINTER		0x001B
Packit 1fb8d4
#define CAPSET_TYPE_SURFACE_COMMANDS		0x001C
Packit 1fb8d4
#define CAPSET_TYPE_BITMAP_CODECS		0x001D
Packit 1fb8d4
#define CAPSET_TYPE_FRAME_ACKNOWLEDGE		0x001E
Packit 1fb8d4
Packit 1fb8d4
#define CAPSET_HEADER_LENGTH			4
Packit 1fb8d4
Packit 1fb8d4
#define SOURCE_DESCRIPTOR			"FREERDP"
Packit 1fb8d4
Packit 1fb8d4
/* Capabilities Protocol Version */
Packit 1fb8d4
#define CAPS_PROTOCOL_VERSION			0x0200
Packit 1fb8d4
Packit 1fb8d4
/* General Capability Flags */
Packit 1fb8d4
#define FASTPATH_OUTPUT_SUPPORTED		0x0001
Packit 1fb8d4
#define NO_BITMAP_COMPRESSION_HDR		0x0400
Packit 1fb8d4
#define LONG_CREDENTIALS_SUPPORTED		0x0004
Packit 1fb8d4
#define AUTORECONNECT_SUPPORTED			0x0008
Packit 1fb8d4
#define ENC_SALTED_CHECKSUM			0x0010
Packit 1fb8d4
Packit 1fb8d4
/* Drawing Flags */
Packit 1fb8d4
#define DRAW_ALLOW_DYNAMIC_COLOR_FIDELITY	0x02
Packit 1fb8d4
#define DRAW_ALLOW_COLOR_SUBSAMPLING		0x04
Packit 1fb8d4
#define DRAW_ALLOW_SKIP_ALPHA			0x08
Packit 1fb8d4
Packit 1fb8d4
/* Order Flags */
Packit 1fb8d4
#define NEGOTIATE_ORDER_SUPPORT			0x0002
Packit 1fb8d4
#define ZERO_BOUNDS_DELTA_SUPPORT		0x0008
Packit 1fb8d4
#define COLOR_INDEX_SUPPORT			0x0020
Packit 1fb8d4
#define SOLID_PATTERN_BRUSH_ONLY		0x0040
Packit 1fb8d4
#define ORDER_FLAGS_EXTRA_SUPPORT		0x0080
Packit 1fb8d4
Packit 1fb8d4
/* Extended Order Flags */
Packit 1fb8d4
#define CACHE_BITMAP_V3_SUPPORT			0x0002
Packit 1fb8d4
#define ALTSEC_FRAME_MARKER_SUPPORT		0x0004
Packit 1fb8d4
Packit 1fb8d4
/* Sound Flags */
Packit 1fb8d4
#define SOUND_BEEPS_FLAG			0x0001
Packit 1fb8d4
Packit 1fb8d4
/* Input Flags */
Packit 1fb8d4
#define INPUT_FLAG_SCANCODES			0x0001
Packit 1fb8d4
#define INPUT_FLAG_MOUSEX			0x0004
Packit 1fb8d4
#define INPUT_FLAG_FASTPATH_INPUT		0x0008
Packit 1fb8d4
#define INPUT_FLAG_UNICODE			0x0010
Packit 1fb8d4
#define INPUT_FLAG_FASTPATH_INPUT2		0x0020
Packit 1fb8d4
#define TS_INPUT_FLAG_MOUSE_HWHEEL		0x0100
Packit 1fb8d4
#define TS_INPUT_FLAG_QOE_TIMESTAMPS		0x0200
Packit 1fb8d4
Packit 1fb8d4
/* Font Support Flags */
Packit 1fb8d4
#define FONTSUPPORT_FONTLIST			0x0001
Packit 1fb8d4
Packit 1fb8d4
/* Brush Support Level */
Packit 1fb8d4
#define BRUSH_DEFAULT				0x00000000
Packit 1fb8d4
#define BRUSH_COLOR_8x8				0x00000001
Packit 1fb8d4
#define BRUSH_COLOR_FULL			0x00000002
Packit 1fb8d4
Packit 1fb8d4
/* Bitmap Cache Version */
Packit 1fb8d4
#define BITMAP_CACHE_V2				0x01
Packit 1fb8d4
Packit 1fb8d4
/* Bitmap Cache V2 Flags */
Packit 1fb8d4
#define PERSISTENT_KEYS_EXPECTED_FLAG		0x0001
Packit 1fb8d4
#define ALLOW_CACHE_WAITING_LIST_FLAG		0x0002
Packit 1fb8d4
Packit 1fb8d4
/* Virtual Channel Flags */
Packit 1fb8d4
#define VCCAPS_NO_COMPR				0x00000000
Packit 1fb8d4
#define VCCAPS_COMPR_SC				0x00000001
Packit 1fb8d4
#define VCCAPS_COMPR_CS_8K			0x00000002
Packit 1fb8d4
Packit 1fb8d4
/* Draw Nine Grid Support Level */
Packit 1fb8d4
#define DRAW_NINEGRID_NO_SUPPORT		0x00000000
Packit 1fb8d4
#define DRAW_NINEGRID_SUPPORTED			0x00000001
Packit 1fb8d4
#define DRAW_NINEGRID_SUPPORTED_V2		0x00000002
Packit 1fb8d4
Packit 1fb8d4
/* Draw GDI+ Support Level */
Packit 1fb8d4
#define DRAW_GDIPLUS_DEFAULT			0x00000000
Packit 1fb8d4
#define DRAW_GDIPLUS_SUPPORTED			0x00000001
Packit 1fb8d4
Packit 1fb8d4
/* Draw GDI+ Cache Level */
Packit 1fb8d4
#define DRAW_GDIPLUS_CACHE_LEVEL_DEFAULT	0x00000000
Packit 1fb8d4
#define DRAW_GDIPLUS_CACHE_LEVEL_ONE		0x00000001
Packit 1fb8d4
Packit 1fb8d4
/* RAIL Support Level */
Packit 1fb8d4
#define RAIL_LEVEL_SUPPORTED			0x00000001
Packit 1fb8d4
#define RAIL_LEVEL_DOCKED_LANGBAR_SUPPORTED	0x00000002
Packit 1fb8d4
#define RAIL_LEVEL_SHELL_INTEGRATION_SUPPORTED 0x00000004
Packit 1fb8d4
#define RAIL_LEVEL_LANGUAGE_IME_SYNC_SUPPORTED 0x00000008
Packit 1fb8d4
#define RAIL_LEVEL_SERVER_TO_CLIENT_IME_SYNC_SUPPORTED 0x00000010
Packit 1fb8d4
#define RAIL_LEVEL_HIDE_MINIMIZED_APPS_SUPPORTED 0x00000020
Packit 1fb8d4
Packit 1fb8d4
/* Window Support Level */
Packit 1fb8d4
#define WINDOW_LEVEL_NOT_SUPPORTED		0x00000000
Packit 1fb8d4
#define WINDOW_LEVEL_SUPPORTED			0x00000001
Packit 1fb8d4
#define WINDOW_LEVEL_SUPPORTED_EX		0x00000002
Packit 1fb8d4
Packit 1fb8d4
/* Desktop Composition Support Level */
Packit 1fb8d4
#define COMPDESK_NOT_SUPPORTED			0x0000
Packit 1fb8d4
#define COMPDESK_SUPPORTED			0x0001
Packit 1fb8d4
Packit 1fb8d4
/* Large Pointer Support Flags */
Packit 1fb8d4
#define LARGE_POINTER_FLAG_96x96		0x00000001
Packit 1fb8d4
Packit 1fb8d4
/* Surface Commands Flags */
Packit 1fb8d4
#define SURFCMDS_SET_SURFACE_BITS		0x00000002
Packit 1fb8d4
#define SURFCMDS_FRAME_MARKER			0x00000010
Packit 1fb8d4
#define SURFCMDS_STREAM_SURFACE_BITS		0x00000040
Packit 1fb8d4
Packit 1fb8d4
/* Bitmap Codec Constants */
Packit 1fb8d4
#define CARDP_CAPS_CAPTURE_NON_CAC		0x00000001
Packit 1fb8d4
#define CBY_CAPS				0xCBC0
Packit 1fb8d4
#define CBY_CAPSET				0xCBC1
Packit 1fb8d4
#define CLY_CAPSET				0xCFC0
Packit 1fb8d4
#define CLW_VERSION_1_0				0x0100
Packit 1fb8d4
#define CT_TILE_64x64				0x0040
Packit 1fb8d4
#define CLW_COL_CONV_ICT			0x1
Packit 1fb8d4
#define CLW_XFORM_DWT_53_A			0x1
Packit 1fb8d4
#define CLW_ENTROPY_RLGR1			0x01
Packit 1fb8d4
#define CLW_ENTROPY_RLGR3			0x04
Packit 1fb8d4
Packit 1fb8d4
FREERDP_LOCAL BOOL rdp_recv_get_active_header(rdpRdp* rdp, wStream* s,
Packit 1fb8d4
        UINT16* pChannelId);
Packit 1fb8d4
FREERDP_LOCAL BOOL rdp_recv_demand_active(rdpRdp* rdp, wStream* s);
Packit 1fb8d4
FREERDP_LOCAL BOOL rdp_write_demand_active(wStream* s, rdpSettings* settings);
Packit 1fb8d4
FREERDP_LOCAL BOOL rdp_send_demand_active(rdpRdp* rdp);
Packit 1fb8d4
FREERDP_LOCAL BOOL rdp_recv_confirm_active(rdpRdp* rdp, wStream* s);
Packit 1fb8d4
FREERDP_LOCAL BOOL rdp_write_confirm_active(wStream* s, rdpSettings* settings);
Packit 1fb8d4
FREERDP_LOCAL BOOL rdp_send_confirm_active(rdpRdp* rdp);
Packit 1fb8d4
Packit 1fb8d4
#endif /* FREERDP_LIB_CORE_CAPABILITIES_H */