How to retrieve iManufacturer/iProduct information from
libusb20?
Hans Petter Selasky
hselasky at c2i.net
Mon Jun 8 17:38:18 UTC 2009
On Monday 08 June 2009 19:18:55 Jack Twilley wrote:
> Hans Petter Selasky wrote:
> > On Sunday 07 June 2009 04:45:20 Jack Twilley
> >
> > wrote:
> >> I have been looking through the source to
> >
> > usbconfig and other tools
> >
> >> trying to figure out how to retrieve the
> >
> > iManufacturer and iProduct
> >
> >> strings. The libusb20 man page describes the
> >> libusb20_dev_get_device_desc() function but
> >
> > there's no useful
> >
> >> information on the struct it returns. The
> >
> > include file looks as if the
> >
> >> struct is automagically generated by macros
> >
> > within macros which is too
> >
> >> complicated for me to figure out without
> >
> > help. Any ideas? There's
> >
> >> gotta be a better way than using
> >
> > LIBUSB20_DEVICE_DESC()...
> >
> > After you find the string index, you can use the
> > following function to get strings:
> >
> > int
> > libusb20_dev_req_string_simple_sync(struct
> > libusb20_device *pdev,
> > uint8_t index, void *ptr, uint16_t len);
>
> Finding the string index was harder than I expected, since I can't get
> anything useful out of what libusb20_dev_get_device_desc() returns.
> Heck, I even tried a short for loop from 0 to 15 just to see if the
> values I saw in usbconfig were magic values pointing to the string.
>
> How do I find the string index?
>
struct LIBUSB20_DEVICE_DESC_DECODED *pdesc;
pdesc = libusb20_dev_get_device_desc(pdev);
printf("Vendor string is %u\n", pdesc->iVendor);
if zero, the string is not present.
--HPS
More information about the freebsd-usb
mailing list