/* | |
* 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 |