Skip to content

Commit 4b4410c

Browse files
committed
Merging master branch from github user derekatkins for PR signal11#406
2 parents 747309e + 2e275db commit 4b4410c

File tree

1 file changed

+10
-2
lines changed

1 file changed

+10
-2
lines changed

libusb/hid.c

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -480,9 +480,17 @@ static wchar_t *get_usb_string(libusb_device_handle *dev, uint8_t idx)
480480
static char *make_path(libusb_device *dev, int interface_number)
481481
{
482482
char str[64];
483-
snprintf(str, sizeof(str), "%04x:%04x:%02x",
483+
uint8_t port_numbers[8] = { 0,0,0,0,0,0,0,0 };
484+
int num_ports;
485+
// Note that USB3 port count limit is 7; use 8 here for alignment
486+
487+
num_ports = libusb_get_port_numbers(dev, port_numbers, 8);
488+
snprintf(str, sizeof(str), "%04x:%04x:%04x:%04x:%04x:%02x",
484489
libusb_get_bus_number(dev),
485-
libusb_get_device_address(dev),
490+
*(uint16_t*)(&port_numbers[0]),
491+
*(uint16_t*)(&port_numbers[2]),
492+
*(uint16_t*)(&port_numbers[4]),
493+
*(uint16_t*)(&port_numbers[6]),
486494
interface_number);
487495
str[sizeof(str)-1] = '\0';
488496

0 commit comments

Comments
 (0)