diff options
Diffstat (limited to 'src/plugins/generic/tslib')
-rw-r--r-- | src/plugins/generic/tslib/main.cpp | 15 | ||||
-rw-r--r-- | src/plugins/generic/tslib/qtslib.cpp | 136 | ||||
-rw-r--r-- | src/plugins/generic/tslib/qtslib.h | 65 | ||||
-rw-r--r-- | src/plugins/generic/tslib/tslib.pro | 7 |
4 files changed, 7 insertions, 216 deletions
diff --git a/src/plugins/generic/tslib/main.cpp b/src/plugins/generic/tslib/main.cpp index 737b175941..1fbe440bb5 100644 --- a/src/plugins/generic/tslib/main.cpp +++ b/src/plugins/generic/tslib/main.cpp @@ -32,7 +32,7 @@ ****************************************************************************/ #include <QtGui/qgenericplugin.h> -#include "qtslib.h" +#include <QtPlatformSupport/private/qtslib_p.h> QT_BEGIN_NAMESPACE @@ -42,21 +42,16 @@ class QTsLibPlugin : public QGenericPlugin Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QGenericPluginFactoryInterface" FILE "tslib.json") public: - QTsLibPlugin(); - QObject* create(const QString &key, const QString &specification); }; -QTsLibPlugin::QTsLibPlugin() - : QGenericPlugin() -{ -} - QObject* QTsLibPlugin::create(const QString &key, - const QString &specification) + const QString &specification) { - if (!key.compare(QLatin1String("Tslib"), Qt::CaseInsensitive) || !key.compare(QLatin1String("TslibRaw"), Qt::CaseInsensitive)) + if (!key.compare(QLatin1String("Tslib"), Qt::CaseInsensitive) + || !key.compare(QLatin1String("TslibRaw"), Qt::CaseInsensitive)) return new QTsLibMouseHandler(key, specification); + return 0; } diff --git a/src/plugins/generic/tslib/qtslib.cpp b/src/plugins/generic/tslib/qtslib.cpp deleted file mode 100644 index a8f60b69ff..0000000000 --- a/src/plugins/generic/tslib/qtslib.cpp +++ /dev/null @@ -1,136 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/legal -** -** This file is part of the QtGui 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 Digia. For licensing terms and -** conditions see http://qt.digia.com/licensing. For further information -** use the contact form at http://qt.digia.com/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. -** -** In addition, as a special exception, Digia gives you certain additional -** rights. These rights are described in the Digia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - - -#include "qtslib.h" - - -#include <QSocketNotifier> -#include <QStringList> -#include <QPoint> -#include <qpa/qwindowsysteminterface.h> - -#include <errno.h> -#include <tslib.h> - -#include <qdebug.h> - -QT_BEGIN_NAMESPACE - -QTsLibMouseHandler::QTsLibMouseHandler(const QString &key, - const QString &specification) - : m_notify(0), m_x(0), m_y(0), m_pressed(0), m_rawMode(false) -{ - qDebug() << "QTsLibMouseHandler" << key << specification; - setObjectName(QLatin1String("TSLib Mouse Handler")); - - QByteArray device = qgetenv("TSLIB_TSDEVICE"); - - if (specification.startsWith("/dev/")) - device = specification.toLocal8Bit(); - - if (device.isEmpty()) - device = QByteArrayLiteral("/dev/input/event1"); - - m_dev = ts_open(device.constData(), 1); - if (!m_dev) { - qErrnoWarning(errno, "ts_open() failed"); - return; - } - - if (ts_config(m_dev)) - perror("Error configuring\n"); - - m_rawMode = !key.compare(QLatin1String("TslibRaw"), Qt::CaseInsensitive); - - int fd = ts_fd(m_dev); - if (fd >= 0) { - m_notify = new QSocketNotifier(fd, QSocketNotifier::Read, this); - connect(m_notify, SIGNAL(activated(int)), this, SLOT(readMouseData())); - } else { - qWarning("Cannot open mouse input device '%s': %s", device.constData(), strerror(errno)); - } -} - - -QTsLibMouseHandler::~QTsLibMouseHandler() -{ - if (m_dev) - ts_close(m_dev); -} - - -static bool get_sample(struct tsdev *dev, struct ts_sample *sample, bool rawMode) -{ - if (rawMode) - return (ts_read_raw(dev, sample, 1) == 1); - else - return (ts_read(dev, sample, 1) == 1); -} - - -void QTsLibMouseHandler::readMouseData() -{ - ts_sample sample; - - while (get_sample(m_dev, &sample, m_rawMode)) { - bool pressed = sample.pressure; - int x = sample.x; - int y = sample.y; - - // work around missing coordinates on mouse release - if (sample.pressure == 0 && sample.x == 0 && sample.y == 0) { - x = m_x; - y = m_y; - } - - if (!m_rawMode) { - //filtering: ignore movements of 2 pixels or less - int dx = x - m_x; - int dy = y - m_y; - if (dx*dx <= 4 && dy*dy <= 4 && pressed == m_pressed) - continue; - } - QPoint pos(x, y); - - //printf("handleMouseEvent %d %d %d %ld\n", m_x, m_y, pressed, sample.tv.tv_usec); - - QWindowSystemInterface::handleMouseEvent(0, pos, pos, pressed ? Qt::LeftButton : Qt::NoButton); - - m_x = x; - m_y = y; - m_pressed = pressed; - } -} - -QT_END_NAMESPACE diff --git a/src/plugins/generic/tslib/qtslib.h b/src/plugins/generic/tslib/qtslib.h deleted file mode 100644 index cd11ca5e2f..0000000000 --- a/src/plugins/generic/tslib/qtslib.h +++ /dev/null @@ -1,65 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/legal -** -** This file is part of the QtGui 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 Digia. For licensing terms and -** conditions see http://qt.digia.com/licensing. For further information -** use the contact form at http://qt.digia.com/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. -** -** In addition, as a special exception, Digia gives you certain additional -** rights. These rights are described in the Digia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QTSLIB_H -#define QTSLIB_H - -#include <qobject.h> -//#include <Qt> - -QT_BEGIN_NAMESPACE - -class QSocketNotifier; -struct tsdev; - -class QTsLibMouseHandler : public QObject -{ - Q_OBJECT -public: - QTsLibMouseHandler(const QString &key, const QString &specification); - ~QTsLibMouseHandler(); - -private slots: - void readMouseData(); - -private: - QSocketNotifier * m_notify; - tsdev *m_dev; - int m_x, m_y; - bool m_pressed; - bool m_rawMode; -}; - -QT_END_NAMESPACE - -#endif // QTSLIB_H diff --git a/src/plugins/generic/tslib/tslib.pro b/src/plugins/generic/tslib/tslib.pro index bc05efcc32..be6fc4fbea 100644 --- a/src/plugins/generic/tslib/tslib.pro +++ b/src/plugins/generic/tslib/tslib.pro @@ -5,12 +5,9 @@ PLUGIN_EXTENDS = - PLUGIN_CLASS_NAME = QTsLibPlugin load(qt_plugin) -HEADERS = qtslib.h +SOURCES = main.cpp -SOURCES = main.cpp \ - qtslib.cpp - -QT += gui-private +QT += gui-private platformsupport-private LIBS += -lts |