report device names and a little tidying up

This commit is contained in:
Adam Laurie 2009-12-09 10:36:27 +00:00
parent 20df0d785d
commit a3f573cdff
3 changed files with 26 additions and 7 deletions

View file

@ -32,20 +32,22 @@ nfc_device_desc_t * pn531_usb_pick_device (void)
{
nfc_device_desc_t *pndd;
if ((pndd = malloc (sizeof (*pndd)))) {
if ((pndd = malloc (sizeof (*pndd))))
{
size_t szN;
if (!pn531_usb_list_devices (pndd, 1, &szN)) {
if (!pn531_usb_list_devices (pndd, 1, &szN))
{
DBG("%s", "pn531_usb_list_devices failed");
return NULL;
}
if (szN == 0) {
if (szN == 0)
{
DBG("%s", "No device found");
return NULL;
}
}
return pndd;
}
@ -59,5 +61,5 @@ bool pn531_usb_list_devices(nfc_device_desc_t pnddDevices[], size_t szDevices, s
nfc_device_t* pn531_usb_connect(const nfc_device_desc_t* pndd)
{
return(pn53x_usb_connect(pndd, PN531_USB_DRIVER_NAME, NC_PN531));
return pn53x_usb_connect(pndd, pndd->acDevice, NC_PN531);
}

View file

@ -59,5 +59,5 @@ bool pn533_usb_list_devices(nfc_device_desc_t pnddDevices[], size_t szDevices, s
nfc_device_t* pn533_usb_connect(const nfc_device_desc_t* pndd)
{
return(pn53x_usb_connect(pndd, PN533_USB_DRIVER_NAME, NC_PN533));
return pn53x_usb_connect(pndd, pndd->acDevice, NC_PN533);
}

View file

@ -76,7 +76,9 @@ bool pn53x_usb_list_devices(nfc_device_desc_t pnddDevices[], size_t szDevices, s
struct usb_bus *bus;
struct usb_device *dev;
usb_dev_handle *udev;
uint32_t uiBusIndex = 0;
char string[256];
usb_init();
@ -108,7 +110,22 @@ bool pn53x_usb_list_devices(nfc_device_desc_t pnddDevices[], size_t szDevices, s
// Nope, we maybe want the next one, let's try to find another
continue;
}
strcpy(pnddDevices[*pszDeviceFound].acDevice, target_name);
if (dev->descriptor.iManufacturer || dev->descriptor.iProduct)
{
udev = usb_open(dev);
if(udev)
{
usb_get_string_simple(udev, dev->descriptor.iManufacturer, string, sizeof(string));
if(strlen(string) > 0)
strcpy(string + strlen(string)," / ");
usb_get_string_simple(udev, dev->descriptor.iProduct, string + strlen(string), sizeof(string) - strlen(string));
}
usb_close(udev);
}
if(strlen(string) == 0)
strcpy(pnddDevices[*pszDeviceFound].acDevice, target_name);
else
strcpy(pnddDevices[*pszDeviceFound].acDevice, string);
pnddDevices[*pszDeviceFound].pcDriver = target_name;
pnddDevices[*pszDeviceFound].uiBusIndex = uiBusIndex;
(*pszDeviceFound)++;