Skip to content

Commit a4c407a

Browse files
Changes from PR406 in signal11 repo
1 parent 7e91963 commit a4c407a

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
@@ -481,9 +481,17 @@ static wchar_t *get_usb_string(libusb_device_handle *dev, uint8_t idx)
481481
static char *make_path(libusb_device *dev, int interface_number)
482482
{
483483
char str[64];
484-
snprintf(str, sizeof(str), "%04x:%04x:%02x",
484+
uint8_t port_numbers[8] = { 0,0,0,0,0,0,0,0 };
485+
int num_ports;
486+
// Note that USB3 port count limit is 7; use 8 here for alignment
487+
488+
num_ports = libusb_get_port_numbers(dev, port_numbers, 8);
489+
snprintf(str, sizeof(str), "%04x:%04x:%04x:%04x:%04x:%02x",
485490
libusb_get_bus_number(dev),
486-
libusb_get_device_address(dev),
491+
*(uint16_t*)(&port_numbers[0]),
492+
*(uint16_t*)(&port_numbers[2]),
493+
*(uint16_t*)(&port_numbers[4]),
494+
*(uint16_t*)(&port_numbers[6]),
487495
interface_number);
488496
str[sizeof(str)-1] = '\0';
489497

0 commit comments

Comments
 (0)