diff options
author | Vasily Khoruzhick <anarsoul@gmail.com> | 2013-09-06 16:31:15 +0300 |
---|---|---|
committer | Vasily Khoruzhick <anarsoul@gmail.com> | 2015-01-31 13:19:24 +0300 |
commit | a3c90f2b24434aa36f782aca3950fd89af01fce0 (patch) | |
tree | fb8b59e622413220b72cadd2fac92762197f93c4 | |
parent | dc537ef2c9b1ee62e88db02560abcead4f9486f9 (diff) |
upektc_img: handle 0x28 message better
-rw-r--r-- | libfprint/drivers/upektc_img.c | 17 |
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: |