remove imgdev abstraction from public API
[libfprint.git] / HACKING
blob43027e4bb84e8a1d1e2870cedd44821d60330cbb
1 USB
2 ===
4 At the time of development, there are no known consumer fingerprint readers
5 which do not operate over the USB bus. Therefore the library is designed around
6 the fact that each driver drivers USB devices, and each device is a USB device.
7 If we were to ever support a non-USB device, some rearchitecting would be
8 needed, but this would not be a substantial task.
11 GLib
12 ====
14 Although the library uses GLib internally, libfprint is designed to provide
15 a completely neutral interface to it's application users. So, the public
16 APIs should never return GLib data types or anything like that.
19 Two-faced-ness
20 ==============
22 Like any decent library, this one is designed to provide a stable and
23 documented API to it's users: applications. Clear distinction is made between
24 data available internally in the library, and data/functions available to
25 the applications.
27 This library is confused a little by the fact that there is another 'interface'
28 at hand: the internal interface provided to drivers. So, we effectively end
29 up with 2 APIs:
31  1. The external-facing API for applications
32  2. The internal API for fingerprint drivers