---
 apps/obex_test.c              |    7 ++++++-
 include/openobex/obex_const.h |   10 ++++++++++
 lib/usb1obex.c                |    5 +++++
 lib/usbobex.c                 |    5 +++++
 4 files changed, 26 insertions(+), 1 deletions(-)

diff --git a/apps/obex_test.c b/apps/obex_test.c
index 8ce089f..3a2747c 100644
--- a/apps/obex_test.c
+++ b/apps/obex_test.c
@@ -274,7 +274,12 @@ int main (int argc, char *argv[])
                        interfaces_number = OBEX_EnumerateInterfaces(handle);
                        for (i=0; i < interfaces_number; i++) {
                                obex_intf = OBEX_GetInterfaceByIndex(handle, i);
-                               printf("Interface %d: %s %s %s\n", i, 
+                               printf("Interface %d: idVendor: %#x, idProduct: 
%#x, bus %d, dev %d, intf %d, %s %s %s\n", i,
+                                       obex_intf->usb.idVendor,
+                                       obex_intf->usb.idProduct,
+                                       obex_intf->usb.bus_number,
+                                       obex_intf->usb.device_address,
+                                       obex_intf->usb.interface_number,
                                        obex_intf->usb.manufacturer,
                                        obex_intf->usb.product,
                                        obex_intf->usb.control_interface);
diff --git a/include/openobex/obex_const.h b/include/openobex/obex_const.h
index df03a98..a8f216e 100644
--- a/include/openobex/obex_const.h
+++ b/include/openobex/obex_const.h
@@ -85,6 +85,16 @@ typedef struct {
        char *data_interface_active;
        /** Service information descriptor, may be NULL if absent */
        obex_usb_intf_service_t *service;
+       /** USB-IF vendor ID */
+       unsigned int idVendor;
+       /** USB-IF product ID */
+       unsigned int idProduct;
+       /** Bus number that a USB device is connected to */
+       unsigned int bus_number;
+       /** Device address on the bus */
+       unsigned int device_address;
+       /** USB device interface number */
+       unsigned int interface_number;
        /** Internal information for the transport layer in the library */
        struct obex_usb_intf_transport_t *intf;
 } obex_usb_intf_t;
diff --git a/lib/usb1obex.c b/lib/usb1obex.c
index 1dffa27..d819ec8 100644
--- a/lib/usb1obex.c
+++ b/lib/usb1obex.c
@@ -280,6 +280,11 @@ int usbobex_find_interfaces(obex_interface_t **interfaces)
                                        
current->data_interface_idle_description);
                                get_intf_string(usb_handle, 
&intf_array[num].usb.data_interface_active,
                                        
current->data_interface_active_description);
+                               intf_array[num].usb.idVendor = 
dev_desc.idVendor;
+                               intf_array[num].usb.idProduct = 
dev_desc.idProduct;
+                               intf_array[num].usb.bus_number = 
libusb_get_bus_number(current->device);
+                               intf_array[num].usb.device_address = 
libusb_get_device_address(current->device);
+                               intf_array[num].usb.interface_number = 
current->control_interface;
                        }
                        find_obex_service_descriptor(current->extra_descriptors,
                                        current->extra_descriptors_len,
diff --git a/lib/usbobex.c b/lib/usbobex.c
index 2ad91a0..f103137 100644
--- a/lib/usbobex.c
+++ b/lib/usbobex.c
@@ -291,6 +291,11 @@ int usbobex_find_interfaces(obex_interface_t **interfaces)
                                current->data_interface_idle_description);
                get_intf_string(usb_handle, 
&intf_array[num].usb.data_interface_active,
                                current->data_interface_active_description);
+               intf_array[num].usb.idVendor = 
current->device->descriptor.idVendor;
+               intf_array[num].usb.idProduct = 
current->device->descriptor.idProduct;
+               intf_array[num].usb.bus_number = 
atoi(current->device->bus->dirname);
+               intf_array[num].usb.device_address = 
atoi(current->device->filename);
+               intf_array[num].usb.interface_number = 
current->control_interface;
                find_obex_service_descriptor(current->extra_descriptors,
                                        current->extra_descriptors_len,
                                        &intf_array[num].usb.service);
-- 
1.6.0.6


------------------------------------------------------------------------------
Crystal Reports - New Free Runtime and 30 Day Trial
Check out the new simplified licensing option that enables 
unlimited royalty-free distribution of the report engine 
for externally facing server and web deployment. 
http://p.sf.net/sfu/businessobjects
_______________________________________________
Openobex-users mailing list
Openobex-users@lists.sourceforge.net
http://lists.sourceforge.net/lists/listinfo/openobex-users

Reply via email to