input-barrier.h (2188B)
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 15enum 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 48enum { 49 barrierButtonNone, 50 barrierButtonLeft, 51 barrierButtonMiddle, 52 barrierButtonRight, 53 barrierButtonExtra0 54}; 55 56struct barrierVersion { 57 int16_t major; 58 int16_t minor; 59}; 60 61struct barrierMouseButton { 62 int8_t buttonid; 63}; 64 65struct barrierEnter { 66 int16_t x; 67 int16_t y; 68 int32_t seqn; 69 int16_t modifier; 70}; 71 72struct barrierMousePos { 73 int16_t x; 74 int16_t y; 75}; 76 77struct barrierKey { 78 int16_t keyid; 79 int16_t modifier; 80 int16_t button; 81}; 82 83struct 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 91struct barrierSet { 92 int nb; 93 struct { 94 int id; 95 char nul; 96 int value; 97 } option[BARRIER_MAX_OPTIONS]; 98}; 99 100struct 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