]> git.sesse.net Git - kdenlive/commitdiff
jogshuttle: enumerate devices using mediactrl
authorEd Rogalsky <ed.rogalsky@googlemail.com>
Sun, 2 Mar 2014 18:52:02 +0000 (19:52 +0100)
committerEd Rogalsky <ed.rogalsky@googlemail.com>
Sun, 2 Mar 2014 18:52:02 +0000 (19:52 +0100)
src/jogshuttle.cpp
src/lib/external/media_ctrl/mediactrl.c

index 00b0c797393c3370eb227783e906f6b2e6a29553..c846e9c96e4a10eada03cc6f80943d056bcc0b6d 100644 (file)
@@ -388,8 +388,7 @@ void JogShuttle::customEvent(QEvent* e)
 
 QString JogShuttle::enumerateDevice(const QString& device)
 {
-    QDir canonDir(device);
-    return canonDir.canonicalPath();
+    return QDir(device).canonicalPath();
 }
 
 DeviceMap JogShuttle::enumerateDevices(const QString& devPath)
@@ -407,12 +406,13 @@ DeviceMap JogShuttle::enumerateDevices(const QString& devPath)
         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);
+
+        struct media_ctrl mc;
+        media_ctrl_open2(&mc, (char*)fileLink.toUtf8().data());
+        if (mc.fd > 0 && mc.device) {
+            devs.insert(QString(mc.device->name), devFullPath);
         }
-        ::close(fd);
+        media_ctrl_close(&mc);
     }
 
     return devs;
index 4ca6527b8f5dcd4289d4d2f7c204038e7c6dca56..3558d825008503efe976ebcfc4a023bf267e6a8b 100644 (file)
@@ -282,7 +282,7 @@ void translate_compliant(struct media_ctrl *ctrl, struct input_event *ev, struct
 
 struct media_ctrl_device supported_devices[] = {
        { 0x0b33, 0x0030, "Contour ShuttlePRO v2", mc_shuttle_pro_keys, translate_contour_hid_event },
-       { 0x0b33, 0x0020, "Contour ShuttleXPress", mc_shuttle_xpress_keys, translate_contour_hid_event },
+       { 0x0b33, 0x0020, "Contour Design ShuttleXpress", mc_shuttle_xpress_keys, translate_contour_hid_event },
        { 0x0b33, 0x0010, "Contour ShuttlePro", mc_shuttle_pro_keys, translate_contour_hid_event },
        { 0x0b33, 0x0011, "Contour ShuttlePro", mc_shuttle_pro_keys, translate_contour_hid_event }, /* Hercules OEM */
        { 0x05f3, 0x0240, "Contour ShuttlePro", mc_shuttle_pro_keys, translate_contour_hid_event },
@@ -430,6 +430,7 @@ void media_ctrl_open2(struct media_ctrl *mc, const char *devname)
     fd = open( devname, O_RDONLY );
     if ( fd < 0 ) {
         perror(devname);
+        mc->fd = -1;
     } else {
         mc->fd = fd;
         //mc->eventno = i;