From dd5fa3451524500f83b36afd2a577a22da4fae72 Mon Sep 17 00:00:00 2001 From: Matthias Ringwald Date: Wed, 13 Apr 2022 14:52:15 +0200 Subject: [PATCH] libusb: track usb vendor/product id --- platform/libusb/hci_transport_h2_libusb.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/platform/libusb/hci_transport_h2_libusb.c b/platform/libusb/hci_transport_h2_libusb.c index d52b60696..6269ddef8 100644 --- a/platform/libusb/hci_transport_h2_libusb.c +++ b/platform/libusb/hci_transport_h2_libusb.c @@ -224,9 +224,11 @@ static int acl_out_addr; static int sco_in_addr; static int sco_out_addr; -// device path +// device info static int usb_path_len; static uint8_t usb_path[USB_MAX_PATH_LEN]; +static uint16_t usb_vendor_id; +static uint16_t usb_product_id; // transport interface state static int usb_transport_open; @@ -793,6 +795,14 @@ static int prepare_device(libusb_device_handle * aHandle){ static libusb_device_handle * try_open_device(libusb_device * device){ int r; + r = libusb_get_device_descriptor(device, &desc); + if (r < 0) { + log_error("libusb_get_device_descriptor failed!"); + return NULL; + } + usb_vendor_id = desc.idVendor; + usb_product_id = desc.idProduct; + libusb_device_handle * dev_handle; r = libusb_open(device, &dev_handle); @@ -1031,6 +1041,9 @@ static int usb_open(void){ return -1; } + usb_vendor_id = USB_VENDOR_ID; + usb_product_id = USB_PRODUCT_ID; + #else // Scan system for an appropriate devices libusb_device **devs;