| /* |
| * SPDX-License-Identifier: GPL-2.0-or-later |
| * |
| * This work is licensed under the terms of the GNU GPL, version 2 or later. |
| * See the COPYING file in the top-level directory. |
| */ |
| |
| #ifndef UI_INPUT_BARRIER_H |
| #define UI_INPUT_BARRIER_H |
| |
| /* Barrier protocol */ |
| #define BARRIER_VERSION_MAJOR 1 |
| #define BARRIER_VERSION_MINOR 6 |
| |
| enum barrierCmd { |
| barrierCmdCNoop, |
| barrierCmdCClose, |
| barrierCmdCEnter, |
| barrierCmdCLeave, |
| barrierCmdCClipboard, |
| barrierCmdCScreenSaver, |
| barrierCmdCResetOptions, |
| barrierCmdCInfoAck, |
| barrierCmdCKeepAlive, |
| barrierCmdDKeyDown, |
| barrierCmdDKeyRepeat, |
| barrierCmdDKeyUp, |
| barrierCmdDMouseDown, |
| barrierCmdDMouseUp, |
| barrierCmdDMouseMove, |
| barrierCmdDMouseRelMove, |
| barrierCmdDMouseWheel, |
| barrierCmdDClipboard, |
| barrierCmdDInfo, |
| barrierCmdDSetOptions, |
| barrierCmdDFileTransfer, |
| barrierCmdDDragInfo, |
| barrierCmdQInfo, |
| barrierCmdEIncompatible, |
| barrierCmdEBusy, |
| barrierCmdEUnknown, |
| barrierCmdEBad, |
| /* connection sequence */ |
| barrierCmdHello, |
| barrierCmdHelloBack, |
| }; |
| |
| enum { |
| barrierButtonNone, |
| barrierButtonLeft, |
| barrierButtonMiddle, |
| barrierButtonRight, |
| barrierButtonExtra0 |
| }; |
| |
| struct barrierVersion { |
| int16_t major; |
| int16_t minor; |
| }; |
| |
| struct barrierMouseButton { |
| int8_t buttonid; |
| }; |
| |
| struct barrierEnter { |
| int16_t x; |
| int16_t y; |
| int32_t seqn; |
| int16_t modifier; |
| }; |
| |
| struct barrierMousePos { |
| int16_t x; |
| int16_t y; |
| }; |
| |
| struct barrierKey { |
| int16_t keyid; |
| int16_t modifier; |
| int16_t button; |
| }; |
| |
| struct barrierRepeat { |
| int16_t keyid; |
| int16_t modifier; |
| int16_t repeat; |
| int16_t button; |
| }; |
| |
| #define BARRIER_MAX_OPTIONS 32 |
| struct barrierSet { |
| int nb; |
| struct { |
| int id; |
| char nul; |
| int value; |
| } option[BARRIER_MAX_OPTIONS]; |
| }; |
| |
| struct barrierMsg { |
| enum barrierCmd cmd; |
| union { |
| struct barrierVersion version; |
| struct barrierMouseButton mousebutton; |
| struct barrierMousePos mousepos; |
| struct barrierEnter enter; |
| struct barrierKey key; |
| struct barrierRepeat repeat; |
| struct barrierSet set; |
| }; |
| }; |
| #endif |