Deskflow 1.26.0.0
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
231extern const char *const kMsgHello;
232
246extern const char *const kMsgHelloArgs;
247
275extern const char *const kMsgHelloBack;
276
291extern const char *const kMsgHelloBackArgs;
292 // end of protocol_handshake group
294
300
313extern const char *const kMsgCNoop;
314
327extern const char *const kMsgCClose;
328
357extern const char *const kMsgCEnter;
358
375extern const char *const kMsgCLeave;
376
406extern const char *const kMsgCClipboard;
407
434extern const char *const kMsgCScreenSaver;
435
449extern const char *const kMsgCResetOptions;
450
465extern const char *const kMsgCInfoAck;
466
490extern const char *const kMsgCKeepAlive;
491 // end of protocol_commands group
493
499
505
533extern const char *const kMsgDKeyDownLang;
534
570extern const char *const kMsgDKeyDown;
571
589extern const char *const kMsgDKeyDown1_0;
590
619extern const char *const kMsgDKeyRepeat;
620
638extern const char *const kMsgDKeyRepeat1_0;
639
667extern const char *const kMsgDKeyUp;
668
685extern const char *const kMsgDKeyUp1_0;
686 // end of protocol_keyboard group
688
694
730extern const char *const kMsgDMouseDown;
731
753extern const char *const kMsgDMouseUp;
754
778extern const char *const kMsgDMouseMove;
779
805extern const char *const kMsgDMouseRelMove;
806
846extern const char *const kMsgDMouseWheel;
847
864extern const char *const kMsgDMouseWheel1_0;
865 // end of protocol_mouse group
867
873
911extern const char *const kMsgDClipboard;
912 // end of protocol_clipboard group
914
920
957extern const char *const kMsgDInfo;
958
982extern const char *const kMsgDSetOptions;
983 // end of protocol_info group
985
991
1029extern const char *const kMsgDFileTransfer;
1030
1060extern const char *const kMsgDDragInfo;
1061 // end of protocol_files group
1063
1069
1098extern const char *const kMsgDSecureInputNotification;
1099
1127extern const char *const kMsgDLanguageSynchronisation;
1128 // end of protocol_system group
1130 // end of protocol_data group
1132
1138
1160extern const char *const kMsgQInfo;
1161 // end of protocol_queries group
1163
1169
1197extern const char *const kMsgEIncompatible;
1198
1218extern const char *const kMsgEBusy;
1219
1243extern const char *const kMsgEUnknown;
1244
1271extern const char *const kMsgEBad;
1272 // end of protocol_errors group
1274 // end of protocol_messages group
1276
1282
1304{
1305public:
1316 int32_t m_x;
1317 int32_t m_y;
1318
1327 int32_t m_w;
1328 int32_t m_h;
1329
1336 int32_t obsolete1;
1337
1352 int32_t m_mx;
1353 int32_t m_my;
1354};
1355 // end of protocol_structures group
Client screen information structure.
Definition ProtocolTypes.h:1304
int32_t m_w
Screen dimensions.
Definition ProtocolTypes.h:1327
int32_t obsolete1
Obsolete jump zone size.
Definition ProtocolTypes.h:1336
int32_t m_mx
Current mouse position.
Definition ProtocolTypes.h:1352
int32_t m_y
Top edge Y coordinate.
Definition ProtocolTypes.h:1317
int32_t m_my
Mouse Y position.
Definition ProtocolTypes.h:1353
int32_t m_h
Screen height in pixels.
Definition ProtocolTypes.h:1328
int32_t m_x
Screen position coordinates.
Definition ProtocolTypes.h:1316
const char *const kMsgDClipboard
Clipboard data transfer.
Definition ProtocolTypes.cpp:38
const char *const kMsgCScreenSaver
Screensaver state change.
Definition ProtocolTypes.cpp:21
const char *const kMsgCLeave
Leave screen command.
Definition ProtocolTypes.cpp:19
const char *const kMsgCResetOptions
Reset options command.
Definition ProtocolTypes.cpp:22
const char *const kMsgCInfoAck
Screen information acknowledgment.
Definition ProtocolTypes.cpp:23
const char *const kMsgCClose
Close connection command.
Definition ProtocolTypes.cpp:17
const char *const kMsgCNoop
No operation command.
Definition ProtocolTypes.cpp:16
const char *const kMsgCKeepAlive
Keep-alive message.
Definition ProtocolTypes.cpp:24
const char *const kMsgCClipboard
Clipboard grab notification.
Definition ProtocolTypes.cpp:20
const char *const kMsgCEnter
Enter screen command.
Definition ProtocolTypes.cpp:18
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:47
const char *const kMsgEUnknown
Unknown client name.
Definition ProtocolTypes.cpp:48
const char *const kMsgEIncompatible
Incompatible protocol versions.
Definition ProtocolTypes.cpp:46
const char *const kMsgEBad
Protocol violation.
Definition ProtocolTypes.cpp:49
const char *const kMsgDDragInfo
Drag and drop information.
Definition ProtocolTypes.cpp:42
const char *const kMsgDFileTransfer
File transfer data.
Definition ProtocolTypes.cpp:41
const char *const kMsgHello
Server hello message.
Definition ProtocolTypes.cpp:12
const char *const kMsgHelloArgs
Format string for server hello message arguments.
Definition ProtocolTypes.cpp:13
const char *const kMsgHelloBackArgs
Format string for client hello response arguments.
Definition ProtocolTypes.cpp:15
const char *const kMsgHelloBack
Client hello response message.
Definition ProtocolTypes.cpp:14
const char *const kMsgDSetOptions
Set client options.
Definition ProtocolTypes.cpp:40
const char *const kMsgDInfo
Client screen information.
Definition ProtocolTypes.cpp:39
const char *const kMsgDKeyDown1_0
Key press event (legacy v1.0).
Definition ProtocolTypes.cpp:27
const char *const kMsgDKeyDown
Key press event.
Definition ProtocolTypes.cpp:26
const char *const kMsgDKeyDownLang
Key press with language code (v1.8+).
Definition ProtocolTypes.cpp:25
const char *const kMsgDKeyUp
Key release event.
Definition ProtocolTypes.cpp:30
const char *const kMsgDKeyUp1_0
Key release event (legacy v1.0).
Definition ProtocolTypes.cpp:31
const char *const kMsgDKeyRepeat
Key auto-repeat event.
Definition ProtocolTypes.cpp:28
const char *const kMsgDKeyRepeat1_0
Key auto-repeat event (legacy v1.0).
Definition ProtocolTypes.cpp:29
const char *const kMsgDMouseRelMove
Relative mouse movement.
Definition ProtocolTypes.cpp:35
const char *const kMsgDMouseWheel
Mouse wheel scroll event.
Definition ProtocolTypes.cpp:36
const char *const kMsgDMouseUp
Mouse button release event.
Definition ProtocolTypes.cpp:33
const char *const kMsgDMouseMove
Absolute mouse movement.
Definition ProtocolTypes.cpp:34
const char *const kMsgDMouseWheel1_0
Mouse wheel scroll event (legacy v1.0-1.2).
Definition ProtocolTypes.cpp:37
const char *const kMsgDMouseDown
Mouse button press event.
Definition ProtocolTypes.cpp:32
const char *const kMsgQInfo
Query screen information.
Definition ProtocolTypes.cpp:45
const char *const kMsgDSecureInputNotification
Secure input notification (macOS).
Definition ProtocolTypes.cpp:43
const char *const kMsgDLanguageSynchronisation
Language synchronization.
Definition ProtocolTypes.cpp:44
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