static int tigl_find(void) { // discover devices libusb_device **list; ssize_t cnt = libusb_get_device_list(NULL, &list); ssize_t i = 0; int j = 0; int k; if (cnt <= 0) { return 0; } memset(tigl_devices, 0, sizeof(tigl_devices)); tigl_n_devices = 0; for (i = 0; i < cnt; i++) { libusb_device *device = list[i]; struct libusb_device_descriptor desc; int r = libusb_get_device_descriptor(device, &desc); if (r < 0) { fprintf(stderr, "failed to get device descriptor"); return r; } if (desc.idVendor == VID_TI) { for(k = 0; k < (int)(sizeof(tigl_infos) / sizeof(tigl_infos[0])); k++) { if (desc.idProduct == tigl_infos[k].pid) { tigl_devices[j].vid = desc.idVendor; tigl_devices[j].pid = desc.idProduct; tigl_devices[j].version = desc.bcdDevice; tigl_get_product(tigl_devices[j].product_str, sizeof(tigl_devices[j].product_str), device); ticables_info(_(" found %s on #%i, version <%x.%02x>\n"), tigl_devices[j].product_str, j+1, desc.bcdDevice >> 8, desc.bcdDevice & 0xff); tigl_devices[j++].dev = device; tigl_n_devices = j; if (j >= MAX_CABLES) { return j; } } } } }
static int tigl_find(void) { // discover devices libusb_device **list; ssize_t cnt = libusb_get_device_list(NULL, &list); ssize_t i = 0; int j = 0; int k; if (cnt <= 0) { return 0; } for (i = 0; i < cnt; i++) { libusb_device *device = list[i]; struct libusb_device_descriptor desc; int r = libusb_get_device_descriptor(device, &desc); if (r < 0) { fprintf(stderr, "failed to get device descriptor"); return r; } if ((desc.idVendor == VID_TI)) { for(k = 0; k < (int)(sizeof(tigl_infos) / sizeof(usb_infos)); k++) { if(desc.idProduct == tigl_infos[k].pid) { ticables_info(_(" found %s on #%i, version <%x.%02x>\n"), tigl_get_product(device), j+1, desc.bcdDevice >> 8, desc.bcdDevice & 0xff); memcpy(&tigl_devices[j], &tigl_infos[k], sizeof(usb_infos)); tigl_devices[j++].dev = device; } } } }