]>
Commit | Line | Data |
---|---|---|
6105683d LV |
1 | /* |
2 | * SPDX-License-Identifier: GPL-2.0-or-later | |
3 | * | |
4 | * This work is licensed under the terms of the GNU GPL, version 2 or later. | |
5 | * See the COPYING file in the top-level directory. | |
6 | */ | |
7 | ||
8 | #ifndef UI_INPUT_BARRIER_H | |
9 | #define UI_INPUT_BARRIER_H | |
10 | ||
11 | /* Barrier protocol */ | |
12 | #define BARRIER_VERSION_MAJOR 1 | |
13 | #define BARRIER_VERSION_MINOR 6 | |
14 | ||
15 | enum barrierCmd { | |
16 | barrierCmdCNoop, | |
17 | barrierCmdCClose, | |
18 | barrierCmdCEnter, | |
19 | barrierCmdCLeave, | |
20 | barrierCmdCClipboard, | |
21 | barrierCmdCScreenSaver, | |
22 | barrierCmdCResetOptions, | |
23 | barrierCmdCInfoAck, | |
24 | barrierCmdCKeepAlive, | |
25 | barrierCmdDKeyDown, | |
26 | barrierCmdDKeyRepeat, | |
27 | barrierCmdDKeyUp, | |
28 | barrierCmdDMouseDown, | |
29 | barrierCmdDMouseUp, | |
30 | barrierCmdDMouseMove, | |
31 | barrierCmdDMouseRelMove, | |
32 | barrierCmdDMouseWheel, | |
33 | barrierCmdDClipboard, | |
34 | barrierCmdDInfo, | |
35 | barrierCmdDSetOptions, | |
36 | barrierCmdDFileTransfer, | |
37 | barrierCmdDDragInfo, | |
38 | barrierCmdQInfo, | |
39 | barrierCmdEIncompatible, | |
40 | barrierCmdEBusy, | |
41 | barrierCmdEUnknown, | |
42 | barrierCmdEBad, | |
43 | /* connection sequence */ | |
44 | barrierCmdHello, | |
45 | barrierCmdHelloBack, | |
46 | }; | |
47 | ||
48 | enum { | |
49 | barrierButtonNone, | |
50 | barrierButtonLeft, | |
51 | barrierButtonMiddle, | |
52 | barrierButtonRight, | |
53 | barrierButtonExtra0 | |
54 | }; | |
55 | ||
56 | struct barrierVersion { | |
57 | int16_t major; | |
58 | int16_t minor; | |
59 | }; | |
60 | ||
61 | struct barrierMouseButton { | |
62 | int8_t buttonid; | |
63 | }; | |
64 | ||
65 | struct barrierEnter { | |
66 | int16_t x; | |
67 | int16_t y; | |
68 | int32_t seqn; | |
69 | int16_t modifier; | |
70 | }; | |
71 | ||
72 | struct barrierMousePos { | |
73 | int16_t x; | |
74 | int16_t y; | |
75 | }; | |
76 | ||
77 | struct barrierKey { | |
78 | int16_t keyid; | |
79 | int16_t modifier; | |
80 | int16_t button; | |
81 | }; | |
82 | ||
83 | struct barrierRepeat { | |
84 | int16_t keyid; | |
85 | int16_t modifier; | |
86 | int16_t repeat; | |
87 | int16_t button; | |
88 | }; | |
89 | ||
90 | #define BARRIER_MAX_OPTIONS 32 | |
91 | struct barrierSet { | |
92 | int nb; | |
93 | struct { | |
94 | int id; | |
95 | char nul; | |
96 | int value; | |
97 | } option[BARRIER_MAX_OPTIONS]; | |
98 | }; | |
99 | ||
100 | struct barrierMsg { | |
101 | enum barrierCmd cmd; | |
102 | union { | |
103 | struct barrierVersion version; | |
104 | struct barrierMouseButton mousebutton; | |
105 | struct barrierMousePos mousepos; | |
106 | struct barrierEnter enter; | |
107 | struct barrierKey key; | |
108 | struct barrierRepeat repeat; | |
109 | struct barrierSet set; | |
110 | }; | |
111 | }; | |
112 | #endif |