Deskflow 1.27.0.7
Keyboard and mouse sharing utility
Loading...
Searching...
No Matches
IPrimaryComputer.h
Go to the documentation of this file.
1/*
2 * Deskflow -- mouse and keyboard sharing utility
3 * SPDX-FileCopyrightText: (C) 2025 Deskflow Developers
4 * SPDX-FileCopyrightText: (C) 2012 - 2016 Synergy App Ltd
5 * SPDX-FileCopyrightText: (C) 2003 Chris Schoeneman
6 * SPDX-License-Identifier: GPL-2.0-only WITH LicenseRef-OpenSSL-Exception
7 */
8
9#pragma once
10
11#include "deskflow/KeyTypes.h"
12#include "deskflow/MouseTypes.h"
13
15
20{
21public:
22 virtual ~IPrimaryComputer() = default;
25 {
26 public:
27 ButtonInfo(ButtonID button, KeyModifierMask mask) : m_button{button}, m_mask{mask}
28 {
29 // do nothing
30 }
32 static ButtonInfo *alloc(const ButtonInfo &);
33
34 static bool equal(const ButtonInfo *, const ButtonInfo *);
35
36 public:
39 };
40
42 {
43 public:
44 static MotionInfo *alloc(int32_t x, int32_t y);
45
46 public:
47 int32_t m_x;
48 int32_t m_y;
49 };
50
52 {
53 public:
54 static WheelInfo *alloc(int32_t xDelta, int32_t yDelta);
55
56 public:
57 int32_t m_xDelta;
58 int32_t m_yDelta;
59 };
60
62 {
63 public:
64 static HotKeyInfo *alloc(uint32_t id);
65
66 public:
67 uint32_t m_id;
68 };
69
71 {
72 public:
73 static EiConnectInfo *alloc(int fd);
74
75 public:
76 int m_fd;
77 };
78
80
81
83
89 virtual void reconfigure(uint32_t activeSides) = 0;
90
95 virtual uint32_t activeSides() = 0;
96
98
103 virtual void warpCursor(int32_t x, int32_t y) = 0;
104
106
126 virtual uint32_t registerHotKey(KeyID key, KeyModifierMask mask) = 0;
127
129
132 virtual void unregisterHotKey(uint32_t id) = 0;
133
135
141 virtual void fakeInputBegin() = 0;
142
144
147 virtual void fakeInputEnd() = 0;
148
150
152
154
158 virtual int32_t getJumpZoneSize() const = 0;
159
161
166 virtual bool isAnyMouseButtonDown(uint32_t &buttonID) const = 0;
167
169
174 virtual void getCursorCenter(int32_t &x, int32_t &y) const = 0;
175
177};
uint32_t KeyID
Key ID.
Definition KeyTypes.h:22
uint32_t KeyModifierMask
Modifier key mask.
Definition KeyTypes.h:45
uint8_t ButtonID
Mouse button ID.
Definition MouseTypes.h:16
Button event data.
Definition IPrimaryComputer.h:25
ButtonInfo(ButtonID button, KeyModifierMask mask)
Definition IPrimaryComputer.h:27
KeyModifierMask m_mask
Definition IPrimaryComputer.h:38
ButtonID m_button
Definition IPrimaryComputer.h:37
static ButtonInfo * alloc(ButtonID, KeyModifierMask)
Definition IPrimaryComputer.cpp:16
static bool equal(const ButtonInfo *, const ButtonInfo *)
Definition IPrimaryComputer.cpp:32
Definition IPrimaryComputer.h:71
int m_fd
Definition IPrimaryComputer.h:76
static EiConnectInfo * alloc(int fd)
Definition IPrimaryComputer.cpp:76
Hot key event data.
Definition IPrimaryComputer.h:62
uint32_t m_id
Definition IPrimaryComputer.h:67
static HotKeyInfo * alloc(uint32_t id)
Definition IPrimaryComputer.cpp:65
Motion event data.
Definition IPrimaryComputer.h:42
int32_t m_y
Definition IPrimaryComputer.h:48
static MotionInfo * alloc(int32_t x, int32_t y)
Definition IPrimaryComputer.cpp:41
int32_t m_x
Definition IPrimaryComputer.h:47
Wheel motion event data.
Definition IPrimaryComputer.h:52
int32_t m_yDelta
Definition IPrimaryComputer.h:58
int32_t m_xDelta
Definition IPrimaryComputer.h:57
static WheelInfo * alloc(int32_t xDelta, int32_t yDelta)
Definition IPrimaryComputer.cpp:53
Primary computer interface.
Definition IPrimaryComputer.h:20
virtual void getCursorCenter(int32_t &x, int32_t &y) const =0
Get cursor center position.
virtual void unregisterHotKey(uint32_t id)=0
Unregister a system hotkey.
virtual uint32_t registerHotKey(KeyID key, KeyModifierMask mask)=0
Register a system hotkey.
virtual void warpCursor(int32_t x, int32_t y)=0
Warp cursor.
virtual bool isAnyMouseButtonDown(uint32_t &buttonID) const =0
Test if mouse is pressed.
virtual void fakeInputEnd()=0
Done synthesizing input on primary computer.
virtual int32_t getJumpZoneSize() const =0
Get jump zone size.
virtual ~IPrimaryComputer()=default
virtual void reconfigure(uint32_t activeSides)=0
Update configuration.
virtual uint32_t activeSides()=0
activeSides
virtual void fakeInputBegin()=0
Prepare to synthesize input on primary computer.