diff options
Diffstat (limited to 'libusbhost/usbhost.c')
-rw-r--r-- | libusbhost/usbhost.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/libusbhost/usbhost.c b/libusbhost/usbhost.c index dba0b48..dbc7962 100644 --- a/libusbhost/usbhost.c +++ b/libusbhost/usbhost.c @@ -57,6 +57,7 @@ #define USB_FS_DIR "/dev/bus/usb" #define USB_FS_ID_SCANNER "/dev/bus/usb/%d/%d" +#define USB_FS_ID_FORMAT "/dev/bus/usb/%03d/%03d" struct usb_host_context { @@ -314,6 +315,15 @@ int usb_device_get_unique_id_from_name(const char* name) return bus * 1000 + dev; } +char* usb_device_get_name_from_unique_id(int id) +{ + int bus = id / 1000; + int dev = id % 1000; + char* result = (char *)calloc(1, strlen(USB_FS_ID_FORMAT)); + snprintf(result, strlen(USB_FS_ID_FORMAT) - 1, USB_FS_ID_FORMAT, bus, dev); + return result; +} + uint16_t usb_device_get_vendor_id(struct usb_device *device) { struct usb_device_descriptor* desc = (struct usb_device_descriptor*)device->desc; |