[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: KDE/kdelibs/solid/solid
From: Rafael Fernández López <ereslibre () kde ! org>
Date: 2010-10-03 17:00:16
Message-ID: 20101003170016.8CE81AC891 () svn ! kde ! org
[Download RAW message or body]
SVN commit 1182180 by ereslibre:
Port UDev backend to use the Qt library wrapper that was written by Benjamin
M +2 -0 CMakeLists.txt
A backends/shared/udevqt.h [License: LGPL (v2+)]
A backends/shared/udevqt_p.h [License: LGPL (v2+)]
A backends/shared/udevqtclient.cpp [License: LGPL (v2+)]
A backends/shared/udevqtdevice.cpp [License: LGPL (v2+)]
M +1 -9 backends/udev/udev.h
M +16 -16 backends/udev/udevdevice.cpp
M +4 -5 backends/udev/udevdevice.h
M +15 -38 backends/udev/udevmanager.cpp
--- trunk/KDE/kdelibs/solid/solid/CMakeLists.txt #1182179:1182180
@@ -173,6 +173,8 @@
backends/udev/udevdeviceinterface.cpp
backends/udev/udevgenericinterface.cpp
backends/udev/udevcamera.cpp
+ backends/shared/udevqtclient.cpp
+ backends/shared/udevqtdevice.cpp
)
endif( UDEV_FOUND )
--- trunk/KDE/kdelibs/solid/solid/backends/udev/udev.h #1182179:1182180
@@ -21,16 +21,8 @@
#ifndef SOLID_BACKENDS_UDEV_H
#define SOLID_BACKENDS_UDEV_H
-#include <libudev.h>
+#include "../shared/udevqt.h"
#define UDEV_UDI_PREFIX "/org/kde/solid/udev"
-typedef struct udev udev_;
-typedef struct udev_list udev_list_;
-typedef struct udev_queue udev_queue_;
-typedef struct udev_device udev_device_;
-typedef struct udev_monitor udev_monitor_;
-typedef struct udev_enumerate udev_enumerate_;
-typedef struct udev_list_entry udev_list_entry_;
-
#endif // SOLID_BACKENDS_UDEV_H
--- trunk/KDE/kdelibs/solid/solid/backends/udev/udevdevice.cpp #1182179:1182180
@@ -25,15 +25,14 @@
using namespace Solid::Backends::UDev;
-UDevDevice::UDevDevice(udev_device_ *const device)
- : Solid::Ifaces::Device(),
- m_device(device)
+UDevDevice::UDevDevice(const UdevQt::Device device)
+ : Solid::Ifaces::Device()
+ , m_device(device)
{
}
UDevDevice::~UDevDevice()
{
- udev_device_unref(m_device);
}
QString UDevDevice::udi() const
@@ -48,12 +47,12 @@
QString UDevDevice::vendor() const
{
- return systemAttribute("manufacturer");
+ return m_device.sysfsProperty("manufacturer").toString();
}
QString UDevDevice::product() const
{
- return systemAttribute("product");
+ return m_device.sysfsProperty("product").toString();
}
QString UDevDevice::icon() const
@@ -114,19 +113,20 @@
QVariant UDevDevice::property(const QString &key) const
{
- return QString::fromUtf8(udev_device_get_property_value(m_device, key.toAscii()));
+ const QVariant res = m_device.deviceProperty(key);
+ if (res.isValid()) {
+ return res;
}
+ return m_device.sysfsProperty(key);
+}
QMap<QString, QVariant> UDevDevice::allProperties() const
{
- QMap<QString, QVariant> properties;
-
- udev_list_entry_ *list_entry;
- udev_list_entry_foreach(list_entry, udev_device_get_properties_list_entry(m_device)) {
- properties[udev_list_entry_get_name(list_entry)] = udev_list_entry_get_value(list_entry);
+ QMap<QString, QVariant> res;
+ foreach (const QString &prop, m_device.deviceProperties()) {
+ res[prop] = property(prop);
}
-
- return properties;
+ return res;
}
bool UDevDevice::propertyExists(const QString &key) const
@@ -136,12 +136,12 @@
QString UDevDevice::systemAttribute(const char *attribute) const
{
- return QString::fromUtf8(udev_device_get_sysattr_value(m_device, attribute));
+ return m_device.sysfsProperty(attribute).toString();
}
QString UDevDevice::deviceName() const
{
- return QString::fromUtf8(udev_device_get_syspath(m_device));
+ return m_device.sysfsPath();
}
QString UDevDevice::devicePath() const
--- trunk/KDE/kdelibs/solid/solid/backends/udev/udevdevice.h #1182179:1182180
@@ -21,11 +21,11 @@
#ifndef SOLID_BACKENDS_UDEV_UDEVDEVICE_H
#define SOLID_BACKENDS_UDEV_UDEVDEVICE_H
+#include "udev.h"
+
#include <solid/ifaces/device.h>
#include <QtCore/QStringList>
-#include "udev.h"
-
namespace Solid
{
namespace Backends
@@ -38,7 +38,7 @@
Q_OBJECT
public:
- UDevDevice(struct udev_device *const device);
+ UDevDevice(const UdevQt::Device device);
virtual ~UDevDevice();
virtual QString udi() const;
@@ -70,8 +70,7 @@
QString devicePath() const;
private:
-
- udev_device_ *m_device;
+ UdevQt::Device m_device;
};
}
--- trunk/KDE/kdelibs/solid/solid/backends/udev/udevmanager.cpp #1182179:1182180
@@ -25,6 +25,7 @@
#include "../shared/rootdevice.h"
#include <QtCore/QSet>
+#include <QtCore/QDebug>
using namespace Solid::Backends::UDev;
using namespace Solid::Backends::Shared;
@@ -35,52 +36,24 @@
Private();
~Private();
- QStringList deviceListFromEnumerate(udev_enumerate_ *en) const;
-
- udev_ *udev;
- QSet<Solid::DeviceInterface::Type> supportedInterfaces;
+ UdevQt::Client *const m_client;
+ QSet<Solid::DeviceInterface::Type> m_supportedInterfaces;
};
UDevManager::Private::Private()
- : udev(udev_new())
+ : m_client(new UdevQt::Client)
{
}
UDevManager::Private::~Private()
{
- udev_unref(udev);
+ delete m_client;
}
-QStringList UDevManager::Private::deviceListFromEnumerate(udev_enumerate_ *en) const
-{
- QStringList ret;
- udev_list_entry_ *list, *entry;
-
- udev_enumerate_scan_devices(en);
- list = udev_enumerate_get_list_entry(en);
- udev_list_entry_foreach (entry, list) {
- udev_device_ *const device = udev_device_new_from_syspath(udev,
- udev_list_entry_get_name(entry));
-
- const char *const subsystem = udev_device_get_subsystem(device);
-
- if (!device) {
- continue;
- }
- ret << QString(UDEV_UDI_PREFIX) + udev_device_get_syspath(device);
-
- udev_device_unref(device);
- }
-
- udev_enumerate_unref(en);
-
- return ret;
-}
-
UDevManager::UDevManager(QObject *parent)
: d(new Private)
{
- d->supportedInterfaces << Solid::DeviceInterface::GenericInterface
+ d->m_supportedInterfaces << Solid::DeviceInterface::GenericInterface
<< Solid::DeviceInterface::Processor
<< Solid::DeviceInterface::Camera
<< Solid::DeviceInterface::PortableMediaPlayer
@@ -99,14 +72,18 @@
QSet<Solid::DeviceInterface::Type> UDevManager::supportedInterfaces() const
{
- return d->supportedInterfaces;
+ return d->m_supportedInterfaces;
}
QStringList UDevManager::allDevices()
{
- udev_enumerate_ *const devices = udev_enumerate_new(d->udev);
- return d->deviceListFromEnumerate(devices);
+ QStringList res;
+ const UdevQt::DeviceList deviceList = d->m_client->allDevices();
+ foreach (const UdevQt::Device &device, deviceList) {
+ res << udiPrefix() + device.sysfsPath();
}
+ return res;
+}
QStringList UDevManager::devicesFromQuery(const QString &parentUdi,
Solid::DeviceInterface::Type type)
@@ -124,6 +101,6 @@
device->setIcon("folder-remote"); // TODO: CHANGE ICON
return device;
}
- const QString udi = udi_.right(udi_.size() - QString(UDEV_UDI_PREFIX).size());
- return new UDevDevice(udev_device_new_from_syspath(d->udev, udi.toLatin1().data()));
+ const QString udi = udi_.right(udi_.size() - udiPrefix().size());
+ return new UDevDevice(d->m_client->deviceBySysfsPath(udi));
}
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic