Deskflow 1.27.0.5
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 Synergy App 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
173enum class TransferState : uint8_t
174{
175 Started,
180};
181 // end of protocol_enums group
183
199
205
232extern const char *const kMsgHello;
233
247extern const char *const kMsgHelloArgs;
248
276extern const char *const kMsgHelloBack;
277
292extern const char *const kMsgHelloBackArgs;
293 // end of protocol_handshake group
295
301
314extern const char *const kMsgCNoop;
315
328extern const char *const kMsgCClose;
329
358extern const char *const kMsgCEnter;
359
376extern const char *const kMsgCLeave;
377
407extern const char *const kMsgCClipboard;
408
435extern const char *const kMsgCScreenSaver;
436
450extern const char *const kMsgCResetOptions;
451
466extern const char *const kMsgCInfoAck;
467
491extern const char *const kMsgCKeepAlive;
492 // end of protocol_commands group
494
500
506
546extern const char *const kMsgDKeyDown;
547
574extern const char *const kMsgDKeyDown1_1;
575
593extern const char *const kMsgDKeyDown1_0;
594
627extern const char *const kMsgDKeyRepeat;
628
655extern const char *const kMsgDKeyRepeat1_1;
656
674extern const char *const kMsgDKeyRepeat1_0;
675
703extern const char *const kMsgDKeyUp;
704
721extern const char *const kMsgDKeyUp1_0;
722 // end of protocol_keyboard group
724
730
766extern const char *const kMsgDMouseDown;
767
789extern const char *const kMsgDMouseUp;
790
814extern const char *const kMsgDMouseMove;
815
841extern const char *const kMsgDMouseRelMove;
842
882extern const char *const kMsgDMouseWheel;
883
900extern const char *const kMsgDMouseWheel1_0;
901 // end of protocol_mouse group
903
909
947extern const char *const kMsgDClipboard;
948 // end of protocol_clipboard group
950
956
993extern const char *const kMsgDInfo;
994
1018extern const char *const kMsgDSetOptions;
1019 // end of protocol_info group
1021
1027
1065extern const char *const kMsgDFileTransfer;
1066
1096extern const char *const kMsgDDragInfo;
1097 // end of protocol_files group
1099
1105
1134extern const char *const kMsgDSecureInputNotification;
1135
1163extern const char *const kMsgDLanguageSynchronisation;
1164 // end of protocol_system group
1166 // end of protocol_data group
1168
1174
1196extern const char *const kMsgQInfo;
1197 // end of protocol_queries group
1199
1205
1233extern const char *const kMsgEIncompatible;
1234
1254extern const char *const kMsgEBusy;
1255
1279extern const char *const kMsgEUnknown;
1280
1307extern const char *const kMsgEBad;
1308 // end of protocol_errors group
1310 // end of protocol_messages group
1312
1318
1340{
1341public:
1352 int32_t m_x;
1353 int32_t m_y;
1354
1363 int32_t m_w;
1364 int32_t m_h;
1365
1372 int32_t obsolete1;
1373
1388 int32_t m_mx;
1389 int32_t m_my;
1390};
1391 // end of protocol_structures group
Client computer information structure.
Definition ProtocolTypes.h:1340
int32_t m_w
Computer dimensions.
Definition ProtocolTypes.h:1363
int32_t obsolete1
Obsolete jump zone size.
Definition ProtocolTypes.h:1372
int32_t m_mx
Current mouse position.
Definition ProtocolTypes.h:1388
int32_t m_y
Top edge Y coordinate.
Definition ProtocolTypes.h:1353
int32_t m_my
Mouse Y position.
Definition ProtocolTypes.h:1389
int32_t m_h
Computer height in pixels.
Definition ProtocolTypes.h:1364
int32_t m_x
Computer position coordinates.
Definition ProtocolTypes.h:1352
const char *const kMsgDClipboard
Clipboard data transfer.
Definition ProtocolTypes.cpp:44
const char *const kMsgCScreenSaver
Screensaver state change.
Definition ProtocolTypes.cpp:22
const char *const kMsgCLeave
Leave computer command.
Definition ProtocolTypes.cpp:20
const char *const kMsgCResetOptions
Reset options command.
Definition ProtocolTypes.cpp:23
const char *const kMsgCInfoAck
Computer information acknowledgment.
Definition ProtocolTypes.cpp:24
const char *const kMsgCClose
Close connection command.
Definition ProtocolTypes.cpp:18
const char *const kMsgCNoop
No operation command.
Definition ProtocolTypes.cpp:17
const char *const kMsgCKeepAlive
Keep-alive message.
Definition ProtocolTypes.cpp:25
const char *const kMsgCClipboard
Clipboard grab notification.
Definition ProtocolTypes.cpp:21
const char *const kMsgCEnter
Enter computer command.
Definition ProtocolTypes.cpp:19
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
@ Oversize
Declared size over the limit, chunks are discarded.
Definition ProtocolTypes.h:178
@ Finished
Reception completed successfully.
Definition ProtocolTypes.h:177
@ Error
Reception failed with error.
Definition ProtocolTypes.h:179
const char *const kMsgEBusy
Client name already in use.
Definition ProtocolTypes.cpp:53
const char *const kMsgEUnknown
Unknown client name.
Definition ProtocolTypes.cpp:54
const char *const kMsgEIncompatible
Incompatible protocol versions.
Definition ProtocolTypes.cpp:52
const char *const kMsgEBad
Protocol violation.
Definition ProtocolTypes.cpp:55
const char *const kMsgDDragInfo
Drag and drop information.
Definition ProtocolTypes.cpp:48
const char *const kMsgDFileTransfer
File transfer data.
Definition ProtocolTypes.cpp:47
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:46
const char *const kMsgDInfo
Client computer information.
Definition ProtocolTypes.cpp:45
const char *const kMsgDKeyDown1_0
Key press event (legacy v1.0).
Definition ProtocolTypes.cpp:31
const char *const kMsgDKeyDown
Key press event.
Definition ProtocolTypes.cpp:29
const char *const kMsgDKeyDown1_1
Key press event (v1.1 to v1.7).
Definition ProtocolTypes.cpp:30
const char *const kMsgDKeyUp
Key release event.
Definition ProtocolTypes.cpp:36
const char *const kMsgDKeyUp1_0
Key release event (legacy v1.0).
Definition ProtocolTypes.cpp:37
const char *const kMsgDKeyRepeat1_1
Key auto-repeat event (v1.1 to v1.7).
Definition ProtocolTypes.cpp:34
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:35
const char *const kMsgDMouseRelMove
Relative mouse movement.
Definition ProtocolTypes.cpp:41
const char *const kMsgDMouseWheel
Mouse wheel scroll event.
Definition ProtocolTypes.cpp:42
const char *const kMsgDMouseUp
Mouse button release event.
Definition ProtocolTypes.cpp:39
const char *const kMsgDMouseMove
Absolute mouse movement.
Definition ProtocolTypes.cpp:40
const char *const kMsgDMouseWheel1_0
Mouse wheel scroll event (legacy v1.0-1.2).
Definition ProtocolTypes.cpp:43
const char *const kMsgDMouseDown
Mouse button press event.
Definition ProtocolTypes.cpp:38
const char *const kMsgQInfo
Query computer information.
Definition ProtocolTypes.cpp:51
const char *const kMsgDSecureInputNotification
Secure input notification (macOS).
Definition ProtocolTypes.cpp:49
const char *const kMsgDLanguageSynchronisation
Language synchronization.
Definition ProtocolTypes.cpp:50
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