From: Maxwell Dreytser Date: Thu, 11 May 2017 05:14:39 +0000 (-0400) Subject: Change ftdi_open_bus_port to ftdi_open_bus_addr, since libusb_get_port_number is... X-Git-Tag: v1.4rc2~8 X-Git-Url: http://developer.intra2net.com/git/?p=libftdi;a=commitdiff_plain;h=30ea3095f153a6c671d0942a7b14d2940d3b8916 Change ftdi_open_bus_port to ftdi_open_bus_addr, since libusb_get_port_number is not always unique. --- diff --git a/src/ftdi.c b/src/ftdi.c index ac8f18a..175befc 100644 --- a/src/ftdi.c +++ b/src/ftdi.c @@ -825,11 +825,11 @@ int ftdi_usb_open_desc_index(struct ftdi_context *ftdi, int vendor, int product, } /** - Opens the device at a given USB bus and port. + Opens the device at a given USB bus and device address. \param ftdi pointer to ftdi_context \param bus Bus number - \param port Port number + \param addr Device address \retval 0: all fine \retval -1: usb_find_busses() failed @@ -845,7 +845,7 @@ int ftdi_usb_open_desc_index(struct ftdi_context *ftdi, int vendor, int product, \retval -11: ftdi context invalid \retval -12: libusb_get_device_list() failed */ -int ftdi_usb_open_bus_port(struct ftdi_context *ftdi, uint8_t bus, uint8_t port) +int ftdi_usb_open_bus_addr(struct ftdi_context *ftdi, uint8_t bus, uint8_t addr) { libusb_device *dev; libusb_device **devs; @@ -859,7 +859,7 @@ int ftdi_usb_open_bus_port(struct ftdi_context *ftdi, uint8_t bus, uint8_t port) while ((dev = devs[i++]) != NULL) { - if (libusb_get_bus_number(dev) == bus && libusb_get_port_number(dev) == port) + if (libusb_get_bus_number(dev) == bus && libusb_get_device_address(dev) == addr) { int res; res = ftdi_usb_open_dev(ftdi, dev); diff --git a/src/ftdi.h b/src/ftdi.h index 5927c48..de02adf 100644 --- a/src/ftdi.h +++ b/src/ftdi.h @@ -502,7 +502,7 @@ extern "C" const char* description, const char* serial); int ftdi_usb_open_desc_index(struct ftdi_context *ftdi, int vendor, int product, const char* description, const char* serial, unsigned int index); - int ftdi_usb_open_bus_port(struct ftdi_context *ftdi, uint8_t bus, uint8_t port); + int ftdi_usb_open_bus_addr(struct ftdi_context *ftdi, uint8_t bus, uint8_t addr); int ftdi_usb_open_dev(struct ftdi_context *ftdi, struct libusb_device *dev); int ftdi_usb_open_string(struct ftdi_context *ftdi, const char* description);