From 7a304015bd57372eae1e615f0048c5b84b7c9842 Mon Sep 17 00:00:00 2001 From: Johannes Zellner Date: Mon, 14 May 2012 17:04:44 -0700 Subject: input: Use UDev or specific device paths Keyboard,mouse and touch plugins using evdev now either use udev for device discovery or the plugin arguments for fixed device paths. Change-Id: I72606ad48c15c55a49724a82f7bc285dd3984c43 Reviewed-by: Girish Ramakrishnan --- .../evdevkeyboard/qevdevkeyboardmanager.cpp | 5 ++-- .../generic/evdevmouse/qevdevmousemanager.cpp | 5 ++-- src/plugins/generic/evdevtouch/qevdevtouch.cpp | 32 +++++++++++++--------- 3 files changed, 23 insertions(+), 19 deletions(-) (limited to 'src/plugins') diff --git a/src/plugins/generic/evdevkeyboard/qevdevkeyboardmanager.cpp b/src/plugins/generic/evdevkeyboard/qevdevkeyboardmanager.cpp index 04ce2a73a0..6a891a4cb7 100644 --- a/src/plugins/generic/evdevkeyboard/qevdevkeyboardmanager.cpp +++ b/src/plugins/generic/evdevkeyboard/qevdevkeyboardmanager.cpp @@ -65,12 +65,11 @@ QEvdevKeyboardManager::QEvdevKeyboardManager(const QString &key, const QString & QStringList devices; foreach (const QString &arg, args) { - if (arg.startsWith(QLatin1String("udev")) && arg.contains(QLatin1String("no"))) { - useUDev = false; - } else if (arg.startsWith(QLatin1String("/dev/"))) { + if (arg.startsWith(QLatin1String("/dev/"))) { // if device is specified try to use it devices.append(arg); args.removeAll(arg); + useUDev = false; } } diff --git a/src/plugins/generic/evdevmouse/qevdevmousemanager.cpp b/src/plugins/generic/evdevmouse/qevdevmousemanager.cpp index 2120b1540f..506a2022d3 100644 --- a/src/plugins/generic/evdevmouse/qevdevmousemanager.cpp +++ b/src/plugins/generic/evdevmouse/qevdevmousemanager.cpp @@ -65,12 +65,11 @@ QEvdevMouseManager::QEvdevMouseManager(const QString &key, const QString &specif QStringList devices; foreach (const QString &arg, args) { - if (arg.startsWith("udev") && arg.contains("no")) { - useUDev = false; - } else if (arg.startsWith("/dev/")) { + if (arg.startsWith("/dev/")) { // if device is specified try to use it devices.append(arg); args.removeAll(arg); + useUDev = false; } } diff --git a/src/plugins/generic/evdevtouch/qevdevtouch.cpp b/src/plugins/generic/evdevtouch/qevdevtouch.cpp index 8d50991637..37db20a419 100644 --- a/src/plugins/generic/evdevtouch/qevdevtouch.cpp +++ b/src/plugins/generic/evdevtouch/qevdevtouch.cpp @@ -150,26 +150,32 @@ QTouchScreenHandler::QTouchScreenHandler(const QString &spec) QString dev; + // only the first device argument is used for now + QStringList args = spec.split(QLatin1Char(':')); + for (int i = 0; i < args.count(); ++i) { + if (args.at(i).startsWith(QLatin1String("/dev/"))) { + dev = args.at(i); + break; + } + } + #ifndef QT_NO_LIBUDEV - // try to let udev scan for already connected devices - QScopedPointer udeviceHelper(QUDeviceHelper::createUDeviceHelper(QUDeviceHelper::UDev_Touchpad | QUDeviceHelper::UDev_Touchscreen, this)); - if (udeviceHelper) { - QStringList devices = udeviceHelper->scanConnectedDevices(); - - // only the first device found is used for now - if (devices.size() > 0) - dev = devices[0]; + if (dev.isEmpty()) { + // try to let udev scan for already connected devices + QScopedPointer udeviceHelper(QUDeviceHelper::createUDeviceHelper(QUDeviceHelper::UDev_Touchpad | QUDeviceHelper::UDev_Touchscreen, this)); + if (udeviceHelper) { + QStringList devices = udeviceHelper->scanConnectedDevices(); + + // only the first device found is used for now + if (devices.size() > 0) + dev = devices[0]; + } } #endif // QT_NO_LIBUDEV if (dev.isEmpty()) dev = QLatin1String("/dev/input/event0"); - QStringList args = spec.split(QLatin1Char(':')); - for (int i = 0; i < args.count(); ++i) - if (args.at(i).startsWith(QLatin1String("/dev/"))) - dev = args.at(i); - qDebug("evdevtouch: Using device %s", qPrintable(dev)); m_fd = QT_OPEN(dev.toLocal8Bit().constData(), O_RDONLY | O_NDELAY, 0); -- cgit v1.2.3