X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Fjogshuttle.cpp;h=73985e56e9a5ad9d3b1d5d5c170613346d5ea34c;hb=4f332f85fe29846d15d5006d66fe03ebe09b556c;hp=44517d7745a839db137310c716bb256b90d3c618;hpb=937f547e26859d0ef9ddc0ac38d6986ab591b3fd;p=kdenlive diff --git a/src/jogshuttle.cpp b/src/jogshuttle.cpp index 44517d77..73985e56 100644 --- a/src/jogshuttle.cpp +++ b/src/jogshuttle.cpp @@ -344,13 +344,38 @@ void JogShuttle::customEvent(QEvent* e) emit button(e->type() - KEY_EVENT_OFFSET); } -QString JogShuttle::enumerateDevice(const QString &device) +QString JogShuttle::enumerateDevice(const QString& device) { QDir canonDir(device); - //return QDir::canonicalPath(device); return canonDir.canonicalPath(); } +DeviceMap JogShuttle::enumerateDevices(const QString& devPath) +{ + DeviceMap devs; + QDir devDir(devPath); + + if (!devDir.exists()) { + return devs; + } + + QStringList fileList = devDir.entryList(QDir::System | QDir::Files); + foreach (const QString &fileName, fileList) { + QString devFullPath = devDir.absoluteFilePath(fileName); + QString fileLink = JogShuttle::enumerateDevice(devFullPath); + kDebug() << QString(" [%1] ").arg(fileName); + kDebug() << QString(" [%1] ").arg(fileLink); + char name[256] = "unknown"; + int fd = KDE_open((char*)fileLink.toUtf8().data(), O_RDONLY); + if (fd >= 0 && ioctl(fd, EVIOCGNAME(sizeof(name)), name) >= 0) { + devs.insert(name, devFullPath); + } + ::close(fd); + } + + return devs; +} + // #include "jogshuttle.moc"