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