KWin
Loading...
Searching...
No Matches
context.h
Go to the documentation of this file.
1/*
2 KWin - the KDE window manager
3 This file is part of the KDE project.
4
5 SPDX-FileCopyrightText: 2014 Martin Gräßlin <mgraesslin@kde.org>
6
7 SPDX-License-Identifier: GPL-2.0-or-later
8*/
9#pragma once
10
11#include <libinput.h>
12#include <memory>
13
14namespace KWin
15{
16
17class Session;
18class Udev;
19
20namespace LibInput
21{
22
23class Event;
24
25class Context
26{
27public:
28 Context(Session *session, std::unique_ptr<Udev> &&udev);
29 ~Context();
30 bool initialize();
31 bool isValid() const
32 {
33 return m_libinput != nullptr;
34 }
35 bool isSuspended() const
36 {
37 return m_suspended;
38 }
39
40 Session *session() const;
41 int fileDescriptor();
42 void dispatch();
43 void suspend();
44 void resume();
45
46 operator libinput *()
47 {
48 return m_libinput;
49 }
50 operator libinput *() const
51 {
52 return m_libinput;
53 }
54
58 std::unique_ptr<Event> event();
59
60 static int openRestrictedCallback(const char *path, int flags, void *user_data);
61 static void closeRestrictedCallBack(int fd, void *user_data);
62 static const struct libinput_interface s_interface;
63
64private:
65 int openRestricted(const char *path, int flags);
66 void closeRestricted(int fd);
67
68 Session *m_session;
69 struct libinput *m_libinput;
70 bool m_suspended;
71 std::unique_ptr<Udev> m_udev;
72};
73
74}
75}
Context(Session *session, std::unique_ptr< Udev > &&udev)
Definition context.cpp:46
static int openRestrictedCallback(const char *path, int flags, void *user_data)
Definition context.cpp:94
Session * session() const
Definition context.cpp:71
bool isSuspended() const
Definition context.h:35
bool isValid() const
Definition context.h:31
std::unique_ptr< Event > event()
Definition context.cpp:153
static void closeRestrictedCallBack(int fd, void *user_data)
Definition context.cpp:99