From 981f8e0a4200d970b3dc3c0f2402aca35da2326a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marco=20Trevisan=20=28Trevi=C3=B1o=29?= Date: Thu, 13 Feb 2025 02:47:17 +0100 Subject: [PATCH] virtual-image: Only receive image when waiting for finger We may send an image when not waiting it, leading to a failure: libfprint-image_device-DEBUG: 00:55:29.669: Image device internal state change from FPI_IMAGE_DEVICE_STATE_DEACTIVATING to FPI_IMAGE_DEVICE_STATE_INACTIVE libfprint-image-DEBUG: 00:55:31.861: Minutiae scan completed in 2.204906 secs libfprint-print-DEBUG: 00:55:56.902: score 1093/40 libfprint-device-DEBUG: 00:55:56.902: Device reported verify result libfprint-device-DEBUG: 00:55:56.902: Device reported verify completion libfprint-device-DEBUG: 00:55:56.903: Updated temperature model after 27.26 seconds, ratio 0.69 -> 0.73, active 1 -> 1, FP_TEMPERATURE_WARM -> FP_TEMPERATURE_HOT libfprint-device-DEBUG: 00:55:56.906: Completing action FPI_DEVICE_ACTION_VERIFY in idle! libfprint-device-DEBUG: 00:55:56.906: Updated temperature model after 0.00 seconds, ratio 0.73 -> 0.73, active 0 -> 0, FP_TEMPERATURE_HOT -> FP_TEMPERATURE_HOT libfprint-device-DEBUG: 00:55:56.910: Updated temperature model after 0.00 seconds, ratio 0.73 -> 0.73, active 1 -> 1, FP_TEMPERATURE_HOT -> FP_TEMPERATURE_HOT libfprint-device-DEBUG: 00:55:56.910: Updated temperature model after 0.00 seconds, ratio 0.73 -> 0.73, active 0 -> 0, FP_TEMPERATURE_HOT -> FP_TEMPERATURE_HOT libfprint-virtual_image-DEBUG: 00:55:56.912: image data: 0xc8f6c10 libfprint-device-DEBUG: 00:55:56.916: Device reported finger status change: FP_FINGER_STATUS_PRESENT libfprint-image_device-DEBUG: 00:55:56.917: Ignoring finger presence report as the device is not active! libfprint-image_device-CRITICAL **: 00:55:56.918: fpi_image_device_image_captured: assertion 'priv->state == FPI_IMAGE_DEVICE_STATE_CAPTURE' failed --- libfprint/drivers/virtual-image.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libfprint/drivers/virtual-image.c b/libfprint/drivers/virtual-image.c index 18657c47..df8ddbf4 100644 --- a/libfprint/drivers/virtual-image.c +++ b/libfprint/drivers/virtual-image.c @@ -191,12 +191,12 @@ on_listener_connected (FpiDeviceVirtualListener *listener, switch (state) { - case FPI_IMAGE_DEVICE_STATE_IDLE: case FPI_IMAGE_DEVICE_STATE_AWAIT_FINGER_ON: case FPI_IMAGE_DEVICE_STATE_CAPTURE: - case FPI_IMAGE_DEVICE_STATE_AWAIT_FINGER_OFF: recv_image (self); + case FPI_IMAGE_DEVICE_STATE_IDLE: + case FPI_IMAGE_DEVICE_STATE_AWAIT_FINGER_OFF: case FPI_IMAGE_DEVICE_STATE_INACTIVE: case FPI_IMAGE_DEVICE_STATE_ACTIVATING: case FPI_IMAGE_DEVICE_STATE_DEACTIVATING: