aboutsummaryrefslogtreecommitdiffstats
path: root/host/lib/transport/libusb1_device_handle.cpp
diff options
context:
space:
mode:
authorJosh Blum <josh@joshknows.com>2010-08-27 16:59:24 -0700
committerJosh Blum <josh@joshknows.com>2010-08-27 16:59:24 -0700
commit39629ec4aa1b8409b0c5470ebe51d92589b5957e (patch)
tree79c2c7e3a7c1d05da112af9a18f683d0c07cf987 /host/lib/transport/libusb1_device_handle.cpp
parentaa2ef7d246e93f4e6c0cb8b9b985a487cd2ea548 (diff)
parentec8005e3d5d1a80f89f5cfbaa8e1cdadf2d14db6 (diff)
downloaduhd-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.cpp33
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;
}