summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVasily Khoruzhick <anarsoul@gmail.com>2013-09-06 16:31:15 +0300
committerVasily Khoruzhick <anarsoul@gmail.com>2015-01-31 13:19:24 +0300
commita3c90f2b24434aa36f782aca3950fd89af01fce0 (patch)
treefb8b59e622413220b72cadd2fac92762197f93c4
parentdc537ef2c9b1ee62e88db02560abcead4f9486f9 (diff)
upektc_img: handle 0x28 message better
-rw-r--r--libfprint/drivers/upektc_img.c17
1 files changed, 16 insertions, 1 deletions
diff --git a/libfprint/drivers/upektc_img.c b/libfprint/drivers/upektc_img.c
index 9bf099d..577d3ed 100644
--- a/libfprint/drivers/upektc_img.c
+++ b/libfprint/drivers/upektc_img.c
@@ -267,7 +267,22 @@ static void capture_read_data_cb(struct libusb_transfer *transfer)
switch (data[7]) {
/* No finger */
case 0x28:
- fpi_ssm_jump_to_state(ssm, CAPTURE_ACK_00_28);
+ fp_dbg("18th byte is %.2x\n", data[18]);
+ switch (data[18]) {
+ case 0x0c:
+ /* no finger */
+ fpi_ssm_jump_to_state(ssm, CAPTURE_ACK_00_28);
+ break;
+ case 0x00:
+ /* finger is present! */
+ fpi_ssm_jump_to_state(ssm, CAPTURE_ACK_00_28);
+ break;
+ default:
+ /* some error happened, cancel scan */
+ fp_err("something bad happened, aborting scan :(\n");
+ fpi_ssm_mark_aborted(ssm, FP_VERIFY_RETRY_REMOVE_FINGER);
+ break;
+ }
break;
/* Image frame with additional info */
case 0x2c: