KWin
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
connection.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 "effect/globals.h"
12
13#include <KSharedConfig>
14
15#include <QList>
16#include <QObject>
17#include <QPointer>
18#include <QRecursiveMutex>
19#include <QSize>
20#include <QStringList>
21#include <deque>
22
23class QSocketNotifier;
24class QThread;
25
26namespace KWin
27{
28
29class Session;
30class Udev;
31
32namespace LibInput
33{
34
35class Event;
36class Device;
37class Context;
38class ConnectionAdaptor;
39
40class KWIN_EXPORT Connection : public QObject
41{
42 Q_OBJECT
43
44public:
45 ~Connection() override;
46
47 void setInputConfig(const KSharedConfigPtr &config)
48 {
49 m_config = config;
50 }
51
52 void setup();
53 void updateScreens();
54 void deactivate();
55 void processEvents();
56
57 QStringList devicesSysNames() const;
58
59 static std::unique_ptr<Connection> create(Session *session);
60
61Q_SIGNALS:
64
65 void eventsRead();
66
67private Q_SLOTS:
68 void slotKGlobalSettingsNotifyChange(int type, int arg);
69
70private:
71 Connection(std::unique_ptr<Context> &&input);
72 void handleEvent();
73 void applyDeviceConfig(Device *device);
74 void applyScreenToDevice(Device *device);
75 void doSetup();
76 std::unique_ptr<QSocketNotifier> m_notifier;
77 QRecursiveMutex m_mutex;
78 std::deque<std::unique_ptr<Event>> m_eventQueue;
79 QList<Device *> m_devices;
80 KSharedConfigPtr m_config;
81 std::unique_ptr<ConnectionAdaptor> m_connectionAdaptor;
82 std::unique_ptr<Context> m_input;
83 std::unique_ptr<Udev> m_udev;
84};
85
86}
87}
void setInputConfig(const KSharedConfigPtr &config)
Definition connection.h:47
void deviceAdded(KWin::LibInput::Device *)
void deviceRemoved(KWin::LibInput::Device *)