diff options
author | Josh Blum <josh@joshknows.com> | 2010-08-27 16:59:24 -0700 |
---|---|---|
committer | Josh Blum <josh@joshknows.com> | 2010-08-27 16:59:24 -0700 |
commit | 39629ec4aa1b8409b0c5470ebe51d92589b5957e (patch) | |
tree | 79c2c7e3a7c1d05da112af9a18f683d0c07cf987 /host/lib/transport/libusb1_device_handle.cpp | |
parent | aa2ef7d246e93f4e6c0cb8b9b985a487cd2ea548 (diff) | |
parent | ec8005e3d5d1a80f89f5cfbaa8e1cdadf2d14db6 (diff) | |
download | uhd-39629ec4aa1b8409b0c5470ebe51d92589b5957e.tar.gz uhd-39629ec4aa1b8409b0c5470ebe51d92589b5957e.tar.bz2 uhd-39629ec4aa1b8409b0c5470ebe51d92589b5957e.zip |
Merge branch 'usrp1' of ettus.sourcerepo.com:ettus/uhdpriv into usrp1
Diffstat (limited to 'host/lib/transport/libusb1_device_handle.cpp')
-rw-r--r-- | host/lib/transport/libusb1_device_handle.cpp | 33 |
1 files changed, 8 insertions, 25 deletions
diff --git a/host/lib/transport/libusb1_device_handle.cpp b/host/lib/transport/libusb1_device_handle.cpp index 5289f668f..3476fdc4e 100644 --- a/host/lib/transport/libusb1_device_handle.cpp +++ b/host/lib/transport/libusb1_device_handle.cpp @@ -20,7 +20,7 @@ using namespace uhd::transport; -const int libusb_debug_level = 3; +const int libusb_debug_level = 0; class libusb1_device_handle_impl : public usb_device_handle { public: @@ -88,38 +88,21 @@ usb_device_handle::sptr make_usb_device_handle(libusb_device *dev) device_addr)); } -bool check_fsf_device(libusb_device *dev) -{ - libusb_device_descriptor desc; - - if (libusb_get_device_descriptor(dev, &desc) < 0) { - UHD_ASSERT_THROW("USB: failed to get device descriptor"); - } - - return desc.idVendor == 0xfffe; -} - std::vector<usb_device_handle::sptr> usb_device_handle::get_device_list() { libusb_context *ctx = NULL; - libusb_device **list; - std::vector<usb_device_handle::sptr> device_list; + std::vector<libusb_device *> libusb_device_list; + std::vector<usb_device_handle::sptr> device_handle_list; libusb::init(&ctx, libusb_debug_level); - ssize_t cnt = libusb_get_device_list(ctx, &list); - - if (cnt < 0) - throw std::runtime_error("USB: enumeration failed"); + libusb_device_list = libusb::get_fsf_device_list(ctx); - ssize_t i = 0; - for (i = 0; i < cnt; i++) { - libusb_device *dev = list[i]; - if (check_fsf_device(dev)) - device_list.push_back(make_usb_device_handle(dev)); + for (size_t i = 0; i < libusb_device_list.size(); i++) { + libusb_device *dev = libusb_device_list[i]; + device_handle_list.push_back(make_usb_device_handle(dev)); } - libusb_free_device_list(list, 0); libusb_exit(ctx); - return device_list; + return device_handle_list; } |