---
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
[email protected]
http://lists.sourceforge.net/lists/listinfo/openobex-users