summaryrefslogtreecommitdiffstats
path: root/src/platformsupport/input/evdevtablet/qevdevtablethandler_p.h
diff options
context:
space:
mode:
authorRomain Pokrzywka <romain.pokrzywka@bluescape.com>2015-09-02 15:15:58 -0700
committerRomain Pokrzywka <romain.pokrzywka@gmail.com>2015-09-03 17:01:39 +0000
commit352c357e6f0785c0775a85151d6716b47aea1006 (patch)
tree7832108242289458c809521720d9d258699e5197 /src/platformsupport/input/evdevtablet/qevdevtablethandler_p.h
parent916909f8a9683b2d6006602e419231d5f3b66b88 (diff)
Improve evdevtablet plugin with support for multiple tablet devices
Migrated the evdevtablet code to use the same Manager/Handler model used by the other evdev plugins. The input event parsing code remains the same, it has just been merged into the new handler class, and hardcoded device ids have been replaced by proper per-device ids to support multiple tablet devices as detected by udev. Also added tablet count reporting to QInputDeviceManager. Change-Id: Ibd72db568646da4f32e7680dd51698a0a86dca99 Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
Diffstat (limited to 'src/platformsupport/input/evdevtablet/qevdevtablethandler_p.h')
-rw-r--r--src/platformsupport/input/evdevtablet/qevdevtablethandler_p.h96
1 files changed, 96 insertions, 0 deletions
diff --git a/src/platformsupport/input/evdevtablet/qevdevtablethandler_p.h b/src/platformsupport/input/evdevtablet/qevdevtablethandler_p.h
new file mode 100644
index 0000000000..4a9b2bab34
--- /dev/null
+++ b/src/platformsupport/input/evdevtablet/qevdevtablethandler_p.h
@@ -0,0 +1,96 @@
+/****************************************************************************
+**
+** Copyright (C) 2015 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the plugins module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL21$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 or version 3 as published by the Free
+** Software Foundation and appearing in the file LICENSE.LGPLv21 and
+** LICENSE.LGPLv3 included in the packaging of this file. Please review the
+** following information to ensure the GNU Lesser General Public License
+** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
+** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** As a special exception, The Qt Company gives you certain additional
+** rights. These rights are described in The Qt Company LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef QEVDEVTABLETHANDLER_P_H
+#define QEVDEVTABLETHANDLER_P_H
+
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists purely as an
+// implementation detail. This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+//
+
+#include <QObject>
+#include <QString>
+#include <QThread>
+#include <QtCore/private/qthread_p.h>
+
+QT_BEGIN_NAMESPACE
+
+class QSocketNotifier;
+class QEvdevTabletData;
+
+class QEvdevTabletHandler : public QObject
+{
+ Q_OBJECT
+
+public:
+ explicit QEvdevTabletHandler(const QString &device, const QString &spec = QString(), QObject *parent = 0);
+ ~QEvdevTabletHandler();
+
+ qint64 deviceId() const;
+
+private slots:
+ void readData();
+
+private:
+ bool queryLimits();
+
+ int m_fd;
+ QString m_device;
+ QSocketNotifier *m_notifier;
+ QEvdevTabletData *d;
+};
+
+class QEvdevTabletHandlerThread : public QDaemonThread
+{
+public:
+ explicit QEvdevTabletHandlerThread(const QString &device, const QString &spec, QObject *parent = 0);
+ ~QEvdevTabletHandlerThread();
+ void run() Q_DECL_OVERRIDE;
+ QEvdevTabletHandler *handler() { return m_handler; }
+
+private:
+ QString m_device;
+ QString m_spec;
+ QEvdevTabletHandler *m_handler;
+};
+
+QT_END_NAMESPACE
+
+#endif // QEVDEVTABLETHANDLER_P_H