libusbhost: Added usb_device_get_unique_id

Signed-off-by: Mike Lockwood <lockwood@android.com>
diff --git a/include/usbhost/usbhost.h b/include/usbhost/usbhost.h
index e7a6127..d67437b 100644
--- a/include/usbhost/usbhost.h
+++ b/include/usbhost/usbhost.h
@@ -57,6 +57,11 @@
  */
 const char* usb_device_get_name(struct usb_device *device);
 
+/* Returns a unique ID for the device.  Currently this is generated from the
+ * dev_name path.
+ */
+int usb_device_get_unique_id(struct usb_device *device);
+
 /* Returns the USB vendor ID from the device descriptor for the USB device */
 uint16_t usb_device_get_vendor_id(struct usb_device *device);
 
diff --git a/libusbhost/usbhost.c b/libusbhost/usbhost.c
index 1084236..a6b0867 100644
--- a/libusbhost/usbhost.c
+++ b/libusbhost/usbhost.c
@@ -41,6 +41,7 @@
 #include "usbhost/usbhost.h"
 
 #define USB_FS_DIR "/dev/bus/usb"
+#define USB_FS_ID_SCANNER   "/dev/bus/usb/%d/%d"
 
 #if 0
 #define D printf
@@ -243,6 +244,13 @@
     return device->dev_name;
 }
 
+int usb_device_get_unique_id(struct usb_device *device)
+{
+    int bus = 0, dev = 0;
+    sscanf(device->dev_name, USB_FS_ID_SCANNER, &bus, &dev);
+    return bus * 1000 + dev;
+}
+
 uint16_t usb_device_get_vendor_id(struct usb_device *device)
 {
     struct usb_device_descriptor* desc = (struct usb_device_descriptor*)device->desc;