Deskflow 1.22.0.197
Keyboard and mouse sharing utility
Loading...
Searching...
No Matches
PrimaryClient.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
12
13namespace deskflow {
14class Screen;
15}
16
18
24{
25public:
29 PrimaryClient(const std::string &name, deskflow::Screen *screen);
30 ~PrimaryClient() override = default;
31
33
34
36
39 virtual void reconfigure(uint32_t activeSides);
40
42
46 virtual uint32_t registerHotKey(KeyID key, KeyModifierMask mask);
47
49
52 virtual void unregisterHotKey(uint32_t id);
53
55
61 void fakeInputBegin();
62
64
67 void fakeInputEnd();
68
70
72
74
78 int32_t getJumpZoneSize() const;
79
81
86 void getCursorCenter(int32_t &x, int32_t &y) const;
87
89
92 virtual KeyModifierMask getToggleMask() const;
93
95
98 bool isLockedToScreen() const;
99
101
102 // FIXME -- these probably belong on IScreen
103 virtual void enable();
104 virtual void disable();
105
106 // IScreen overrides
107 void *getEventTarget() const override;
108 bool getClipboard(ClipboardID id, IClipboard *) const override;
109 void getShape(int32_t &x, int32_t &y, int32_t &width, int32_t &height) const override;
110 void getCursorPos(int32_t &x, int32_t &y) const override;
111
112 // IClient overrides
113 void enter(int32_t xAbs, int32_t yAbs, uint32_t seqNum, KeyModifierMask mask, bool forScreensaver) override;
114 bool leave() override;
115 void setClipboard(ClipboardID, const IClipboard *) override;
116 void grabClipboard(ClipboardID) override;
117 void setClipboardDirty(ClipboardID, bool) override;
118 void keyDown(KeyID, KeyModifierMask, KeyButton, const std::string &) override;
119 void keyRepeat(KeyID, KeyModifierMask, int32_t count, KeyButton, const std::string &) override;
120 void keyUp(KeyID, KeyModifierMask, KeyButton) override;
121 void mouseDown(ButtonID) override;
122 void mouseUp(ButtonID) override;
123 void mouseMove(int32_t xAbs, int32_t yAbs) override;
124 void mouseRelativeMove(int32_t xRel, int32_t yRel) override;
125 void mouseWheel(int32_t xDelta, int32_t yDelta) override;
126 void screensaver(bool activate) override;
127 void resetOptions() override;
128 void setOptions(const OptionsList &options) override;
129 void sendDragInfo(uint32_t fileCount, const char *info, size_t size) override;
130 void fileChunkSending(uint8_t mark, char *data, size_t dataSize) override;
131 std::string getSecureInputApp() const override;
132 void secureInputNotification(const std::string &app) const override;
133
134 deskflow::IStream *getStream() const override
135 {
136 return nullptr;
137 }
138 bool isPrimary() const override
139 {
140 return true;
141 }
142
143private:
144 deskflow::Screen *m_screen;
145 bool m_clipboardDirty[kClipboardEnd] = {false, false};
146 int32_t m_fakeInputCount = 0;
147};
static const struct sockaddr FAR * name
Definition ArchNetworkWinsock.cpp:27
static int void FAR * data
Definition ArchNetworkWinsock.cpp:34
static const ClipboardID kClipboardEnd
Definition ClipboardTypes.h:30
uint8_t ClipboardID
Clipboard ID.
Definition ClipboardTypes.h:16
int key
Definition KeySequence.cpp:15
uint32_t KeyID
Key ID.
Definition KeyTypes.h:22
uint16_t KeyButton
Key Code.
Definition KeyTypes.h:35
uint32_t KeyModifierMask
Modifier key mask.
Definition KeyTypes.h:45
uint8_t ButtonID
Mouse button ID.
Definition MouseTypes.h:16
std::vector< uint32_t > OptionsList
Definition OptionTypes.h:27
Deskflow Network Protocol Specification and Implementation.
int y
Definition ServerConfig.cpp:27
int x
Definition ServerConfig.cpp:26
BaseClientProxy(const std::string &name)
Definition BaseClientProxy.cpp:14
Clipboard interface.
Definition IClipboard.h:20
~PrimaryClient() override=default
void mouseMove(int32_t xAbs, int32_t yAbs) override
Notify of mouse motion.
Definition PrimaryClient.cpp:181
void keyRepeat(KeyID, KeyModifierMask, int32_t count, KeyButton, const std::string &) override
Notify of key repeat.
Definition PrimaryClient.cpp:155
void mouseWheel(int32_t xDelta, int32_t yDelta) override
Notify of mouse wheel motion.
Definition PrimaryClient.cpp:191
void setOptions(const OptionsList &options) override
Notify of options changes.
Definition PrimaryClient.cpp:226
bool getClipboard(ClipboardID id, IClipboard *) const override
Get clipboard.
Definition PrimaryClient.cpp:79
void getCursorCenter(int32_t &x, int32_t &y) const
Get cursor center position.
Definition PrimaryClient.cpp:59
virtual void unregisterHotKey(uint32_t id)
Unregister a system hotkey.
Definition PrimaryClient.cpp:35
std::string getSecureInputApp() const override
Definition PrimaryClient.cpp:211
virtual KeyModifierMask getToggleMask() const
Get toggle key state.
Definition PrimaryClient.cpp:64
void keyUp(KeyID, KeyModifierMask, KeyButton) override
Notify of key release.
Definition PrimaryClient.cpp:160
void secureInputNotification(const std::string &app) const override
Definition PrimaryClient.cpp:216
virtual void reconfigure(uint32_t activeSides)
Update configuration.
Definition PrimaryClient.cpp:25
void fileChunkSending(uint8_t mark, char *data, size_t dataSize) override
Definition PrimaryClient.cpp:206
int32_t getJumpZoneSize() const
Get jump zone size.
Definition PrimaryClient.cpp:54
void mouseRelativeMove(int32_t xRel, int32_t yRel) override
Notify of mouse motion.
Definition PrimaryClient.cpp:186
virtual void enable()
Definition PrimaryClient.cpp:94
bool isLockedToScreen() const
Get screen lock state.
Definition PrimaryClient.cpp:69
PrimaryClient(const std::string &name, deskflow::Screen *screen)
Definition PrimaryClient.cpp:18
virtual void disable()
Definition PrimaryClient.cpp:99
void setClipboardDirty(ClipboardID, bool) override
Mark clipboard dirty.
Definition PrimaryClient.cpp:139
void screensaver(bool activate) override
Notify of screen saver change.
Definition PrimaryClient.cpp:196
void sendDragInfo(uint32_t fileCount, const char *info, size_t size) override
Definition PrimaryClient.cpp:201
void getCursorPos(int32_t &x, int32_t &y) const override
Get cursor position.
Definition PrimaryClient.cpp:89
void resetOptions() override
Notify of options changes.
Definition PrimaryClient.cpp:221
void * getEventTarget() const override
Get event target.
Definition PrimaryClient.cpp:74
deskflow::IStream * getStream() const override
Definition PrimaryClient.h:134
void grabClipboard(ClipboardID) override
Grab clipboard.
Definition PrimaryClient.cpp:130
void getShape(int32_t &x, int32_t &y, int32_t &width, int32_t &height) const override
Get screen shape.
Definition PrimaryClient.cpp:84
void mouseDown(ButtonID) override
Notify of mouse press.
Definition PrimaryClient.cpp:171
void keyDown(KeyID, KeyModifierMask, KeyButton, const std::string &) override
Notify of key press.
Definition PrimaryClient.cpp:144
void fakeInputBegin()
Prepare to synthesize input on primary screen.
Definition PrimaryClient.cpp:40
void setClipboard(ClipboardID, const IClipboard *) override
Set clipboard.
Definition PrimaryClient.cpp:118
void fakeInputEnd()
Done synthesizing input on primary screen.
Definition PrimaryClient.cpp:47
virtual uint32_t registerHotKey(KeyID key, KeyModifierMask mask)
Register a system hotkey.
Definition PrimaryClient.cpp:30
void mouseUp(ButtonID) override
Notify of mouse release.
Definition PrimaryClient.cpp:176
void enter(int32_t xAbs, int32_t yAbs, uint32_t seqNum, KeyModifierMask mask, bool forScreensaver) override
Enter screen.
Definition PrimaryClient.cpp:104
bool leave() override
Leave screen.
Definition PrimaryClient.cpp:113
bool isPrimary() const override
Get cursor position.
Definition PrimaryClient.h:138
Bidirectional stream interface.
Definition IStream.h:24
Platform independent screen.
Definition Screen.h:30
Definition EventTypes.h:11