112 lines
2.1 KiB
C
112 lines
2.1 KiB
C
/*
|
|
* 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
|