qemu/ui/input-barrier.h
<<
>>
Prefs
   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
 113