summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarco Trevisan (Treviño) <mail@3v1n0.net>2024-02-19 15:31:11 +0100
committerMarco Trevisan (Treviño) <mail@3v1n0.net>2024-02-19 17:12:12 +0100
commitb0f0322726fecf6dece6216ca1b2b2ea60bfee7e (patch)
tree69f3c197c725891ae0eb6add1023c9ff105ebced
parent7476faba689d9f7e70ebd82ccd75dd319798e4c8 (diff)
egismoc: Indentation and syntax fixes
-rw-r--r--libfprint/drivers/egismoc/egismoc.c316
-rw-r--r--libfprint/drivers/egismoc/egismoc.h13
2 files changed, 202 insertions, 127 deletions
diff --git a/libfprint/drivers/egismoc/egismoc.c b/libfprint/drivers/egismoc/egismoc.c
index dfae716..f4ed08b 100644
--- a/libfprint/drivers/egismoc/egismoc.c
+++ b/libfprint/drivers/egismoc/egismoc.c
@@ -35,6 +35,18 @@
#include "egismoc.h"
+struct _FpiDeviceEgisMoc
+{
+ FpDevice parent;
+ FpiSsm *task_ssm;
+ FpiSsm *cmd_ssm;
+ FpiUsbTransfer *cmd_transfer;
+ GCancellable *interrupt_cancellable;
+
+ int enrolled_num;
+ GPtrArray *enrolled_ids;
+};
+
G_DEFINE_TYPE (FpiDeviceEgisMoc, fpi_device_egismoc, FP_TYPE_DEVICE);
static const FpIdEntry egismoc_id_table[] = {
@@ -84,9 +96,11 @@ egismoc_wait_finger_on_sensor (FpiSsm *ssm,
g_autoptr(FpiUsbTransfer) transfer = fpi_usb_transfer_new (device);
- fpi_usb_transfer_fill_interrupt (transfer, EGISMOC_EP_CMD_INTERRUPT_IN, EGISMOC_USB_INTERRUPT_IN_RECV_LENGTH);
+ fpi_usb_transfer_fill_interrupt (transfer, EGISMOC_EP_CMD_INTERRUPT_IN,
+ EGISMOC_USB_INTERRUPT_IN_RECV_LENGTH);
transfer->ssm = ssm;
- transfer->short_is_error = FALSE; /* Interrupt on this device always returns 1 byte short; this is expected */
+ /* Interrupt on this device always returns 1 byte short; this is expected */
+ transfer->short_is_error = FALSE;
fpi_device_report_finger_status (device, FP_FINGER_STATUS_NEEDED);
@@ -103,7 +117,9 @@ egismoc_validate_response_prefix (const guchar *buffer_in,
const guchar *valid_prefix,
const gsize valid_prefix_len)
{
- const gboolean result = memcmp (buffer_in + (egismoc_read_prefix_len + EGISMOC_CHECK_BYTES_LENGTH),
+ const gboolean result = memcmp (buffer_in +
+ (egismoc_read_prefix_len +
+ EGISMOC_CHECK_BYTES_LENGTH),
valid_prefix,
valid_prefix_len) == 0;
@@ -166,9 +182,10 @@ egismoc_cmd_receive_cb (FpiUsbTransfer *transfer,
gpointer userdata,
GError *error)
{
- fp_dbg ("Command receive callback");
CommandData *data = userdata;
+ fp_dbg ("Command receive callback");
+
if (error)
{
fpi_ssm_mark_failed (transfer->ssm, error);
@@ -206,17 +223,17 @@ egismoc_cmd_run_state (FpiSsm *ssm,
NULL,
fpi_ssm_usb_transfer_cb,
NULL);
+ break;
}
- else
- {
- fpi_ssm_next_state (ssm);
- }
+
+ fpi_ssm_next_state (ssm);
break;
case CMD_GET:
transfer = fpi_usb_transfer_new (device);
transfer->ssm = ssm;
- fpi_usb_transfer_fill_bulk (transfer, EGISMOC_EP_CMD_IN, EGISMOC_USB_IN_RECV_LENGTH);
+ fpi_usb_transfer_fill_bulk (transfer, EGISMOC_EP_CMD_IN,
+ EGISMOC_USB_IN_RECV_LENGTH);
fpi_usb_transfer_submit (g_steal_pointer (&transfer),
EGISMOC_USB_RECV_TIMEOUT,
NULL,
@@ -253,9 +270,9 @@ typedef union egismoc_check_bytes
} EgisMocCheckBytes;
/*
- Derive the 2 "check bytes" for write payloads
- 32-bit big-endian sum of all 16-bit words (including check bytes) MOD 0xFFFF should be 0, otherwise
- the device will reject the payload
+ * Derive the 2 "check bytes" for write payloads
+ * 32-bit big-endian sum of all 16-bit words (including check bytes) MOD 0xFFFF
+ * should be 0, otherwise the device will reject the payload
*/
static EgisMocCheckBytes
egismoc_get_check_bytes (const guchar *value,
@@ -279,7 +296,7 @@ egismoc_get_check_bytes (const guchar *value,
sum_shorts += value_bigendian_shorts[i];
/*
- derive the "first possible occurence" of check bytes as:
+ derive the "first possible occurrence" of check bytes as:
`0xFFFF - (sum_of_32bit_words % 0xFFFF)
*/
check_bytes.check_short = 0xffff - (sum_shorts % 0xffff);
@@ -310,10 +327,12 @@ egismoc_exec_cmd (FpDevice *device,
transfer->short_is_error = TRUE;
/*
- buffer_out should be a fully composed command (with prefix, check bytes, etc) which looks like this
- E G I S 00 00 00 01 {cb1} {cb2} {payload}
- where cb1 and cb2 are some check bytes generated by the egismoc_get_check_bytes method
- and payload is what is passed via the cmd parameter
+ * buffer_out should be a fully composed command (with prefix, check bytes, etc)
+ * which looks like this:
+ * E G I S 00 00 00 01 {cb1} {cb2} {payload}
+ * where cb1 and cb2 are some check bytes generated by the
+ * egismoc_get_check_bytes() method and payload is what is passed via the cmd
+ * parameter
*/
buffer_out_length = egismoc_write_prefix_len
+ EGISMOC_CHECK_BYTES_LENGTH
@@ -323,18 +342,22 @@ egismoc_exec_cmd (FpDevice *device,
/* Prefix */
memcpy (buffer_out, egismoc_write_prefix, egismoc_write_prefix_len);
- /* Check Bytes - leave them as 00 for now then later generate and copy over the real ones */
+ /* Check Bytes - leave them as 00 for now then later generate and copy over
+ * the real ones */
/* Command Payload */
- memcpy (buffer_out + egismoc_write_prefix_len + EGISMOC_CHECK_BYTES_LENGTH, cmd, cmd_length);
+ memcpy (buffer_out + egismoc_write_prefix_len + EGISMOC_CHECK_BYTES_LENGTH,
+ cmd, cmd_length);
/* destroy cmd if requested */
if (cmd_destroy)
cmd_destroy (cmd);
- /* Now fetch and set the "real" check bytes based on the currently assembled payload */
+ /* Now fetch and set the "real" check bytes based on the currently
+ * assembled payload */
check_bytes = egismoc_get_check_bytes (buffer_out, buffer_out_length);
- memcpy (buffer_out + egismoc_write_prefix_len, check_bytes.check_bytes, EGISMOC_CHECK_BYTES_LENGTH);
+ memcpy (buffer_out + egismoc_write_prefix_len, check_bytes.check_bytes,
+ EGISMOC_CHECK_BYTES_LENGTH);
fpi_usb_transfer_fill_bulk_full (transfer,
EGISMOC_EP_CMD_OUT,
@@ -423,9 +446,9 @@ egismoc_list_fill_enrolled_ids_cb (FpDevice *device,
self->enrolled_num = 0;
/*
- Each fingerprint ID will be returned in this response as a 32 byte array
- The other stuff in the payload is 16 bytes long, so if there is at least 1 print
- then the length should be at least 16+32=48 bytes long
+ * Each fingerprint ID will be returned in this response as a 32 byte array
+ * The other stuff in the payload is 16 bytes long, so if there is at least 1
+ * print then the length should be at least 16+32=48 bytes long
*/
for (int pos = EGISMOC_LIST_RESPONSE_PREFIX_SIZE;
pos < length_in - EGISMOC_LIST_RESPONSE_SUFFIX_SIZE;
@@ -433,11 +456,13 @@ egismoc_list_fill_enrolled_ids_cb (FpDevice *device,
{
g_autofree guchar *print_id = g_malloc0 (EGISMOC_FINGERPRINT_DATA_SIZE);
memcpy (print_id, buffer_in + pos, EGISMOC_FINGERPRINT_DATA_SIZE);
- fp_dbg ("Device fingerprint %0d: %.*s%c", self->enrolled_num, EGISMOC_FINGERPRINT_DATA_SIZE, print_id, '\0');
+ fp_dbg ("Device fingerprint %0d: %.*s", self->enrolled_num,
+ EGISMOC_FINGERPRINT_DATA_SIZE, print_id);
g_ptr_array_add (self->enrolled_ids, g_steal_pointer (&print_id));
}
- fp_info ("Number of currently enrolled fingerprints on the device is %d", self->enrolled_num);
+ fp_info ("Number of currently enrolled fingerprints on the device is %d",
+ self->enrolled_num);
if (self->task_ssm)
fpi_ssm_next_state (self->task_ssm);
@@ -452,7 +477,8 @@ egismoc_list_run_state (FpiSsm *ssm,
switch (fpi_ssm_get_cur_state (ssm))
{
case LIST_GET_ENROLLED_IDS:
- egismoc_exec_cmd (device, cmd_list, cmd_list_len, NULL, egismoc_list_fill_enrolled_ids_cb);
+ egismoc_exec_cmd (device, cmd_list, cmd_list_len, NULL,
+ egismoc_list_fill_enrolled_ids_cb);
break;
case LIST_RETURN_ENROLLED_PRINTS:
@@ -482,30 +508,35 @@ egismoc_get_delete_cmd (FpDevice *device,
{
fp_dbg ("Get delete command");
FpiDeviceEgisMoc *self = FPI_DEVICE_EGISMOC (device);
- g_autofree const gchar *print_description = NULL;
-
g_autoptr(GVariant) print_data = NULL;
g_autoptr(GVariant) print_data_id_var = NULL;
const guchar *print_data_id = NULL;
gsize print_data_id_len = 0;
+ g_autofree gchar *print_description = NULL;
g_autofree guchar *enrolled_print_id = NULL;
- guchar *result = NULL;
+ g_autofree guchar *result = NULL;
gsize pos = 0;
/*
- The final command body should contain:
- 1) hard-coded 00 00
- 2) 2-byte size indiciator, 20*Number deleted identifiers plus 7 in form of: num_to_delete * 0x20 + 0x07
- Since max prints can be higher than 7 then this goes up to 2 bytes (e9 + 9 = 109)
- 3) Hard-coded prefix (cmd_delete_prefix)
- 4) 2-byte size indiciator, 20*Number of enrolled identifiers without plus 7 (num_to_delete * 0x20)
- 5) All of the currently registered prints to delete in their 32-byte device identifiers (enrolled_list)
+ * The final command body should contain:
+ * 1) hard-coded 00 00
+ * 2) 2-byte size indiciator, 20*Number deleted identifiers plus 7 in form of:
+ * num_to_delete * 0x20 + 0x07
+ * Since max prints can be higher than 7 then this goes up to 2 bytes
+ * (e9 + 9 = 109)
+ * 3) Hard-coded prefix (cmd_delete_prefix)
+ * 4) 2-byte size indiciator, 20*Number of enrolled identifiers without plus 7
+ * (num_to_delete * 0x20)
+ * 5) All of the currently registered prints to delete in their 32-byte device
+ * identifiers (enrolled_list)
*/
const int num_to_delete = (!delete_print) ? self->enrolled_num : 1;
- const gsize body_length = sizeof (guchar) * EGISMOC_FINGERPRINT_DATA_SIZE * num_to_delete;
+ const gsize body_length = sizeof (guchar) * EGISMOC_FINGERPRINT_DATA_SIZE *
+ num_to_delete;
/* total_length is the 6 various bytes plus prefix and body payload */
- const gsize total_length = (sizeof (guchar) * 6) + cmd_delete_prefix_len + body_length;
+ const gsize total_length = (sizeof (guchar) * 6) + cmd_delete_prefix_len +
+ body_length;
/* pre-fill entire payload with 00s */
result = g_malloc0 (total_length);
@@ -514,8 +545,10 @@ egismoc_get_delete_cmd (FpDevice *device,
pos = 2;
/* Size Counter bytes */
- /* "easiest" way to handle 2-bytes size for counter is to hard-code logic for when we go to the 2nd byte */
- /* note this will not work in case any model ever supports more than 14 prints (assumed max is 10) */
+ /* "easiest" way to handle 2-bytes size for counter is to hard-code logic for
+ * when we go to the 2nd byte
+ * note this will not work in case any model ever supports more than 14 prints
+ * (assumed max is 10) */
if (num_to_delete > 7)
{
memset (result + pos, 0x01, sizeof (guchar));
@@ -560,15 +593,18 @@ egismoc_get_delete_cmd (FpDevice *device,
if (!g_variant_check_format_string (print_data, "(@ay)", FALSE))
{
- fpi_ssm_mark_failed (self->task_ssm, fpi_device_error_new (FP_DEVICE_ERROR_DATA_INVALID));
+ fpi_ssm_mark_failed (self->task_ssm,
+ fpi_device_error_new (FP_DEVICE_ERROR_DATA_INVALID));
return NULL;
}
g_variant_get (print_data, "(@ay)", &print_data_id_var);
- print_data_id = g_variant_get_fixed_array (print_data_id_var, &print_data_id_len, sizeof (guchar));
+ print_data_id = g_variant_get_fixed_array (print_data_id_var,
+ &print_data_id_len, sizeof (guchar));
if (!g_str_has_prefix (print_description, "FP"))
- fp_dbg ("Fingerprint '%s' was not created by libfprint; deleting anyway.", print_description);
+ fp_dbg ("Fingerprint '%s' was not created by libfprint; deleting anyway.",
+ print_description);
fp_info ("Delete fingerprint %s (%s)", print_description, print_data_id);
@@ -623,14 +659,16 @@ egismoc_delete_cb (FpDevice *device,
}
else
{
- fpi_ssm_mark_failed (self->task_ssm, fpi_device_error_new_msg (FP_DEVICE_ERROR_PROTO,
- "Unsupported delete action."));
+ fpi_ssm_mark_failed (self->task_ssm,
+ fpi_device_error_new_msg (FP_DEVICE_ERROR_PROTO,
+ "Unsupported delete action."));
}
}
else
{
- fpi_ssm_mark_failed (self->task_ssm, fpi_device_error_new_msg (FP_DEVICE_ERROR_PROTO,
- "Delete print was not successfull"));
+ fpi_ssm_mark_failed (self->task_ssm,
+ fpi_device_error_new_msg (FP_DEVICE_ERROR_PROTO,
+ "Delete print was not successful"));
}
}
@@ -644,17 +682,22 @@ egismoc_delete_run_state (FpiSsm *ssm,
switch (fpi_ssm_get_cur_state (ssm))
{
case DELETE_GET_ENROLLED_IDS:
- /* get enrolled_ids and enrolled_num from device for use building delete payload below */
- egismoc_exec_cmd (device, cmd_list, cmd_list_len, NULL, egismoc_list_fill_enrolled_ids_cb);
+ /* get enrolled_ids and enrolled_num from device for use building
+ * delete payload below
+ */
+ egismoc_exec_cmd (device, cmd_list, cmd_list_len, NULL,
+ egismoc_list_fill_enrolled_ids_cb);
break;
case DELETE_DELETE:
if (fpi_device_get_current_action (device) == FPI_DEVICE_ACTION_DELETE)
- payload = egismoc_get_delete_cmd (device, fpi_ssm_get_data (ssm), &payload_length);
+ payload = egismoc_get_delete_cmd (device, fpi_ssm_get_data (ssm),
+ &payload_length);
else
payload = egismoc_get_delete_cmd (device, NULL, &payload_length);
- egismoc_exec_cmd (device, g_steal_pointer (&payload), payload_length, g_free, egismoc_delete_cb);
+ egismoc_exec_cmd (device, g_steal_pointer (&payload), payload_length,
+ g_free, egismoc_delete_cb);
break;
}
}
@@ -725,7 +768,8 @@ egismoc_enroll_status_report (FpDevice *device,
fpi_ssm_mark_failed (self->task_ssm, error);
else
fpi_ssm_mark_failed (self->task_ssm,
- fpi_device_error_new_msg (FP_DEVICE_ERROR_GENERAL, "Unknown error"));
+ fpi_device_error_new_msg (FP_DEVICE_ERROR_GENERAL,
+ "Unknown error"));
}
}
@@ -755,7 +799,8 @@ egismoc_read_capture_cb (FpDevice *device,
rsp_read_success_suffix,
rsp_read_success_suffix_len))
{
- egismoc_enroll_status_report (device, enroll_print, ENROLL_STATUS_PARTIAL_OK, NULL);
+ egismoc_enroll_status_report (device, enroll_print,
+ ENROLL_STATUS_PARTIAL_OK, NULL);
}
else
{
@@ -778,11 +823,13 @@ egismoc_read_capture_cb (FpDevice *device,
rsp_read_dirty_prefix,
rsp_read_dirty_prefix_len))
error = fpi_device_retry_new_msg (FP_DEVICE_RETRY_REMOVE_FINGER,
- "Your device is having trouble recognizing you. Make sure your sensor is clean.");
+ "Your device is having trouble recognizing you. "
+ "Make sure your sensor is clean.");
else
error = fpi_device_retry_new_msg (FP_DEVICE_RETRY_REMOVE_FINGER,
- "Unknown failure trying to read your finger. Please try again.");
+ "Unknown failure trying to read your finger. "
+ "Please try again.");
egismoc_enroll_status_report (device, enroll_print, ENROLL_STATUS_RETRY, error);
}
@@ -820,8 +867,9 @@ egismoc_enroll_check_cb (FpDevice *device,
}
/*
- Builds the full "check" payload which includes identifiers for all fingerprints which currently
- should exist on the storage. This payload is used during both enrollment and verify actions.
+ * Builds the full "check" payload which includes identifiers for all
+ * fingerprints which currently should exist on the storage. This payload is
+ * used during both enrollment and verify actions.
*/
static guchar *
egismoc_get_check_cmd (FpDevice *device,
@@ -829,29 +877,36 @@ egismoc_get_check_cmd (FpDevice *device,
{
fp_dbg ("Get check command");
FpiDeviceEgisMoc *self = FPI_DEVICE_EGISMOC (device);
- guchar *device_print_id = NULL;
- guchar *result = NULL;
+ g_autofree guchar *result = NULL;
gsize pos = 0;
/*
- The final command body should contain:
- 1) hard-coded 00 00
- 2) 2-byte size indiciator, 20*Number enrolled identifiers plus 9 in form of: (enrolled_num + 1) * 0x20 + 0x09
- Since max prints can be higher than 7 then this goes up to 2 bytes (e9 + 9 = 109)
- 3) Hard-coded prefix (cmd_check_prefix)
- 4) 2-byte size indiciator, 20*Number of enrolled identifiers without plus 9 ((enrolled_num + 1) * 0x20)
- 5) Hard-coded 32 * 0x00 bytes
- 6) All of the currently registered prints in their 32-byte device identifiers (enrolled_list)
- 7) Hard-coded suffix (cmd_check_suffix)
+ * The final command body should contain:
+ * 1) hard-coded 00 00
+ * 2) 2-byte size indiciator, 20*Number enrolled identifiers plus 9 in form of:
+ * (enrolled_num + 1) * 0x20 + 0x09
+ * Since max prints can be higher than 7 then this goes up to 2 bytes
+ * (e9 + 9 = 109)
+ * 3) Hard-coded prefix (cmd_check_prefix)
+ * 4) 2-byte size indiciator, 20*Number of enrolled identifiers without plus 9
+ * ((enrolled_num + 1) * 0x20)
+ * 5) Hard-coded 32 * 0x00 bytes
+ * 6) All of the currently registered prints in their 32-byte device identifiers
+ * (enrolled_list)
+ * 7) Hard-coded suffix (cmd_check_suffix)
*/
- const gsize body_length = sizeof (guchar) * self->enrolled_num * EGISMOC_FINGERPRINT_DATA_SIZE;
+ const gsize body_length = sizeof (guchar) * self->enrolled_num *
+ EGISMOC_FINGERPRINT_DATA_SIZE;
/* prefix length can depend on the type */
- const gsize check_prefix_length = (fpi_device_get_driver_data (device) & EGISMOC_DRIVER_CHECK_PREFIX_TYPE2) ?
- cmd_check_prefix_type2_len : cmd_check_prefix_type1_len;
+ const gsize check_prefix_length = (fpi_device_get_driver_data (device) &
+ EGISMOC_DRIVER_CHECK_PREFIX_TYPE2) ?
+ cmd_check_prefix_type2_len :
+ cmd_check_prefix_type1_len;
- /* total_length is the 6 various bytes plus all other prefixes/suffixes and the body payload */
+ /* total_length is the 6 various bytes plus all other prefixes/suffixes and
+ * the body payload */
const gsize total_length = (sizeof (guchar) * 6)
+ check_prefix_length
+ EGISMOC_CMD_CHECK_SEPARATOR_LENGTH
@@ -865,20 +920,24 @@ egismoc_get_check_cmd (FpDevice *device,
pos = 2;
/* Size Counter bytes */
- /* "easiest" way to handle 2-bytes size for counter is to hard-code logic for when we go to the 2nd byte */
- /* note this will not work in case any model ever supports more than 14 prints (assumed max is 10) */
+ /* "easiest" way to handle 2-bytes size for counter is to hard-code logic for
+ * when we go to the 2nd byte
+ * note this will not work in case any model ever supports more than 14 prints
+ * (assumed max is 10) */
if (self->enrolled_num > 6)
{
memset (result + pos, 0x01, sizeof (guchar));
pos += sizeof (guchar);
- memset (result + pos, ((self->enrolled_num - 7) * 0x20) + 0x09, sizeof (guchar));
+ memset (result + pos, ((self->enrolled_num - 7) * 0x20) + 0x09,
+ sizeof (guchar));
pos += sizeof (guchar);
}
else
{
/* first byte is 0x00, just skip it */
pos += sizeof (guchar);
- memset (result + pos, ((self->enrolled_num + 1) * 0x20) + 0x09, sizeof (guchar));
+ memset (result + pos, ((self->enrolled_num + 1) * 0x20) + 0x09,
+ sizeof (guchar));
pos += sizeof (guchar);
}
@@ -918,7 +977,7 @@ egismoc_get_check_cmd (FpDevice *device,
for (int i = 0; i < self->enrolled_num; i++)
{
- device_print_id = g_ptr_array_index (self->enrolled_ids, i);
+ gchar *device_print_id = g_ptr_array_index (self->enrolled_ids, i);
memcpy (result + pos + (print_id_length * i), device_print_id, print_id_length);
}
pos += body_length;
@@ -948,7 +1007,8 @@ egismoc_enroll_run_state (FpiSsm *ssm,
{
case ENROLL_GET_ENROLLED_IDS:
/* get enrolled_ids and enrolled_num from device for use in check stages below */
- egismoc_exec_cmd (device, cmd_list, cmd_list_len, NULL, egismoc_list_fill_enrolled_ids_cb);
+ egismoc_exec_cmd (device, cmd_list, cmd_list_len,
+ NULL, egismoc_list_fill_enrolled_ids_cb);
break;
case ENROLL_CHECK_ENROLLED_NUM:
@@ -962,11 +1022,13 @@ egismoc_enroll_run_state (FpiSsm *ssm,
break;
case ENROLL_SENSOR_RESET:
- egismoc_exec_cmd (device, cmd_sensor_reset, cmd_sensor_reset_len, NULL, egismoc_task_ssm_next_state_cb);
+ egismoc_exec_cmd (device, cmd_sensor_reset, cmd_sensor_reset_len,
+ NULL, egismoc_task_ssm_next_state_cb);
break;
case ENROLL_SENSOR_ENROLL:
- egismoc_exec_cmd (device, cmd_sensor_enroll, cmd_sensor_enroll_len, NULL, egismoc_task_ssm_next_state_cb);
+ egismoc_exec_cmd (device, cmd_sensor_enroll, cmd_sensor_enroll_len,
+ NULL, egismoc_task_ssm_next_state_cb);
break;
case ENROLL_WAIT_FINGER:
@@ -974,24 +1036,29 @@ egismoc_enroll_run_state (FpiSsm *ssm,
break;
case ENROLL_SENSOR_CHECK:
- egismoc_exec_cmd (device, cmd_sensor_check, cmd_sensor_check_len, NULL, egismoc_task_ssm_next_state_cb);
+ egismoc_exec_cmd (device, cmd_sensor_check, cmd_sensor_check_len,
+ NULL, egismoc_task_ssm_next_state_cb);
break;
case ENROLL_CHECK:
payload = egismoc_get_check_cmd (device, &payload_length);
- egismoc_exec_cmd (device, g_steal_pointer (&payload), payload_length, g_free, egismoc_enroll_check_cb);
+ egismoc_exec_cmd (device, g_steal_pointer (&payload), payload_length,
+ g_free, egismoc_enroll_check_cb);
break;
case ENROLL_START:
- egismoc_exec_cmd (device, cmd_enroll_starting, cmd_enroll_starting_len, NULL, egismoc_task_ssm_next_state_cb);
+ egismoc_exec_cmd (device, cmd_enroll_starting, cmd_enroll_starting_len,
+ NULL, egismoc_task_ssm_next_state_cb);
break;
case ENROLL_CAPTURE_SENSOR_RESET:
- egismoc_exec_cmd (device, cmd_sensor_reset, cmd_sensor_reset_len, NULL, egismoc_task_ssm_next_state_cb);
+ egismoc_exec_cmd (device, cmd_sensor_reset, cmd_sensor_reset_len,
+ NULL, egismoc_task_ssm_next_state_cb);
break;
case ENROLL_CAPTURE_SENSOR_START_CAPTURE:
- egismoc_exec_cmd (device, cmd_sensor_start_capture, cmd_sensor_start_capture_len, NULL,
+ egismoc_exec_cmd (device, cmd_sensor_start_capture, cmd_sensor_start_capture_len,
+ NULL,
egismoc_task_ssm_next_state_cb);
break;
@@ -1000,11 +1067,13 @@ egismoc_enroll_run_state (FpiSsm *ssm,
break;
case ENROLL_CAPTURE_READ_RESPONSE:
- egismoc_exec_cmd (device, cmd_read_capture, cmd_read_capture_len, NULL, egismoc_read_capture_cb);
+ egismoc_exec_cmd (device, cmd_read_capture, cmd_read_capture_len,
+ NULL, egismoc_read_capture_cb);
break;
case ENROLL_COMMIT_START:
- egismoc_exec_cmd (device, cmd_commit_starting, cmd_commit_starting_len, NULL, egismoc_task_ssm_next_state_cb);
+ egismoc_exec_cmd (device, cmd_commit_starting, cmd_commit_starting_len,
+ NULL, egismoc_task_ssm_next_state_cb);
break;
case ENROLL_COMMIT:
@@ -1019,13 +1088,16 @@ egismoc_enroll_run_state (FpiSsm *ssm,
payload_length = cmd_new_print_prefix_len + EGISMOC_FINGERPRINT_DATA_SIZE;
payload = g_malloc0 (payload_length);
memcpy (payload, cmd_new_print_prefix, cmd_new_print_prefix_len);
- memcpy (payload + cmd_new_print_prefix_len, device_print_id, EGISMOC_FINGERPRINT_DATA_SIZE);
+ memcpy (payload + cmd_new_print_prefix_len, device_print_id,
+ EGISMOC_FINGERPRINT_DATA_SIZE);
- egismoc_exec_cmd (device, g_steal_pointer (&payload), payload_length, g_free, egismoc_task_ssm_next_state_cb);
+ egismoc_exec_cmd (device, g_steal_pointer (&payload), payload_length,
+ g_free, egismoc_task_ssm_next_state_cb);
break;
case ENROLL_COMMIT_SENSOR_RESET:
- egismoc_exec_cmd (device, cmd_sensor_reset, cmd_sensor_reset_len, NULL, egismoc_task_ssm_next_state_cb);
+ egismoc_exec_cmd (device, cmd_sensor_reset, cmd_sensor_reset_len,
+ NULL, egismoc_task_ssm_next_state_cb);
break;
case ENROLL_COMPLETE:
@@ -1085,7 +1157,9 @@ egismoc_identify_check_cb (FpDevice *device,
buffer_in + EGISMOC_IDENTIFY_RESPONSE_PRINT_ID_OFFSET,
EGISMOC_FINGERPRINT_DATA_SIZE);
- /* Create a new print from this device_print_id and then see if it matches the one indicated */
+ /* Create a new print from this device_print_id and then see if it matches
+ * the one indicated
+ */
print = fp_print_new (device);
egismoc_set_print_data (print, device_print_id, NULL);
@@ -1093,7 +1167,8 @@ egismoc_identify_check_cb (FpDevice *device,
{
fpi_ssm_mark_failed (self->task_ssm,
fpi_device_error_new_msg (FP_DEVICE_ERROR_DATA_INVALID,
- "Failed to build a print from device response."));
+ "Failed to build a print from "
+ "device response."));
return;
}
@@ -1148,8 +1223,9 @@ egismoc_identify_check_cb (FpDevice *device,
}
else
{
- fpi_ssm_mark_failed (self->task_ssm, fpi_device_error_new_msg (FP_DEVICE_ERROR_PROTO,
- "Unrecognized response from device."));
+ fpi_ssm_mark_failed (self->task_ssm,
+ fpi_device_error_new_msg (FP_DEVICE_ERROR_PROTO,
+ "Unrecognized response from device."));
}
}
@@ -1165,7 +1241,8 @@ egismoc_identify_run_state (FpiSsm *ssm,
{
case IDENTIFY_GET_ENROLLED_IDS:
/* get enrolled_ids and enrolled_num from device for use in check stages below */
- egismoc_exec_cmd (device, cmd_list, cmd_list_len, NULL, egismoc_list_fill_enrolled_ids_cb);
+ egismoc_exec_cmd (device, cmd_list, cmd_list_len,
+ NULL, egismoc_list_fill_enrolled_ids_cb);
break;
case IDENTIFY_CHECK_ENROLLED_NUM:
@@ -1179,11 +1256,13 @@ egismoc_identify_run_state (FpiSsm *ssm,
break;
case IDENTIFY_SENSOR_RESET:
- egismoc_exec_cmd (device, cmd_sensor_reset, cmd_sensor_reset_len, NULL, egismoc_task_ssm_next_state_cb);
+ egismoc_exec_cmd (device, cmd_sensor_reset, cmd_sensor_reset_len,
+ NULL, egismoc_task_ssm_next_state_cb);
break;
case IDENTIFY_SENSOR_IDENTIFY:
- egismoc_exec_cmd (device, cmd_sensor_identify, cmd_sensor_identify_len, NULL, egismoc_task_ssm_next_state_cb);
+ egismoc_exec_cmd (device, cmd_sensor_identify, cmd_sensor_identify_len,
+ NULL, egismoc_task_ssm_next_state_cb);
break;
case IDENTIFY_WAIT_FINGER:
@@ -1191,26 +1270,30 @@ egismoc_identify_run_state (FpiSsm *ssm,
break;
case IDENTIFY_SENSOR_CHECK:
- egismoc_exec_cmd (device, cmd_sensor_check, cmd_sensor_check_len, NULL, egismoc_task_ssm_next_state_cb);
+ egismoc_exec_cmd (device, cmd_sensor_check, cmd_sensor_check_len,
+ NULL, egismoc_task_ssm_next_state_cb);
break;
case IDENTIFY_CHECK:
payload = egismoc_get_check_cmd (device, &payload_length);
- egismoc_exec_cmd (device, g_steal_pointer (&payload), payload_length, g_free, egismoc_identify_check_cb);
+ egismoc_exec_cmd (device, g_steal_pointer (&payload), payload_length,
+ g_free, egismoc_identify_check_cb);
break;
case IDENTIFY_COMPLETE_SENSOR_RESET:
- egismoc_exec_cmd (device, cmd_sensor_reset, cmd_sensor_reset_len, NULL, egismoc_task_ssm_next_state_cb);
+ egismoc_exec_cmd (device, cmd_sensor_reset, cmd_sensor_reset_len,
+ NULL, egismoc_task_ssm_next_state_cb);
break;
/*
- In Windows, the driver seems at this point to then immediately take another read from the sensor;
- this is suspected to be an on-chip "verify". However, because the user's finger is still on the
- sensor from the identify, then it seems to always return positive. We will consider this extra
- step unnecessary and just skip it in this driver. This driver will instead handle matching of the
- FpPrint from the gallery in the "verify" case of the callback egismoc_identify_check_cb.
+ * In Windows, the driver seems at this point to then immediately take
+ * another read from the sensor; this is suspected to be an on-chip
+ * "verify". However, because the user's finger is still on the sensor from
+ * the identify, then it seems to always return positive. We will consider
+ * this extra step unnecessary and just skip it in this driver. This driver
+ * will instead handle matching of the FpPrint from the gallery in the
+ * "verify" case of the callback egismoc_identify_check_cb.
*/
-
case IDENTIFY_COMPLETE:
if (fpi_device_get_current_action (device) == FPI_DEVICE_ACTION_IDENTIFY)
fpi_device_identify_complete (device, NULL);
@@ -1258,14 +1341,16 @@ egismoc_fw_version_cb (FpDevice *device,
{
fpi_ssm_mark_failed (self->task_ssm,
fpi_device_error_new_msg (FP_DEVICE_ERROR_PROTO,
- "Device firmware response was not valid."));
+ "Device firmware response "
+ "was not valid."));
return;
}
/*
- FW Version is 12 bytes: a carriage return (0x0d) plus the version string itself.
- Always skip [the read prefix] + [2 * check bytes] + [3 * 0x00] that come with every payload
- Then we will also skip the carriage return and take all but the last 2 bytes as the FW Version
+ * FW Version is 12 bytes: a carriage return (0x0d) plus the version string
+ * itself. Always skip [the read prefix] + [2 * check bytes] + [3 * 0x00] that
+ * come with every payload Then we will also skip the carriage return and take
+ * all but the last 2 bytes as the FW Version
*/
prefix_length = egismoc_read_prefix_len + 2 + 3 + 1;
fw_version_length = length_in - prefix_length - rsp_fw_version_suffix_len;
@@ -1346,7 +1431,8 @@ egismoc_dev_init_handler (FpiSsm *ssm,
break;
case DEV_GET_FW_VERSION:
- egismoc_exec_cmd (device, cmd_fw_version, cmd_fw_version_len, NULL, egismoc_fw_version_cb);
+ egismoc_exec_cmd (device, cmd_fw_version, cmd_fw_version_len,
+ NULL, egismoc_fw_version_cb);
break;
}
@@ -1406,7 +1492,8 @@ egismoc_close (FpDevice *device)
egismoc_cancel (device);
g_clear_object (&self->interrupt_cancellable);
- g_usb_device_release_interface (fpi_device_get_usb_device (device), 0, 0, &error);
+ g_usb_device_release_interface (fpi_device_get_usb_device (device),
+ 0, 0, &error);
fpi_device_close_complete (device, error);
}
@@ -1428,7 +1515,8 @@ fpi_device_egismoc_class_init (FpiDeviceEgisMocClass *klass)
dev_class->scan_type = FP_SCAN_TYPE_PRESS;
dev_class->id_table = egismoc_id_table;
dev_class->nr_enroll_stages = EGISMOC_ENROLL_TIMES;
- dev_class->temp_hot_seconds = 0; /* device should be "always off" unless being used */
+ /* device should be "always off" unless being used */
+ dev_class->temp_hot_seconds = 0;
dev_class->open = egismoc_open;
dev_class->cancel = egismoc_cancel;
diff --git a/libfprint/drivers/egismoc/egismoc.h b/libfprint/drivers/egismoc/egismoc.h
index 65b5032..f027ea2 100644
--- a/libfprint/drivers/egismoc/egismoc.h
+++ b/libfprint/drivers/egismoc/egismoc.h
@@ -55,19 +55,6 @@ G_DECLARE_FINAL_TYPE (FpiDeviceEgisMoc, fpi_device_egismoc, FPI, DEVICE_EGISMOC,
#define EGISMOC_LIST_RESPONSE_PREFIX_SIZE 14
#define EGISMOC_LIST_RESPONSE_SUFFIX_SIZE 2
-struct _FpiDeviceEgisMoc
-{
- FpDevice parent;
- FpiSsm *task_ssm;
- FpiSsm *cmd_ssm;
- FpiUsbTransfer *cmd_transfer;
- GCancellable *interrupt_cancellable;
-
- int enrolled_num;
- GPtrArray *enrolled_ids;
-};
-
-
/* standard prefixes for all read/writes */
static guchar egismoc_write_prefix[] = {'E', 'G', 'I', 'S', 0x00, 0x00, 0x00, 0x01};