Am Samstag, 27. November 2010, um 00:10:54 schrieb m. allan noah: > Reinhold Kainhofer has recently worked up a patch with an alternative > implementation of your idea- and there was some discussion about yet a > third mechanism, which relies on a 'setting' function to be called > prior to transferring the data, much as the existing timeout control > code works. I think that would be the best choice, not sure if > Reinhold has gotten a chance to work on it.
I have now updated my patch to also include a callback function to sanei_usb_open_extended, which is called before all available endpoints are listed. Patch is here: http://codereview.appspot.com/2823041/ The callback function (if given) is called for each combination of USB_DIR_IN/USB_DIR_OUT and USB_ENDPOINT_TYPE_CONTROL/USB_ENDPOINT_TYPE_ISOCHRONOUS/USB_ENDPOINT_TYPE_BULK/USB_ENDPOINT_TYPE_INTERRUPT. If a value >0 is returned, it is used as the default endpoint of that type (instead of the first encountered endpoint of that type). The old functionality of an additional argument to each usb read/write function to explicitly override the endpoint for a single transaction is still there, so one can now override the default used for all transfers as well as the endpoint for a single transfer. Any comments? Of course, I would love to get this into the 1.0.22 release, so other backends that need different endpoints for different communication types finally have this functionality available. Cheers, Reinhold -- ------------------------------------------------------------------ Reinhold Kainhofer, reinhold at kainhofer.com, http://reinhold.kainhofer.com/ * Financial & Actuarial Math., Vienna Univ. of Technology, Austria * http://www.fam.tuwien.ac.at/, DVR: 0005886 * LilyPond, Music typesetting, http://www.lilypond.org