diff options
author | Nick Foster <nick@nerdnetworks.org> | 2010-08-31 16:44:30 -0700 |
---|---|---|
committer | Nick Foster <nick@nerdnetworks.org> | 2010-08-31 16:44:30 -0700 |
commit | b96088b692a5c44974919ee36e253b6ea8c51972 (patch) | |
tree | 5200ca3a1b589a83aca06e91c559154ddea82249 /host/lib/transport/libusb1_device_handle.cpp | |
parent | ad55e25aeb273fb7278c6d5175cd0df01fc90924 (diff) | |
download | uhd-b96088b692a5c44974919ee36e253b6ea8c51972.tar.gz uhd-b96088b692a5c44974919ee36e253b6ea8c51972.tar.bz2 uhd-b96088b692a5c44974919ee36e253b6ea8c51972.zip |
EEPROM burning in UHD. Changed some USB device handle stuff. Added usrp_init_eeprom.cpp. Hacked up the firmware makefile to behave and to generate .bin EEPROM images instead of IHX.
Diffstat (limited to 'host/lib/transport/libusb1_device_handle.cpp')
-rw-r--r-- | host/lib/transport/libusb1_device_handle.cpp | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/host/lib/transport/libusb1_device_handle.cpp b/host/lib/transport/libusb1_device_handle.cpp index 5d9d8faf0..43d0f0e26 100644 --- a/host/lib/transport/libusb1_device_handle.cpp +++ b/host/lib/transport/libusb1_device_handle.cpp @@ -17,6 +17,7 @@ #include "libusb1_base.hpp" #include <uhd/utils/assert.hpp> +#include <iostream> using namespace uhd::transport; @@ -91,19 +92,24 @@ usb_device_handle::sptr make_usb_device_handle(libusb_device *dev) device_addr)); } -std::vector<usb_device_handle::sptr> usb_device_handle::get_device_list() +std::vector<usb_device_handle::sptr> usb_device_handle::get_device_list(boost::uint16_t vid, boost::uint16_t pid) { libusb_context *ctx = NULL; - std::vector<libusb_device *> libusb_device_list; + libusb_device** libusb_device_list; std::vector<usb_device_handle::sptr> device_handle_list; + libusb_device_descriptor desc; libusb::init(&ctx, libusb_debug_level); - libusb_device_list = libusb::get_fsf_device_list(ctx); - - for (size_t i = 0; i < libusb_device_list.size(); i++) { + size_t dev_size = libusb_get_device_list(ctx, &libusb_device_list); + for (size_t i = 0; i < dev_size; i++) { libusb_device *dev = libusb_device_list[i]; - device_handle_list.push_back(make_usb_device_handle(dev)); + if(libusb_get_device_descriptor(dev, &desc) < 0) { + UHD_ASSERT_THROW("USB: failed to get device descriptor"); + } + if(desc.idVendor == vid && desc.idProduct == pid) { + device_handle_list.push_back(make_usb_device_handle(dev)); + } } libusb_exit(ctx); |