input-barrier.h 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  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. #ifndef UI_INPUT_BARRIER_H
  8. #define UI_INPUT_BARRIER_H
  9. /* Barrier protocol */
  10. #define BARRIER_VERSION_MAJOR 1
  11. #define BARRIER_VERSION_MINOR 6
  12. enum barrierCmd {
  13. barrierCmdCNoop,
  14. barrierCmdCClose,
  15. barrierCmdCEnter,
  16. barrierCmdCLeave,
  17. barrierCmdCClipboard,
  18. barrierCmdCScreenSaver,
  19. barrierCmdCResetOptions,
  20. barrierCmdCInfoAck,
  21. barrierCmdCKeepAlive,
  22. barrierCmdDKeyDown,
  23. barrierCmdDKeyRepeat,
  24. barrierCmdDKeyUp,
  25. barrierCmdDMouseDown,
  26. barrierCmdDMouseUp,
  27. barrierCmdDMouseMove,
  28. barrierCmdDMouseRelMove,
  29. barrierCmdDMouseWheel,
  30. barrierCmdDClipboard,
  31. barrierCmdDInfo,
  32. barrierCmdDSetOptions,
  33. barrierCmdDFileTransfer,
  34. barrierCmdDDragInfo,
  35. barrierCmdQInfo,
  36. barrierCmdEIncompatible,
  37. barrierCmdEBusy,
  38. barrierCmdEUnknown,
  39. barrierCmdEBad,
  40. /* connection sequence */
  41. barrierCmdHello,
  42. barrierCmdHelloBack,
  43. };
  44. enum {
  45. barrierButtonNone,
  46. barrierButtonLeft,
  47. barrierButtonMiddle,
  48. barrierButtonRight,
  49. barrierButtonExtra0
  50. };
  51. struct barrierVersion {
  52. int16_t major;
  53. int16_t minor;
  54. };
  55. struct barrierMouseButton {
  56. int8_t buttonid;
  57. };
  58. struct barrierEnter {
  59. int16_t x;
  60. int16_t y;
  61. int32_t seqn;
  62. int16_t modifier;
  63. };
  64. struct barrierMousePos {
  65. int16_t x;
  66. int16_t y;
  67. };
  68. struct barrierKey {
  69. int16_t keyid;
  70. int16_t modifier;
  71. int16_t button;
  72. };
  73. struct barrierRepeat {
  74. int16_t keyid;
  75. int16_t modifier;
  76. int16_t repeat;
  77. int16_t button;
  78. };
  79. #define BARRIER_MAX_OPTIONS 32
  80. struct barrierSet {
  81. int nb;
  82. struct {
  83. int id;
  84. char nul;
  85. int value;
  86. } option[BARRIER_MAX_OPTIONS];
  87. };
  88. struct barrierMsg {
  89. enum barrierCmd cmd;
  90. union {
  91. struct barrierVersion version;
  92. struct barrierMouseButton mousebutton;
  93. struct barrierMousePos mousepos;
  94. struct barrierEnter enter;
  95. struct barrierKey key;
  96. struct barrierRepeat repeat;
  97. struct barrierSet set;
  98. };
  99. };
  100. #endif