summaryrefslogtreecommitdiffstats
path: root/src/plugins/generic
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/generic')
-rw-r--r--src/plugins/generic/evdevkeyboard/evdevkeyboard.pro4
-rw-r--r--src/plugins/generic/evdevkeyboard/qevdevkeyboardhandler.cpp18
-rw-r--r--src/plugins/generic/evdevkeyboard/qevdevkeyboardmanager.cpp6
-rw-r--r--src/plugins/generic/evdevkeyboard/qevdevkeyboardmanager.h4
-rw-r--r--src/plugins/generic/evdevmouse/evdevmouse.pro4
-rw-r--r--src/plugins/generic/evdevmouse/qevdevmousehandler.cpp19
-rw-r--r--src/plugins/generic/evdevmouse/qevdevmousemanager.cpp8
-rw-r--r--src/plugins/generic/evdevmouse/qevdevmousemanager.h4
-rw-r--r--src/plugins/generic/evdevtouch/evdevtouch.pro4
-rw-r--r--src/plugins/generic/evdevtouch/qevdevtouch.cpp38
-rw-r--r--src/plugins/generic/generic.pro4
11 files changed, 77 insertions, 36 deletions
diff --git a/src/plugins/generic/evdevkeyboard/evdevkeyboard.pro b/src/plugins/generic/evdevkeyboard/evdevkeyboard.pro
index 21e4bf63ee..b632e5b7ec 100644
--- a/src/plugins/generic/evdevkeyboard/evdevkeyboard.pro
+++ b/src/plugins/generic/evdevkeyboard/evdevkeyboard.pro
@@ -19,4 +19,6 @@ SOURCES = main.cpp \
OTHER_FILES += \
evdevkeyboard.json
-LIBS += $$QMAKE_LIBS_LIBUDEV
+contains(QT_CONFIG, libudev) {
+ LIBS += $$QMAKE_LIBS_LIBUDEV
+}
diff --git a/src/plugins/generic/evdevkeyboard/qevdevkeyboardhandler.cpp b/src/plugins/generic/evdevkeyboard/qevdevkeyboardhandler.cpp
index 73aa6419d3..eb29b853e7 100644
--- a/src/plugins/generic/evdevkeyboard/qevdevkeyboardhandler.cpp
+++ b/src/plugins/generic/evdevkeyboard/qevdevkeyboardhandler.cpp
@@ -168,16 +168,20 @@ void QEvdevKeyboardHandler::readKeycode()
int n = 0;
forever {
- n = qt_safe_read(m_fd, reinterpret_cast<char *>(buffer) + n, sizeof(buffer) - n);
+ int result = qt_safe_read(m_fd, reinterpret_cast<char *>(buffer) + n, sizeof(buffer) - n);
- if (n == 0) {
+ if (result == 0) {
qWarning("Got EOF from the input device.");
return;
- } else if (n < 0 && (errno != EINTR && errno != EAGAIN)) {
- qWarning("Could not read from input device: %s", strerror(errno));
- return;
- } else if (n % sizeof(buffer[0]) == 0) {
- break;
+ } else if (result < 0) {
+ if (errno != EINTR && errno != EAGAIN) {
+ qWarning("Could not read from input device: %s", strerror(errno));
+ return;
+ }
+ } else {
+ n += result;
+ if (n % sizeof(buffer[0]) == 0)
+ break;
}
}
diff --git a/src/plugins/generic/evdevkeyboard/qevdevkeyboardmanager.cpp b/src/plugins/generic/evdevkeyboard/qevdevkeyboardmanager.cpp
index 0938fdc2e4..697556c4ac 100644
--- a/src/plugins/generic/evdevkeyboard/qevdevkeyboardmanager.cpp
+++ b/src/plugins/generic/evdevkeyboard/qevdevkeyboardmanager.cpp
@@ -56,7 +56,11 @@ QEvdevKeyboardManager::QEvdevKeyboardManager(const QString &key, const QString &
{
Q_UNUSED(key);
+#ifndef QT_NO_LIBUDEV
bool useUDev = true;
+#else
+ bool useUDev = false;
+#endif // QT_NO_LIBUDEV
QStringList args = specification.split(QLatin1Char(':'));
QStringList devices;
@@ -77,6 +81,7 @@ QEvdevKeyboardManager::QEvdevKeyboardManager(const QString &key, const QString &
foreach (const QString &device, devices)
addKeyboard(device);
+#ifndef QT_NO_LIBUDEV
if (useUDev) {
#ifdef QT_QPA_KEYMAP_DEBUG
qWarning() << "Use UDev for device discovery";
@@ -94,6 +99,7 @@ QEvdevKeyboardManager::QEvdevKeyboardManager(const QString &key, const QString &
connect(m_udeviceHelper, SIGNAL(deviceRemoved(QString,QUDeviceTypes)), this, SLOT(removeKeyboard(QString)));
}
}
+#endif // QT_NO_LIBUDEV
}
QEvdevKeyboardManager::~QEvdevKeyboardManager()
diff --git a/src/plugins/generic/evdevkeyboard/qevdevkeyboardmanager.h b/src/plugins/generic/evdevkeyboard/qevdevkeyboardmanager.h
index c776af2ec5..a505ce834e 100644
--- a/src/plugins/generic/evdevkeyboard/qevdevkeyboardmanager.h
+++ b/src/plugins/generic/evdevkeyboard/qevdevkeyboardmanager.h
@@ -44,7 +44,9 @@
#include "qevdevkeyboardhandler.h"
+#ifndef QT_NO_LIBUDEV
#include <QtPlatformSupport/private/qudevicehelper_p.h>
+#endif // QT_NO_LIBUDEV
#include <QObject>
#include <QHash>
@@ -68,7 +70,9 @@ private slots:
private:
QString m_spec;
QHash<QString,QEvdevKeyboardHandler*> m_keyboards;
+#ifndef QT_NO_LIBUDEV
QUDeviceHelper *m_udeviceHelper;
+#endif // QT_NO_LIBUDEV
};
QT_END_HEADER
diff --git a/src/plugins/generic/evdevmouse/evdevmouse.pro b/src/plugins/generic/evdevmouse/evdevmouse.pro
index f322a5bd1a..fb9c0e71b8 100644
--- a/src/plugins/generic/evdevmouse/evdevmouse.pro
+++ b/src/plugins/generic/evdevmouse/evdevmouse.pro
@@ -17,4 +17,6 @@ SOURCES = main.cpp \
OTHER_FILES += \
evdevmouse.json
-LIBS += $$QMAKE_LIBS_LIBUDEV
+contains(QT_CONFIG, libudev) {
+ LIBS += $$QMAKE_LIBS_LIBUDEV
+}
diff --git a/src/plugins/generic/evdevmouse/qevdevmousehandler.cpp b/src/plugins/generic/evdevmouse/qevdevmousehandler.cpp
index 1821c2b06b..5e2911a806 100644
--- a/src/plugins/generic/evdevmouse/qevdevmousehandler.cpp
+++ b/src/plugins/generic/evdevmouse/qevdevmousehandler.cpp
@@ -48,7 +48,6 @@
#include <qplatformdefs.h>
#include <private/qcore_unix_p.h> // overrides QT_OPEN
-#include <QtPlatformSupport/private/qudevicehelper_p.h>
#include <errno.h>
@@ -146,16 +145,20 @@ void QEvdevMouseHandler::readMouseData()
bool pendingMouseEvent = false;
int eventCompressCount = 0;
forever {
- n = QT_READ(m_fd, reinterpret_cast<char *>(buffer) + n, sizeof(buffer) - n);
+ int result = QT_READ(m_fd, reinterpret_cast<char *>(buffer) + n, sizeof(buffer) - n);
- if (n == 0) {
+ if (result == 0) {
qWarning("Got EOF from the input device.");
return;
- } else if (n < 0 && (errno != EINTR && errno != EAGAIN)) {
- qWarning("Could not read from input device: %s", strerror(errno));
- return;
- } else if (n % sizeof(buffer[0]) == 0) {
- break;
+ } else if (result < 0) {
+ if (errno != EINTR && errno != EAGAIN) {
+ qWarning("Could not read from input device: %s", strerror(errno));
+ return;
+ }
+ } else {
+ n += result;
+ if (n % sizeof(buffer[0]) == 0)
+ break;
}
}
diff --git a/src/plugins/generic/evdevmouse/qevdevmousemanager.cpp b/src/plugins/generic/evdevmouse/qevdevmousemanager.cpp
index f8e77abe55..2120b1540f 100644
--- a/src/plugins/generic/evdevmouse/qevdevmousemanager.cpp
+++ b/src/plugins/generic/evdevmouse/qevdevmousemanager.cpp
@@ -56,7 +56,11 @@ QEvdevMouseManager::QEvdevMouseManager(const QString &key, const QString &specif
{
Q_UNUSED(key);
+#ifndef QT_NO_LIBUDEV
bool useUDev = true;
+#else
+ bool useUDev = false;
+#endif // QT_NO_LIBUDEV
QStringList args = specification.split(QLatin1Char(':'));
QStringList devices;
@@ -77,6 +81,9 @@ QEvdevMouseManager::QEvdevMouseManager(const QString &key, const QString &specif
foreach (const QString &device, devices)
addMouse(device);
+#ifdef QT_NO_LIBUDEV
+ Q_UNUSED(useUDev)
+#else
if (useUDev) {
#ifdef QT_QPA_MOUSEMANAGER_DEBUG
qWarning() << "Use UDev for device discovery";
@@ -94,6 +101,7 @@ QEvdevMouseManager::QEvdevMouseManager(const QString &key, const QString &specif
connect(m_udeviceHelper, SIGNAL(deviceRemoved(QString,QUDeviceTypes)), this, SLOT(removeMouse(QString)));
}
}
+#endif // QT_NO_LIBUDEV
}
QEvdevMouseManager::~QEvdevMouseManager()
diff --git a/src/plugins/generic/evdevmouse/qevdevmousemanager.h b/src/plugins/generic/evdevmouse/qevdevmousemanager.h
index a42257b6a2..f51bd455e8 100644
--- a/src/plugins/generic/evdevmouse/qevdevmousemanager.h
+++ b/src/plugins/generic/evdevmouse/qevdevmousemanager.h
@@ -44,7 +44,9 @@
#include "qevdevmousehandler.h"
+#ifndef QT_NO_LIBUDEV
#include <QtPlatformSupport/private/qudevicehelper_p.h>
+#endif // QT_NO_LIBUDEV
#include <QObject>
#include <QHash>
@@ -68,7 +70,9 @@ private slots:
private:
QString m_spec;
QHash<QString,QEvdevMouseHandler*> m_mice;
+#ifndef QT_NO_LIBUDEV
QUDeviceHelper *m_udeviceHelper;
+#endif // QT_NO_LIBUDEV
};
QT_END_HEADER
diff --git a/src/plugins/generic/evdevtouch/evdevtouch.pro b/src/plugins/generic/evdevtouch/evdevtouch.pro
index 192a87c2a3..c7d298d534 100644
--- a/src/plugins/generic/evdevtouch/evdevtouch.pro
+++ b/src/plugins/generic/evdevtouch/evdevtouch.pro
@@ -16,7 +16,9 @@ QT += core-private platformsupport-private
OTHER_FILES += \
evdevtouch.json
-LIBS += $$QMAKE_LIBS_LIBUDEV
+contains(QT_CONFIG, libudev) {
+ LIBS += $$QMAKE_LIBS_LIBUDEV
+}
# DEFINES += USE_MTDEV
diff --git a/src/plugins/generic/evdevtouch/qevdevtouch.cpp b/src/plugins/generic/evdevtouch/qevdevtouch.cpp
index b702807cab..1c3e8952e9 100644
--- a/src/plugins/generic/evdevtouch/qevdevtouch.cpp
+++ b/src/plugins/generic/evdevtouch/qevdevtouch.cpp
@@ -46,7 +46,9 @@
#include <QGuiApplication>
#include <QDebug>
#include <QtCore/private/qcore_unix_p.h>
+#ifndef QT_NO_LIBUDEV
#include <QtPlatformSupport/private/qudevicehelper_p.h>
+#endif // QT_NO_LIBUDEV
#include <linux/input.h>
#ifdef USE_MTDEV
@@ -147,6 +149,7 @@ QTouchScreenHandler::QTouchScreenHandler(const QString &spec)
QString dev;
+#ifndef QT_NO_LIBUDEV
// try to let udev scan for already connected devices
QScopedPointer<QUDeviceHelper> udeviceHelper(QUDeviceHelper::createUDeviceHelper(QUDeviceHelper::UDev_Touchpad | QUDeviceHelper::UDev_Touchscreen, this));
if (udeviceHelper) {
@@ -156,6 +159,7 @@ QTouchScreenHandler::QTouchScreenHandler(const QString &spec)
if (devices.size() > 0)
dev = devices[0];
}
+#endif // QT_NO_LIBUDEV
if (dev.isEmpty())
dev = QLatin1String("/dev/input/event0");
@@ -249,26 +253,30 @@ void QTouchScreenHandler::readData()
int n = 0;
for (; ;) {
#ifdef USE_MTDEV
- n = mtdev_get(m_mtdev, m_fd, buffer, sizeof(buffer) / sizeof(::input_event));
- if (n > 0)
- n *= sizeof(::input_event);
+ int result = mtdev_get(m_mtdev, m_fd, buffer, sizeof(buffer) / sizeof(::input_event));
+ if (result > 0)
+ result *= sizeof(::input_event);
#else
- n = QT_READ(m_fd, reinterpret_cast<char*>(buffer) + n, sizeof(buffer) - n);
+ int result = QT_READ(m_fd, reinterpret_cast<char*>(buffer) + n, sizeof(buffer) - n);
#endif
- if (!n) {
+ if (!result) {
qWarning("Got EOF from input device");
return;
- } else if (n < 0 && (errno != EINTR && errno != EAGAIN)) {
- qWarning("Could not read from input device: %s", strerror(errno));
- if (errno == ENODEV) { // device got disconnected -> stop reading
- delete m_notify;
- m_notify = 0;
- QT_CLOSE(m_fd);
- m_fd = -1;
+ } else if (result < 0) {
+ if (errno != EINTR && errno != EAGAIN) {
+ qWarning("Could not read from input device: %s", strerror(errno));
+ if (errno == ENODEV) { // device got disconnected -> stop reading
+ delete m_notify;
+ m_notify = 0;
+ QT_CLOSE(m_fd);
+ m_fd = -1;
+ }
+ return;
}
- return;
- } else if (n % sizeof(::input_event) == 0) {
- break;
+ } else {
+ n += result;
+ if (n % sizeof(::input_event) == 0)
+ break;
}
}
diff --git a/src/plugins/generic/generic.pro b/src/plugins/generic/generic.pro
index 06bc0091f4..86b529b39e 100644
--- a/src/plugins/generic/generic.pro
+++ b/src/plugins/generic/generic.pro
@@ -3,7 +3,5 @@ TEMPLATE = subdirs
linux-g++-maemo: SUBDIRS += meego
contains(QT_CONFIG, evdev) {
- contains(QT_CONFIG, libudev) {
- SUBDIRS += evdevmouse evdevtouch evdevkeyboard
- }
+ SUBDIRS += evdevmouse evdevtouch evdevkeyboard
}