diff options
author | Hannu Lyytinen <hannu.lyytinen@nomovok.com> | 2012-04-19 00:34:29 +0300 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-06-08 15:14:00 +0200 |
commit | 062974bf1f147ac848b095e584331f8aa7a114dd (patch) | |
tree | a3079969bbec531d612516e408a1cd8c002a30df /src/plugins/platforms/kms/qkmsintegration.cpp | |
parent | d8a6a67579fe5f3a6b70b6774b6eee00a55834d5 (diff) |
Use QUDeviceHelper instead of custom code.
Avoid duplicating udev handling code here.
Change-Id: I054b6616ead57aa8947dcf942177dfc8a14a00fe
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
Diffstat (limited to 'src/plugins/platforms/kms/qkmsintegration.cpp')
-rw-r--r-- | src/plugins/platforms/kms/qkmsintegration.cpp | 31 |
1 files changed, 20 insertions, 11 deletions
diff --git a/src/plugins/platforms/kms/qkmsintegration.cpp b/src/plugins/platforms/kms/qkmsintegration.cpp index 8210b54535..e0cc33a606 100644 --- a/src/plugins/platforms/kms/qkmsintegration.cpp +++ b/src/plugins/platforms/kms/qkmsintegration.cpp @@ -46,8 +46,6 @@ #include "qkmsbackingstore.h" #include "qkmscontext.h" #include "qkmsnativeinterface.h" -#include "qkmsudevlistener.h" -#include "qkmsudevdrmhandler.h" #include "qkmsvthandler.h" #include <QtPlatformSupport/private/qgenericunixeventdispatcher_p.h> @@ -62,18 +60,26 @@ QKmsIntegration::QKmsIntegration() : QPlatformIntegration(), m_fontDatabase(new QGenericUnixFontDatabase()), m_eventDispatcher(createUnixEventDispatcher()), - m_nativeInterface(new QKmsNativeInterface), - m_udevListener(new QKmsUdevListener) + m_nativeInterface(new QKmsNativeInterface) { QGuiApplicationPrivate::instance()->setEventDispatcher(m_eventDispatcher); setenv("EGL_PLATFORM", "drm",1); m_vtHandler = new QKmsVTHandler; - m_drmHandler = new QKmsUdevDRMHandler(this); - m_udevListener->addHandler(m_drmHandler); + + m_deviceDiscovery = QDeviceDiscovery::create(QDeviceDiscovery::Device_DRM, 0); + if (m_deviceDiscovery) { + QStringList devices = m_deviceDiscovery->scanConnectedDevices(); + foreach (QString device, devices) + addDevice(device); + + connect(m_deviceDiscovery, SIGNAL(deviceDetected(QString)), this, SLOT(addDevice(QString))); + connect(m_deviceDiscovery, SIGNAL(deviceRemoved(QString)), this, SLOT(removeDevice(QString))); + } } QKmsIntegration::~QKmsIntegration() { + delete m_deviceDiscovery; foreach (QKmsDevice *device, m_devices) { delete device; } @@ -81,15 +87,18 @@ QKmsIntegration::~QKmsIntegration() delete screen; } delete m_fontDatabase; - delete m_udevListener; delete m_vtHandler; } -QObject *QKmsIntegration::createDevice(const char *path) +void QKmsIntegration::addDevice(const QString &deviceNode) +{ + m_devices.append(new QKmsDevice(deviceNode, this)); +} + +void QKmsIntegration::removeDevice(const QString &deviceNode) { - QKmsDevice *device = new QKmsDevice(path, this); - m_devices.append(device); - return device; + // TODO: support hot-plugging some day? + Q_UNUSED(deviceNode); } bool QKmsIntegration::hasCapability(QPlatformIntegration::Capability cap) const |