X-Git-Url: http://git.zerfleddert.de/cgi-bin/gitweb.cgi/usb-driver/blobdiff_plain/6234190be3437eb8e6ce225f934e2ad97ce46c6a..0c2db148a4e604ceeab5eda38efcf64d1ef25c76:/xpcu.c diff --git a/xpcu.c b/xpcu.c index 17ab7cb..de23d9e 100644 --- a/xpcu.c +++ b/xpcu.c @@ -232,6 +232,23 @@ int xpcu_transfer(struct xpcu_s *xpcu, struct usb_transfer *ut) { return ret; } +void xpcu_set_interface(struct xpcu_s *xpcu, struct usb_set_interface *usi) { + if (xpcu->dev) { + if (!xpcu->handle) { + xpcu->handle = usb_open(xpcu->dev); +#ifndef NO_USB_RESET + if (xpcu->handle) { + usb_reset(xpcu->handle); + xpcu->handle = usb_open(xpcu->dev); + } +#endif + } + + xpcu->interface = xpcu->dev->config[0].interface[usi->dwInterfaceNum].altsetting[usi->dwAlternateSetting].bInterfaceNumber; + xpcu->alternate = usi->dwAlternateSetting; + } +} + struct xpcu_s *xpcu_open(void) { static struct xpcu_s xpcu;