diff options
Diffstat (limited to 'host/lib/transport')
-rw-r--r-- | host/lib/transport/libusb1_control.cpp | 8 | ||||
-rw-r--r-- | host/lib/transport/libusb1_zero_copy.cpp | 18 | ||||
-rw-r--r-- | host/lib/transport/usb_dummy_impl.cpp | 5 |
3 files changed, 17 insertions, 14 deletions
diff --git a/host/lib/transport/libusb1_control.cpp b/host/lib/transport/libusb1_control.cpp index bce3d4b0b..3d9b38785 100644 --- a/host/lib/transport/libusb1_control.cpp +++ b/host/lib/transport/libusb1_control.cpp @@ -28,10 +28,10 @@ const int libusb_timeout = 0; **********************************************************************/ class libusb_control_impl : public usb_control { public: - libusb_control_impl(libusb::device_handle::sptr handle): + libusb_control_impl(libusb::device_handle::sptr handle, const size_t interface): _handle(handle) { - _handle->claim_interface(0 /* control interface */); + _handle->claim_interface(interface); } ssize_t submit(boost::uint8_t request_type, @@ -60,8 +60,8 @@ private: /*********************************************************************** * USB control public make functions **********************************************************************/ -usb_control::sptr usb_control::make(usb_device_handle::sptr handle){ +usb_control::sptr usb_control::make(usb_device_handle::sptr handle, const size_t interface){ return sptr(new libusb_control_impl(libusb::device_handle::get_cached_handle( boost::static_pointer_cast<libusb::special_handle>(handle)->get_device() - ))); + ), interface)); } diff --git a/host/lib/transport/libusb1_zero_copy.cpp b/host/lib/transport/libusb1_zero_copy.cpp index ada664286..28d6cdd5b 100644 --- a/host/lib/transport/libusb1_zero_copy.cpp +++ b/host/lib/transport/libusb1_zero_copy.cpp @@ -159,8 +159,10 @@ public: libusb_zero_copy_impl( libusb::device_handle::sptr handle, - size_t recv_endpoint, - size_t send_endpoint, + const size_t recv_interface, + const size_t recv_endpoint, + const size_t send_interface, + const size_t send_endpoint, const device_addr_t &hints ): _handle(handle), @@ -173,8 +175,8 @@ public: _next_recv_buff_index(0), _next_send_buff_index(0) { - _handle->claim_interface(2 /*in interface*/); - _handle->claim_interface(1 /*out interface*/); + _handle->claim_interface(recv_interface); + _handle->claim_interface(send_interface); //allocate libusb transfer structs and managed receive buffers for (size_t i = 0; i < get_num_recv_frames(); i++){ @@ -280,14 +282,16 @@ private: **********************************************************************/ usb_zero_copy::sptr usb_zero_copy::make( usb_device_handle::sptr handle, - size_t recv_endpoint, - size_t send_endpoint, + const size_t recv_interface, + const size_t recv_endpoint, + const size_t send_interface, + const size_t send_endpoint, const device_addr_t &hints ){ libusb::device_handle::sptr dev_handle(libusb::device_handle::get_cached_handle( boost::static_pointer_cast<libusb::special_handle>(handle)->get_device() )); return sptr(new libusb_zero_copy_impl( - dev_handle, recv_endpoint, send_endpoint, hints + dev_handle, recv_interface, recv_endpoint, send_interface, send_endpoint, hints )); } diff --git a/host/lib/transport/usb_dummy_impl.cpp b/host/lib/transport/usb_dummy_impl.cpp index 930678405..7be753f76 100644 --- a/host/lib/transport/usb_dummy_impl.cpp +++ b/host/lib/transport/usb_dummy_impl.cpp @@ -27,13 +27,12 @@ std::vector<usb_device_handle::sptr> usb_device_handle::get_device_list(boost::u return std::vector<usb_device_handle::sptr>(); //empty list } -usb_control::sptr usb_control::make(usb_device_handle::sptr){ +usb_control::sptr usb_control::make(usb_device_handle::sptr, const size_t){ throw uhd::not_implemented_error("no usb support -> usb_control::make not implemented"); } usb_zero_copy::sptr usb_zero_copy::make( - usb_device_handle::sptr, - size_t, size_t, const device_addr_t & + usb_device_handle::sptr, const size_t, const size_t, const size_t, const size_t, const device_addr_t & ){ throw uhd::not_implemented_error("no usb support -> usb_zero_copy::make not implemented"); } |