aboutsummaryrefslogtreecommitdiff
path: root/include/GlobalHotkeysLinux.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'include/GlobalHotkeysLinux.hpp')
-rw-r--r--include/GlobalHotkeysLinux.hpp14
1 files changed, 11 insertions, 3 deletions
diff --git a/include/GlobalHotkeysLinux.hpp b/include/GlobalHotkeysLinux.hpp
index 62da74e..c9428de 100644
--- a/include/GlobalHotkeysLinux.hpp
+++ b/include/GlobalHotkeysLinux.hpp
@@ -7,18 +7,26 @@
namespace gsr {
class GlobalHotkeysLinux : public GlobalHotkeys {
public:
- GlobalHotkeysLinux();
+ enum class GrabType {
+ ALL,
+ VIRTUAL
+ };
+
+ GlobalHotkeysLinux(GrabType grab_type);
GlobalHotkeysLinux(const GlobalHotkeysLinux&) = delete;
GlobalHotkeysLinux& operator=(const GlobalHotkeysLinux&) = delete;
~GlobalHotkeysLinux() override;
bool start();
- bool bind_action(const std::string &id, GlobalHotkeyCallback callback) override;
+ bool bind_key_press(Hotkey hotkey, const std::string &id, GlobalHotkeyCallback callback) override;
+ void unbind_all_keys() override;
void poll_events() override;
private:
pid_t process_id = 0;
- int pipes[2];
+ int read_pipes[2];
+ int write_pipes[2];
FILE *read_file = nullptr;
std::unordered_map<std::string, GlobalHotkeyCallback> bound_actions_by_id;
+ GrabType grab_type;
};
} \ No newline at end of file