virtual-device: Add command to change the number of enroll stages

As per this don't use the class value anymore at enroll phase, as it may
differ.
This commit is contained in:
Marco Trevisan (Treviño)
2021-01-24 15:43:49 +01:00
parent 665de7813b
commit 56bcf1ffdd
2 changed files with 45 additions and 2 deletions

View File

@@ -40,6 +40,7 @@ G_DEFINE_TYPE (FpDeviceVirtualDevice, fpi_device_virtual_device, FP_TYPE_DEVICE)
#define ERROR_CMD_PREFIX "ERROR "
#define RETRY_CMD_PREFIX "RETRY "
#define FINGER_CMD_PREFIX "FINGER "
#define SET_ENROLL_STAGES_PREFIX "SET_ENROLL_STAGES "
#define LIST_CMD "LIST"
@@ -196,6 +197,13 @@ recv_instruction_cb (GObject *source_object,
if (self->prints_storage)
g_hash_table_foreach (self->prints_storage, write_key_to_listener, listener);
}
else if (g_str_has_prefix (cmd, SET_ENROLL_STAGES_PREFIX))
{
guint stages;
stages = g_ascii_strtoull (cmd + strlen (SET_ENROLL_STAGES_PREFIX), NULL, 10);
fpi_device_set_nr_enroll_stages (FP_DEVICE (self), stages);
}
else
{
g_ptr_array_add (self->pending_commands, g_steal_pointer (&cmd));
@@ -376,7 +384,7 @@ dev_enroll (FpDevice *dev)
self->enroll_stages_passed++;
fpi_device_enroll_progress (dev, self->enroll_stages_passed, print, NULL);
if (self->enroll_stages_passed == FP_DEVICE_GET_CLASS (self)->nr_enroll_stages)
if (self->enroll_stages_passed == fp_device_get_nr_enroll_stages (FP_DEVICE (self)))
{
if (self->prints_storage)
{