X-Git-Url: http://git.zerfleddert.de/cgi-bin/gitweb.cgi/hmcfgusb/blobdiff_plain/e0a7146e36c5087367c9ef96a812e4fa48d98234..816f5cd2ecb24d72753fed01597a81e031398446:/hmcfgusb.c diff --git a/hmcfgusb.c b/hmcfgusb.c index a73cd65..ace2e57 100644 --- a/hmcfgusb.c +++ b/hmcfgusb.c @@ -49,7 +49,7 @@ #define INTERFACE 0 static int quit = 0; -static int debug = 1; +static int debug = 0; /* Not in all libusb-1.0 versions, so we have to roll our own :-( */ static char * usb_strerror(int e) @@ -145,7 +145,7 @@ int hmcfgusb_send(struct hmcfgusb_dev *usbdev, unsigned char* send_data, int len int cnt; if (debug) - hexdump(send_data, len, "< "); + hexdump(send_data, len, "USB < "); err = libusb_interrupt_transfer(usbdev->usb_devh, EP_OUT, send_data, len, &cnt, USB_TIMEOUT); if (err) { fprintf(stderr, "Can't send data: %s\n", usb_strerror(err)); @@ -225,7 +225,7 @@ static void LIBUSB_CALL hmcfgusb_interrupt(struct libusb_transfer *transfer) } else { if (cb_data && cb_data->cb) { if (debug) - hexdump(transfer->buffer, transfer->actual_length, "> "); + hexdump(transfer->buffer, transfer->actual_length, "USB > "); cb_data->cb(transfer->buffer, transfer->actual_length, cb_data->data); } else { hexdump(transfer->buffer, transfer->actual_length, "> "); @@ -370,6 +370,7 @@ int hmcfgusb_poll(struct hmcfgusb_dev *dev, int timeout) n = poll(dev->pfd, dev->n_pfd, tv.tv_sec * 1000); if (n < 0) { perror("poll"); + errno = 0; return -1; } else if (n == 0) { usb_event = 1; @@ -380,6 +381,7 @@ int hmcfgusb_poll(struct hmcfgusb_dev *dev, int timeout) usb_event = 1; break; } else { + errno = 0; return dev->pfd[fd_n].fd; } } @@ -397,8 +399,11 @@ int hmcfgusb_poll(struct hmcfgusb_dev *dev, int timeout) } } - if (quit) + errno = 0; + if (quit) { + fprintf(stderr, "closing device-connection due to error %d\n", quit); errno = quit; + } return -1; } @@ -422,3 +427,8 @@ void hmcfgusb_close(struct hmcfgusb_dev *dev) libusb_exit(NULL); } + +void hmcfgusb_set_debug(int d) +{ + debug = d; +}