diff options
Diffstat (limited to 'vendor/github.com/karalabe/gousb/usb/iso.c')
-rw-r--r-- | vendor/github.com/karalabe/gousb/usb/iso.c | 79 |
1 files changed, 0 insertions, 79 deletions
diff --git a/vendor/github.com/karalabe/gousb/usb/iso.c b/vendor/github.com/karalabe/gousb/usb/iso.c deleted file mode 100644 index 054486318..000000000 --- a/vendor/github.com/karalabe/gousb/usb/iso.c +++ /dev/null @@ -1,79 +0,0 @@ -#include "libusb.h" -#include <stdio.h> -#include <string.h> - -void print_xfer(struct libusb_transfer *xfer); -void iso_callback(void *); - -void callback(struct libusb_transfer *xfer) { - //printf("Callback!\n"); - //print_xfer(xfer); - iso_callback(xfer->user_data); -} - -int submit(struct libusb_transfer *xfer) { - xfer->callback = &callback; - xfer->status = -1; - //print_xfer(xfer); - //printf("Transfer submitted\n"); - - /* fake - strcpy(xfer->buffer, "hello"); - xfer->actual_length = 5; - callback(xfer); - return 0; */ - return libusb_submit_transfer(xfer); -} - -void print_xfer(struct libusb_transfer *xfer) { - int i; - - printf("Transfer:\n"); - printf(" dev_handle: %p\n", xfer->dev_handle); - printf(" flags: %08x\n", xfer->flags); - printf(" endpoint: %x\n", xfer->endpoint); - printf(" type: %x\n", xfer->type); - printf(" timeout: %dms\n", xfer->timeout); - printf(" status: %x\n", xfer->status); - printf(" length: %d (act: %d)\n", xfer->length, xfer->actual_length); - printf(" callback: %p\n", xfer->callback); - printf(" user_data: %p\n", xfer->user_data); - printf(" buffer: %p\n", xfer->buffer); - printf(" num_iso_pkts: %d\n", xfer->num_iso_packets); - printf(" packets:\n"); - for (i = 0; i < xfer->num_iso_packets; i++) { - printf(" [%04d] %d (act: %d) %x\n", i, - xfer->iso_packet_desc[i].length, - xfer->iso_packet_desc[i].actual_length, - xfer->iso_packet_desc[i].status); - } -} - -int extract_data(struct libusb_transfer *xfer, void *raw, int max, unsigned char *status) { - int i; - int copied = 0; - unsigned char *in = xfer->buffer; - unsigned char *out = raw; - for (i = 0; i < xfer->num_iso_packets; i++) { - struct libusb_iso_packet_descriptor pkt = xfer->iso_packet_desc[i]; - - // Copy the data - int len = pkt.actual_length; - if (len > max) { - len = max; - } - memcpy(out, in, len); - copied += len; - - // Increment offsets - in += pkt.length; - out += len; - - // Extract first error - if (pkt.status == 0 || *status != 0) { - continue; - } - *status = pkt.status; - } - return copied; -} |