static int getUsbHidReportItems (GioHandle *handle, GioHidReportItemsData *items, int timeout) { UsbChannel *channel = handle->channel; unsigned char *address; ssize_t result = usbHidGetItems(channel->device, channel->definition.interface, 0, &address, timeout); if (!address) return 0; items->address = address; items->size = result; return 1; }
static void getHidReportSizes (const ReportEntry *table) { unsigned char *items; ssize_t length = usbHidGetItems(usb->device, usb->definition.interface, 0, &items, HT_HID_REPORT_TIMEOUT); if (items) { const ReportEntry *report = table; while (report->number) { usbHidGetReportSize(items, length, report->number, report->size); report += 1; } free(items); } }