qemu

FORK: QEMU emulator
git clone https://git.neptards.moe/neptards/qemu.git
Log | Files | Refs | Submodules | LICENSE

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