Deskflow 1.24.0.365
Keyboard and mouse sharing utility
Loading...
Searching...
No Matches
ProtocolTypes.h
Go to the documentation of this file.
1/*
2 * Deskflow -- mouse and keyboard sharing utility
3 * SPDX-FileCopyrightText: (C) 2012 - 2016 Symless Ltd.
4 * SPDX-FileCopyrightText: (C) 2002 Chris Schoeneman
5 * SPDX-License-Identifier: GPL-2.0-only WITH LicenseRef-OpenSSL-Exception
6 */
7
8#pragma once
9
10#include <cstdint>
22
28
37static const int16_t kProtocolMajorVersion = 1;
38
48static const int16_t kProtocolMinorVersion = 8;
49
58static const uint16_t kDefaultPort = 24800;
59
68static const uint32_t kMaxHelloLength = 1024;
69
80static const double kKeepAliveRate = 3.0;
81
92static const double kKeepAlivesUntilDeath = 3.0;
93
100static const double kHeartRate = -1.0;
101
108static const double kHeartBeatsUntilDeath = 3.0;
109
120static constexpr uint32_t PROTOCOL_MAX_MESSAGE_LENGTH = 4 * 1024 * 1024;
121
130static constexpr uint32_t PROTOCOL_MAX_LIST_LENGTH = 1024 * 1024;
131
140static constexpr uint32_t PROTOCOL_MAX_STRING_LENGTH = 1024 * 1024;
141 // end of protocol_constants group
143
149
159{
160 inline static const auto DataStart = 1;
161 inline static const auto DataChunk = 2;
162 inline static const auto DataEnd = 3;
163};
164
180 // end of protocol_enums group
182
198
204
213extern const char *const kSynergyProtocolName;
214
223extern const char *const kBarrierProtocolName;
224
251extern const char *const kMsgHello;
252
266extern const char *const kMsgHelloArgs;
267
295extern const char *const kMsgHelloBack;
296
311extern const char *const kMsgHelloBackArgs;
312 // end of protocol_handshake group
314
320
333extern const char *const kMsgCNoop;
334
347extern const char *const kMsgCClose;
348
377extern const char *const kMsgCEnter;
378
395extern const char *const kMsgCLeave;
396
426extern const char *const kMsgCClipboard;
427
454extern const char *const kMsgCScreenSaver;
455
469extern const char *const kMsgCResetOptions;
470
485extern const char *const kMsgCInfoAck;
486
510extern const char *const kMsgCKeepAlive;
511 // end of protocol_commands group
513
519
525
553extern const char *const kMsgDKeyDownLang;
554
590extern const char *const kMsgDKeyDown;
591
609extern const char *const kMsgDKeyDown1_0;
610
639extern const char *const kMsgDKeyRepeat;
640
658extern const char *const kMsgDKeyRepeat1_0;
659
687extern const char *const kMsgDKeyUp;
688
705extern const char *const kMsgDKeyUp1_0;
706 // end of protocol_keyboard group
708
714
750extern const char *const kMsgDMouseDown;
751
773extern const char *const kMsgDMouseUp;
774
798extern const char *const kMsgDMouseMove;
799
825extern const char *const kMsgDMouseRelMove;
826
866extern const char *const kMsgDMouseWheel;
867
884extern const char *const kMsgDMouseWheel1_0;
885 // end of protocol_mouse group
887
893
931extern const char *const kMsgDClipboard;
932 // end of protocol_clipboard group
934
940
977extern const char *const kMsgDInfo;
978
1002extern const char *const kMsgDSetOptions;
1003 // end of protocol_info group
1005
1011
1049extern const char *const kMsgDFileTransfer;
1050
1080extern const char *const kMsgDDragInfo;
1081 // end of protocol_files group
1083
1089
1118extern const char *const kMsgDSecureInputNotification;
1119
1147extern const char *const kMsgDLanguageSynchronisation;
1148 // end of protocol_system group
1150 // end of protocol_data group
1152
1158
1180extern const char *const kMsgQInfo;
1181 // end of protocol_queries group
1183
1189
1217extern const char *const kMsgEIncompatible;
1218
1238extern const char *const kMsgEBusy;
1239
1263extern const char *const kMsgEUnknown;
1264
1291extern const char *const kMsgEBad;
1292 // end of protocol_errors group
1294 // end of protocol_messages group
1296
1302
1324{
1325public:
1336 int32_t m_x;
1337 int32_t m_y;
1338
1347 int32_t m_w;
1348 int32_t m_h;
1349
1356 int32_t obsolete1;
1357
1372 int32_t m_mx;
1373 int32_t m_my;
1374};
1375 // end of protocol_structures group
Client screen information structure.
Definition ProtocolTypes.h:1324
int32_t m_w
Screen dimensions.
Definition ProtocolTypes.h:1347
int32_t obsolete1
Obsolete jump zone size.
Definition ProtocolTypes.h:1356
int32_t m_mx
Current mouse position.
Definition ProtocolTypes.h:1372
int32_t m_y
Top edge Y coordinate.
Definition ProtocolTypes.h:1337
int32_t m_my
Mouse Y position.
Definition ProtocolTypes.h:1373
int32_t m_h
Screen height in pixels.
Definition ProtocolTypes.h:1348
int32_t m_x
Screen position coordinates.
Definition ProtocolTypes.h:1336
const char *const kMsgDClipboard
Clipboard data transfer.
Definition ProtocolTypes.cpp:43
const char *const kMsgCScreenSaver
Screensaver state change.
Definition ProtocolTypes.cpp:26
const char *const kMsgCLeave
Leave screen command.
Definition ProtocolTypes.cpp:24
const char *const kMsgCResetOptions
Reset options command.
Definition ProtocolTypes.cpp:27
const char *const kMsgCInfoAck
Screen information acknowledgment.
Definition ProtocolTypes.cpp:28
const char *const kMsgCClose
Close connection command.
Definition ProtocolTypes.cpp:22
const char *const kMsgCNoop
No operation command.
Definition ProtocolTypes.cpp:21
const char *const kMsgCKeepAlive
Keep-alive message.
Definition ProtocolTypes.cpp:29
const char *const kMsgCClipboard
Clipboard grab notification.
Definition ProtocolTypes.cpp:25
const char *const kMsgCEnter
Enter screen command.
Definition ProtocolTypes.cpp:23
static const uint16_t kDefaultPort
Default TCP port for Deskflow connections.
Definition ProtocolTypes.h:58
static const int16_t kProtocolMinorVersion
Protocol minor version number.
Definition ProtocolTypes.h:48
static const double kKeepAlivesUntilDeath
Keep-alive timeout threshold.
Definition ProtocolTypes.h:92
static const double kKeepAliveRate
Keep-alive message interval in seconds.
Definition ProtocolTypes.h:80
static const uint32_t kMaxHelloLength
Maximum length for client greeting message.
Definition ProtocolTypes.h:68
static constexpr uint32_t PROTOCOL_MAX_STRING_LENGTH
Maximum allowed string length in protocol messages.
Definition ProtocolTypes.h:140
static constexpr uint32_t PROTOCOL_MAX_LIST_LENGTH
Maximum allowed list length in protocol messages.
Definition ProtocolTypes.h:130
static const double kHeartRate
Obsolete heartbeat rate (deprecated).
Definition ProtocolTypes.h:100
static constexpr uint32_t PROTOCOL_MAX_MESSAGE_LENGTH
Maximum allowed message length.
Definition ProtocolTypes.h:120
static const double kHeartBeatsUntilDeath
Obsolete heartbeat timeout (deprecated).
Definition ProtocolTypes.h:108
static const int16_t kProtocolMajorVersion
Protocol major version number.
Definition ProtocolTypes.h:37
TransferState
Data reception state codes.
Definition ProtocolTypes.h:174
@ InProgress
Reception in progress.
Definition ProtocolTypes.h:176
@ Started
Reception started.
Definition ProtocolTypes.h:175
@ Finished
Reception completed successfully.
Definition ProtocolTypes.h:177
@ Error
Reception failed with error.
Definition ProtocolTypes.h:178
const char *const kMsgEBusy
Client name already in use.
Definition ProtocolTypes.cpp:52
const char *const kMsgEUnknown
Unknown client name.
Definition ProtocolTypes.cpp:53
const char *const kMsgEIncompatible
Incompatible protocol versions.
Definition ProtocolTypes.cpp:51
const char *const kMsgEBad
Protocol violation.
Definition ProtocolTypes.cpp:54
const char *const kMsgDDragInfo
Drag and drop information.
Definition ProtocolTypes.cpp:47
const char *const kMsgDFileTransfer
File transfer data.
Definition ProtocolTypes.cpp:46
const char *const kBarrierProtocolName
Protocol name for Barrier compatibility.
Definition ProtocolTypes.cpp:13
const char *const kMsgHello
Server hello message.
Definition ProtocolTypes.cpp:17
const char *const kMsgHelloArgs
Format string for server hello message arguments.
Definition ProtocolTypes.cpp:18
const char *const kSynergyProtocolName
Protocol name for Synergy compatibility.
Definition ProtocolTypes.cpp:12
const char *const kMsgHelloBackArgs
Format string for client hello response arguments.
Definition ProtocolTypes.cpp:20
const char *const kMsgHelloBack
Client hello response message.
Definition ProtocolTypes.cpp:19
const char *const kMsgDSetOptions
Set client options.
Definition ProtocolTypes.cpp:45
const char *const kMsgDInfo
Client screen information.
Definition ProtocolTypes.cpp:44
const char *const kMsgDKeyDown1_0
Key press event (legacy v1.0).
Definition ProtocolTypes.cpp:32
const char *const kMsgDKeyDown
Key press event.
Definition ProtocolTypes.cpp:31
const char *const kMsgDKeyDownLang
Key press with language code (v1.8+).
Definition ProtocolTypes.cpp:30
const char *const kMsgDKeyUp
Key release event.
Definition ProtocolTypes.cpp:35
const char *const kMsgDKeyUp1_0
Key release event (legacy v1.0).
Definition ProtocolTypes.cpp:36
const char *const kMsgDKeyRepeat
Key auto-repeat event.
Definition ProtocolTypes.cpp:33
const char *const kMsgDKeyRepeat1_0
Key auto-repeat event (legacy v1.0).
Definition ProtocolTypes.cpp:34
const char *const kMsgDMouseRelMove
Relative mouse movement.
Definition ProtocolTypes.cpp:40
const char *const kMsgDMouseWheel
Mouse wheel scroll event.
Definition ProtocolTypes.cpp:41
const char *const kMsgDMouseUp
Mouse button release event.
Definition ProtocolTypes.cpp:38
const char *const kMsgDMouseMove
Absolute mouse movement.
Definition ProtocolTypes.cpp:39
const char *const kMsgDMouseWheel1_0
Mouse wheel scroll event (legacy v1.0-1.2).
Definition ProtocolTypes.cpp:42
const char *const kMsgDMouseDown
Mouse button press event.
Definition ProtocolTypes.cpp:37
const char *const kMsgQInfo
Query screen information.
Definition ProtocolTypes.cpp:50
const char *const kMsgDSecureInputNotification
Secure input notification (macOS).
Definition ProtocolTypes.cpp:48
const char *const kMsgDLanguageSynchronisation
Language synchronization.
Definition ProtocolTypes.cpp:49
File transfer data chunk types.
Definition ProtocolTypes.h:159
static const auto DataStart
Start of transfer (contains file size).
Definition ProtocolTypes.h:160
static const auto DataEnd
End of transfer (transfer complete).
Definition ProtocolTypes.h:162
static const auto DataChunk
Data chunk (contains file content).
Definition ProtocolTypes.h:161