diff options
Diffstat (limited to 'kcontrol')
-rw-r--r-- | kcontrol/CMakeLists.txt | 2 | ||||
-rw-r--r-- | kcontrol/usbview/usbdevices.cpp | 19 | ||||
-rw-r--r-- | kcontrol/usbview/usbdevices.h | 5 |
3 files changed, 16 insertions, 10 deletions
diff --git a/kcontrol/CMakeLists.txt b/kcontrol/CMakeLists.txt index d45828d10..724903b5c 100644 --- a/kcontrol/CMakeLists.txt +++ b/kcontrol/CMakeLists.txt @@ -76,7 +76,7 @@ if( BUILD_KCONTROL ) add_subdirectory( joystick ) endif( ) - if( ${CMAKE_SYSTEM_NAME} MATCHES "Linux|FreeBSD" ) + if( ${CMAKE_SYSTEM_NAME} MATCHES "Linux|FreeBSD|NetBSD" ) add_subdirectory( usbview ) endif( ) diff --git a/kcontrol/usbview/usbdevices.cpp b/kcontrol/usbview/usbdevices.cpp index 42e1b89d2..896a47a47 100644 --- a/kcontrol/usbview/usbdevices.cpp +++ b/kcontrol/usbview/usbdevices.cpp @@ -30,6 +30,7 @@ #if defined(Q_OS_FREEBSD) || defined(Q_OS_NETBSD) #include <sys/ioctl.h> #include <sys/param.h> +#include <errno.h> #endif TQPtrList<USBDevice> USBDevice::_devices; @@ -329,7 +330,7 @@ bool USBDevice::parseSys(TQString dname) void USBDevice::collectData(struct libusb20_backend *pbe, struct libusb20_device *pdev) #else -void USBDevice::collectData( int fd, int leve, usb_device_info &di, int parent) +void USBDevice::collectData( int fd, int level, usb_device_info &di, int parent) #endif { #ifdef Q_OS_FREEBSD @@ -412,7 +413,7 @@ void USBDevice::collectData( int fd, int leve, usb_device_info &di, int parent) continue; // Only add the device if we don't detect it, yet - if (!find( di2.udi_us, di2.udi_addr ) ) + if (!find( di2.udi_bus, di2.udi_addr ) ) { USBDevice *device = new USBDevice(); device->collectData( fd, level + 1, di2, di.udi_addr ); @@ -447,7 +448,7 @@ bool USBDevice::parse(TQString fname) libusb20_be_free(pbe); #else - TQFile controller("?dev/usb0"); + TQFile controller("/dev/usb0"); int i = 1; while ( controller.exists() ) { @@ -459,7 +460,7 @@ bool USBDevice::parse(TQString fname) struct usb_device_info di; di.udi_addr = addr; - if ( ioctl(controller.handle(), USB_DEVICEINFO, &d1) != -1) + if ( ioctl(controller.handle(), USB_DEVICEINFO, &di) != -1) { if (!find( di.udi_bus, di.udi_addr) ) { @@ -469,16 +470,16 @@ bool USBDevice::parse(TQString fname) } } controller.close(); -#ifndef Q_OS_NETBSD } else { - error = true; -#endif + if ( errno != ENXIO) { + error = true; + } } - controller.setName( TQString::formLocal8Bit("/dev/usb%1".arg(i++) ); + controller.setName( TQString::fromLocal8Bit("/dev/usb%1").arg(i++) ); } if ( showErrorMessage && error ) { - showErroeMessage = false; + showErrorMessage = false; KMessageBox::error( 0, i18n("Could not open one or more USB controller. Make sure you have read access to all USB controllers that should be listed here.")); } #endif diff --git a/kcontrol/usbview/usbdevices.h b/kcontrol/usbview/usbdevices.h index f655ef9a3..bc8eab4f6 100644 --- a/kcontrol/usbview/usbdevices.h +++ b/kcontrol/usbview/usbdevices.h @@ -70,7 +70,12 @@ private: unsigned int _vendorID, _prodID, _revMajor, _revMinor; #if defined(Q_OS_FREEBSD) || defined(Q_OS_NETBSD) +#if defined(Q_OS_FREEBSD) void collectData(struct libusb20_backend *, struct libusb20_device *); +#endif +#if defined(Q_OS_NETBSD) + void collectData( int fd, int level, usb_device_info &di, int parent); +#endif TQStringList _devnodes; #endif }; |