libfprint currently uses libusb for USB I/O. It has been working well but limits our horizons - it makes cleanly implementing some advanced features difficult/impossible and prevents us from providing a non-blocking API to library users.
I considered switching to OpenUSB but decided that I do not like their solution for a few reasons. So I wrote my own USB access library called fpusb. http://www.reactivated.net/fprint/wiki/Fpusb I will soon start a new libfprint branch in the git repository where I convert us to fpusb and then start using the advanced features (involves quite a bit of internal reworking, including rewrites of all drivers). The basic model is that all drivers will be nonblocking and will asynchronously drive the library. The library will provide an asynchronous API to users, as well as a synchronous API (basically just wrapping the async stuff) similar to the one currently offered. This new branch will likely be rebased without warning until we reach the point where I merge it into the master branch. Unfortunately, the switch to fpush means that portability is somewhat reduced. Previously, libfprint was likely to be portable to OSX and windows without too much hassle (because libusb is ported to those platforms). fpusb only runs on Linux. I hope that people will become interested in porting it, but as I am not going to do this myself, I cannot say if/when it might become possible to run libfprint on other platforms. This is not an easy decision to make, but the advantages of having asynchronous USB I/O access are significant, and exposing a nonblocking interface is important for good library design. Daniel _______________________________________________ fprint mailing list [email protected] http://lists.reactivated.net/mailman/listinfo/fprint
