libusbhost: Add usb_device_get_name_from_unique_id()

This allows converting from unique IDs to USB device names

Change-Id: I8e3b300790c01383aed8e3d4f547b54bcb7c2cd4
Signed-off-by: Mike Lockwood <lockwood@android.com>
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 @@
     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;