Hi,

I've finally managed to get around to adding support for libusb 1.0. This is to fix an issue with raw channels loosing data when running using libusb 0.1 due to bulk read timeouts and transferred data being dropped.

The changes are on my github branch at git://github.com/tobygray/barry.git and are as follows:

4bf09c6b1034b5a80567 <https://github.com/tobygray/barry/commit/4bf09c6b1034b5a8056777723b67198c2dcd099e> - This is the main reorganisation of the code to support two different USB libraries. 66929841996ac1985f34 <https://github.com/tobygray/barry/commit/66929841996ac1985f349c9e716d187578edcc94> - This changes the debian packages to always use libusb 1.0 cba4e6a668702764f06b <https://github.com/tobygray/barry/commit/cba4e6a668702764f06bef388ec364a5c36c9dda> - This forces the RPM packages to always use libusb 0.1, I don't know enough about the different RPM based platforms to know if they all have libusb 1.0 available, so this seemed the most sensible choice. 5c76eb0602cbfac3cb0b <https://github.com/tobygray/barry/commit/5c76eb0602cbfac3cb0b7dd7e50be87e8271488e> - Fixes some issues with the backup GUI and makes the libusb 1.0 wrapper return sensible error codes d409f601e001556650ba <https://github.com/tobygray/barry/commit/d409f601e001556650ba66159b108e4da8ee4295> - Is a minor change to allow the test script to run in dash if that's set as the system shell
Regards,
991419e09268c073d1d8 <https://github.com/tobygray/barry/commit/991419e09268c073d1d83adc90d1b154ed534e56> - Fixes a header dependency issue caused by reducing the headers included by the barry headers. 42b5622a2b6297791fb7 <https://github.com/tobygray/barry/commit/42b5622a2b6297791fb75520fde5dcff8bb2a325> - Changes over breset and bcharge so that they use libbarry.so for all their USB functionality rather than calling libusb directly.

Of these changes I think the only possibly controversial changes are:
* How I've done the private implementation for the various USB wrapping classes. It just uses a private struct rather than the more tradition private implementation pattern of deferring all API calls to a private class. The only reason I did this was because I couldn't see any good reason for writing out all the methods wrappers to the private implementation method (e.g. Device::DoStuff() { m_impl->DoStuff() } ). However I'm happy to add all these methods if it's preferred. * The change of breset and bcharge to using libbarry. There might be reasons for these two tools using libusb directly which I'm not aware of, so I made these changes as a separate commit.

Any other comments or suggestions are welcome.

Regards,

Toby
------------------------------------------------------------------------------
Simplify data backup and recovery for your virtual environment with vRanger.
Installation's a snap, and flexible recovery options mean your data is safe,
secure and there when you need it. Discover what all the cheering's about.
Get your free trial download today. 
http://p.sf.net/sfu/quest-dev2dev2 
_______________________________________________
Barry-devel mailing list
Barry-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/barry-devel

Reply via email to