Index: libgpio/gpio-usb.c =================================================================== RCS file: /cvs/gnome/libgpio/gpio-usb.c,v retrieving revision 1.11 diff -u -r1.11 gpio-usb.c --- libgpio/gpio-usb.c 2000/07/15 18:59:16 1.11 +++ libgpio/gpio-usb.c 2000/07/18 07:56:17 @@ -114,13 +114,22 @@ } -int gpio_usb_clear_halt (gpio_device * dev) +int gpio_usb_clear_halt (gpio_device * dev,int ep) { - if (usb_clear_halt (dev->device_handle, dev->settings.usb.inep) - || usb_clear_halt (dev->device_handle, dev->settings.usb.outep)) + int ret=0; + + switch (ep) { + case GPIO_USB_IN_ENDPOINT : + ret=usb_clear_halt (dev->device_handle,dev->settings.usb.inep); + break; + case GPIO_USB_OUT_ENDPOINT : + ret=usb_clear_halt (dev->device_handle,dev->settings.usb.outep); + break; + default: + fprintf (stderr,"gpio_usb_clear_halt: bad EndPoint argument\n"); return GPIO_ERROR; - else - return GPIO_OK; + } + return (ret?GPIO_ERROR:GPIO_OK); } int gpio_usb_write(gpio_device * dev, char *bytes, int size) Index: libgpio/gpio-usb.h =================================================================== RCS file: /cvs/gnome/libgpio/gpio-usb.h,v retrieving revision 1.2 diff -u -r1.2 gpio-usb.h --- libgpio/gpio-usb.h 2000/06/11 18:58:08 1.2 +++ libgpio/gpio-usb.h 2000/07/18 07:56:17 @@ -13,4 +13,9 @@ extern struct gpio_operations gpio_usb_operations; +enum { + GPIO_USB_IN_ENDPOINT, + GPIO_USB_OUT_ENDPOINT +}; + #endif /* _GPIO_USB_H_ */