cscg24-guacamole

CSCG 2024 Challenge 'Guacamole Mashup'
git clone https://git.sinitax.com/sinitax/cscg24-guacamole
Log | Files | Refs | sfeed.txt

disp.h (2435B)


      1/**
      2 * FreeRDP: A Remote Desktop Protocol Implementation
      3 * RDPEDISP Virtual Channel Extension
      4 *
      5 * Copyright 2019 Kobi Mizrachi <kmizrachi18@gmail.com>
      6 *
      7 * Licensed under the Apache License, Version 2.0 (the "License");
      8 * you may not use this file except in compliance with the License.
      9 * You may obtain a copy of the License at
     10 *
     11 *	 http://www.apache.org/licenses/LICENSE-2.0
     12 *
     13 * Unless required by applicable law or agreed to in writing, software
     14 * distributed under the License is distributed on an "AS IS" BASIS,
     15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     16 * See the License for the specific language governing permissions and
     17 * limitations under the License.
     18 */
     19
     20#ifndef FREERDP_CHANNEL_DISP_H
     21#define FREERDP_CHANNEL_DISP_H
     22
     23#include <freerdp/api.h>
     24#include <freerdp/types.h>
     25
     26#define DISPLAY_CONTROL_PDU_TYPE_CAPS 0x00000005
     27#define DISPLAY_CONTROL_PDU_TYPE_MONITOR_LAYOUT 0x00000002
     28#define DISPLAY_CONTROL_MONITOR_LAYOUT_SIZE 40
     29
     30#define DISP_DVC_CHANNEL_NAME "Microsoft::Windows::RDS::DisplayControl"
     31#define ORIENTATION_LANDSCAPE 0
     32#define ORIENTATION_PORTRAIT 90
     33#define ORIENTATION_LANDSCAPE_FLIPPED 180
     34#define ORIENTATION_PORTRAIT_FLIPPED 270
     35
     36#define DISPLAY_CONTROL_MONITOR_PRIMARY 0x00000001
     37#define DISPLAY_CONTROL_HEADER_LENGTH 0x00000008
     38
     39#define DISPLAY_CONTROL_MIN_MONITOR_WIDTH 200
     40#define DISPLAY_CONTROL_MAX_MONITOR_WIDTH 8192
     41
     42#define DISPLAY_CONTROL_MIN_MONITOR_HEIGHT 200
     43#define DISPLAY_CONTROL_MAX_MONITOR_HEIGHT 8192
     44
     45#define DISPLAY_CONTROL_MIN_PHYSICAL_MONITOR_WIDTH 10
     46#define DISPLAY_CONTROL_MAX_PHYSICAL_MONITOR_WIDTH 10000
     47
     48#define DISPLAY_CONTROL_MIN_PHYSICAL_MONITOR_HEIGHT 10
     49#define DISPLAY_CONTROL_MAX_PHYSICAL_MONITOR_HEIGHT 10000
     50
     51struct _DISPLAY_CONTROL_HEADER
     52{
     53	UINT32 type;
     54	UINT32 length;
     55};
     56typedef struct _DISPLAY_CONTROL_HEADER DISPLAY_CONTROL_HEADER;
     57
     58struct _DISPLAY_CONTROL_MONITOR_LAYOUT
     59{
     60	UINT32 Flags;
     61	INT32 Left;
     62	INT32 Top;
     63	UINT32 Width;
     64	UINT32 Height;
     65	UINT32 PhysicalWidth;
     66	UINT32 PhysicalHeight;
     67	UINT32 Orientation;
     68	UINT32 DesktopScaleFactor;
     69	UINT32 DeviceScaleFactor;
     70};
     71typedef struct _DISPLAY_CONTROL_MONITOR_LAYOUT DISPLAY_CONTROL_MONITOR_LAYOUT;
     72
     73struct _DISPLAY_CONTROL_MONITOR_LAYOUT_PDU
     74{
     75	UINT32 MonitorLayoutSize;
     76	UINT32 NumMonitors;
     77	DISPLAY_CONTROL_MONITOR_LAYOUT* Monitors;
     78};
     79
     80typedef struct _DISPLAY_CONTROL_MONITOR_LAYOUT_PDU DISPLAY_CONTROL_MONITOR_LAYOUT_PDU;
     81
     82#endif /* FREERDP_CHANNEL_DISP_H */