From: Alan S. <st...@ro...> - 2008-11-27 12:28:57
|
On Thu, 27 Nov 2008 ra...@li... wrote: > On Thu, Nov 27, 2008 at 8:43 AM, Xiaofan Chen <xia...@gm...> wrote: > > On Thu, Nov 27, 2008 at 8:20 AM, <ra...@li...> wrote: > >> Hi, > >> I need to reset a device pipe and it is not clear to me how to do > >> this: I want to interrupt a series of input ISO transfers, > >> after some timeout. I checked the windows driver (with SnoopyPro) > >> which send a RESET_PIPE command > >> (and a GET_CURRENT_FRAME) > [...] > > > > This thread may help. > > http://thread.gmane.org/gmane.comp.lib.libusb.devel.general/3082/focus=3083 > I already checked that thread, but in libusb-1 there is not such call to reset > (and it is even reported ad obsolete). > > > I still have no good understanding of ISO transfer. But this looks > > like more of a device firmware problem. Does it work under Windows? > > There should not be a RESET_PIPE in the first place. > Yes in windows it works; the windows software uses a > WDU_Transfer with ISOCH_NOASAP ISOCH_RESET flags (0x80 and 0x10). Can you explain these terms? They don't mean anything to the non-Windows programmers on this mailing list. > > Maybe ask the developer to add the libusb_reset_ep() routine. > Yes could be an idea. I don't remember what that routine used to do. Maybe the reason it was removed was because it didn't actually do anything important? (It's worth noting that Isochronous endpoints don't have any state to restore.) In which case adding it back and calling it wouldn't help. Alan Stern |