Commit graph

32 commits

Author SHA1 Message Date
Daniel Drake 659d8346be Compiler flags update
Dropped -Wextra as it is not that useful.
Set compiler flags to be more like the kernel's.
Set std=gnu99
Fixed some warnings.
2007-12-27 01:06:55 +00:00
Daniel Drake 1ee6210be3 Hookup AES1610 driver
An oversight pointed out by Michele B.
2007-11-22 17:25:27 +00:00
Daniel Drake 69700855e2 Implement identification for imaging devices 2007-11-21 00:30:00 +00:00
Daniel Drake 3f70d6f794 Identification infrastructure 2007-11-20 22:12:24 +00:00
Daniel Drake fa742a2142 Use G_N_ELEMENTS macro 2007-11-17 23:47:06 +00:00
Jan-Michael Brummer 72c304999a Add UPEK TouchChip driver
The UPEK TouchChip is an active capacitance imaging device with a
press-type sensor. It also has image storage capabilities which will
hopefully be accessible through libfprint in the near future.

This device can be found in the Samsung P35 laptop.
2007-11-17 12:51:20 +00:00
Daniel Drake 069b4a30eb Doc and build updates
Add ChangeLog generation makefile target.
Group all copyright notices in AUTHORS.
Update some doxygen comments, and allow fp_dev_close(NULL)
2007-11-15 23:00:04 +00:00
Daniel Drake 2ad14c0212 Add AES2501 driver
This driver works quite nicely. Seems a little too sensitive though (too
much black in the standardized image, not enough ridge gap definition).

Processing results are quite good, but you need a good enrollment image
(i.e. long!). It's best to get such images by pressing harder than you
might think necessary and swiping slowly.
2007-11-15 09:54:39 +00:00
Daniel Drake 5485f8031d Return images through enroll/verify path
Added new API functions to obtain images, even when scans are bad, perhaps
a useful way to show the user just how good/bad the scan actually was.

Drivers and examples updated accordingly.
2007-11-15 09:54:39 +00:00
Daniel Drake a86cd51959 Clean up on exit, and convert to singly-linked-lists
This adds fp_exit() to the public API, intended to be called while the
driving app is shutting down.
2007-11-15 09:54:38 +00:00
Daniel Drake 2e6c3b940c API documentation 2007-11-04 00:21:54 +00:00
Daniel Drake 7e6f25908b remove imgdev abstraction from public API
Make it easier for application developers, don't have to care about this
level of abstraction which we're intending to make superfluous to them.
2007-11-02 17:06:44 +00:00
Daniel Drake 447b1f01b3 Print discovery
Add concept of "discovered prints" and flesh out the API. A discovered print
was found based on file name but has not been checked for file integrity,
and of course there is no guarantee that it is usable when you try to
use it later (might have been deleted, etc).

The .fprint directory structure was changed - instead of using mnemonics
like "rind" we use their numeric value in the fp_finger enum as the filename.
2007-10-31 13:13:57 +00:00
Daniel Drake b96aade69c Flesh out driver_id/devtype API
Add accessor functions to the various structures
2007-10-30 22:25:26 +00:00
Daniel Drake cc3e976042 Add 'discover' hook for drivers
Drivers can now offer a discover function, and are expected to offer the
device devtype during discovery, without accessing the USB device. Hmm.
Maybe we'll have to change that later...
2007-10-30 22:15:45 +00:00
Daniel Drake 294f9ad447 Improve print_data structure and on-disk format
Drivers now have an ID number. These will be assigned by me and documented
on the wiki. 0 cannot be used.

Drivers now define a devtype for each device they initialise. This is to
cope with the situation where a driver can support varying devices where
their print data is incompatible (i.e. image scaling is totally changed).
This doesn't apply to any existing supported devices.

Print data no longer includes driver name, and includes driver ID instead.

Paths to saved print data now include driver ID and devtype, and no longer
include driver name.

APIs exposed for converting a print_data into a blob which can then
be loaded back again later. Useful for systems who don't want to use
my simple storage system (which is only aimed at a single user).

File format is now defined and will be documented on the wiki. The header
is larger as we can no longer rely on directory paths in all scenarios.

Print data compat check now checks devtype and driver ID.
2007-10-28 22:13:51 +00:00
Daniel Drake be67f85caa Add Authentec AES4000 driver 2007-10-27 19:33:00 +01:00
Daniel Drake f3a838e856 Initial implementation for image device access and capture
Also added new example: img_capture
2007-10-27 00:09:18 +01:00
Daniel Drake 0ac74ef649 Pass driver_data from ID table to driver init function 2007-10-25 15:00:30 +01:00
Daniel Drake 2709c6dc8c Basic image driver foundations
The basic model is that image drivers declare a fp_img_driver structure
rather than a fp_driver struct. fp_img_driver will contain primitive imaging
operations such as 'scan finger and return image'. The imgdev layer will
generically implement the primitive fp_driver operations, and the imgdev
layer will fix up the enroll/verify/etc pointers at driver registration
time.

Removed const from all fp_driver declarations, as these are now modified
dynamically in the case of imaging drivers.
2007-10-23 23:27:21 +01:00
Daniel Drake c97f4bb1a7 Fix verify debug messages
Teach it about the various error conditions.
2007-10-16 14:35:33 +01:00
Daniel Drake 68bdfc7868 Verification infrastructure
Similar model to enrollment.
2007-10-15 22:06:56 +01:00
Daniel Drake 39271b4fe5 Enrollment: improved error reporting
Convert enrollment function to return a signed integer, which is negative
on error or corresponds into fp_enroll_result otherwise.
Now we can treat a 'FAIL' condition differently from an actual error: fail
means that enrollment didn't complete because the data was nonsense or
whatever (e.g. scanned a different finger for each stage?).

Updated upekts accordingly.
2007-10-14 00:51:20 +01:00
Daniel Drake 2995144310 Build system tweaks
Add configure-time controls for logging
Set some default compile-time warnings
2007-10-13 16:03:53 +01:00
Daniel Drake 50e2de0730 Enrollment tweaks
upekts will need to know when the first enrollment stage is attempted for
the first time, so add an __enroll_stage counter which actually indicates
the next stage to enroll. -1 is a special value and it means 0 is next *and*
it is the initial attemt.

Added more debug output to the enroll handler.
Added new fp_enroll_status codes for too short or uncentered scans.

Changed the print_data allocator to consider the device rather than the
driver, this feels more natural. Added missing return value.

Make fp_enroll_status codes start at 1. 0 can now be used as a
special/temporary value by the drivers. Also check that we aren't exceeding
the number of enroll stages.

Also add a missing exit() call to the verify example and update for the
above.
2007-10-13 15:51:33 +01:00
Daniel Drake ec91736ac4 Add logging infrastructure
Also added some debug/error messages to existing code. For now debugging is
always on, this will be made optional later.
2007-10-12 15:14:29 +01:00
Daniel Drake 016ff33533 Enrolment infrastructure 2007-10-08 19:53:50 +01:00
Daniel Drake 2c06a4ebfa Expose driver info to library users 2007-10-08 17:18:29 +01:00
Daniel Drake 711bb1151b open/close device functions 2007-10-08 17:16:56 +01:00
Daniel Drake 7d31cb4d45 Basic device discovery infrastructure 2007-10-08 17:16:54 +01:00
Daniel Drake 046bdc0bda Initial driver registration mechanism
Also added the basis of the upekts driver, which is the first I'll
implement.
2007-10-08 17:16:51 +01:00
Daniel Drake 7d3612d9f6 Create repo structure 2007-10-08 17:16:13 +01:00