mirror of
https://gitlab.freedesktop.org/libfprint/libfprint.git
synced 2026-09-10 13:00:08 +00:00
secugen: Use autopointers
This commit is contained in:
+51
-61
@@ -331,7 +331,7 @@ secugen_ctrl_out (FpiSsm *ssm,
|
|||||||
guint16 value,
|
guint16 value,
|
||||||
guint16 idx)
|
guint16 idx)
|
||||||
{
|
{
|
||||||
FpiUsbTransfer *transfer = fpi_usb_transfer_new (FP_DEVICE (dev));
|
g_autoptr(FpiUsbTransfer) transfer = fpi_usb_transfer_new (FP_DEVICE (dev));
|
||||||
|
|
||||||
fpi_usb_transfer_fill_control (transfer,
|
fpi_usb_transfer_fill_control (transfer,
|
||||||
G_USB_DEVICE_DIRECTION_HOST_TO_DEVICE,
|
G_USB_DEVICE_DIRECTION_HOST_TO_DEVICE,
|
||||||
@@ -339,7 +339,7 @@ secugen_ctrl_out (FpiSsm *ssm,
|
|||||||
G_USB_DEVICE_RECIPIENT_DEVICE,
|
G_USB_DEVICE_RECIPIENT_DEVICE,
|
||||||
request, value, idx, 0);
|
request, value, idx, 0);
|
||||||
transfer->ssm = ssm;
|
transfer->ssm = ssm;
|
||||||
fpi_usb_transfer_submit (transfer, SECUGEN_CTRL_TIMEOUT,
|
fpi_usb_transfer_submit (g_steal_pointer (&transfer), SECUGEN_CTRL_TIMEOUT,
|
||||||
fpi_device_get_cancellable (FP_DEVICE (dev)),
|
fpi_device_get_cancellable (FP_DEVICE (dev)),
|
||||||
fpi_ssm_usb_transfer_cb, NULL);
|
fpi_ssm_usb_transfer_cb, NULL);
|
||||||
}
|
}
|
||||||
@@ -354,7 +354,7 @@ secugen_ctrl_out_data (FpiSsm *ssm,
|
|||||||
const guint8 *data,
|
const guint8 *data,
|
||||||
gsize len)
|
gsize len)
|
||||||
{
|
{
|
||||||
FpiUsbTransfer *transfer = fpi_usb_transfer_new (FP_DEVICE (dev));
|
g_autoptr(FpiUsbTransfer) transfer = fpi_usb_transfer_new (FP_DEVICE (dev));
|
||||||
|
|
||||||
fpi_usb_transfer_fill_control (transfer,
|
fpi_usb_transfer_fill_control (transfer,
|
||||||
G_USB_DEVICE_DIRECTION_HOST_TO_DEVICE,
|
G_USB_DEVICE_DIRECTION_HOST_TO_DEVICE,
|
||||||
@@ -363,7 +363,7 @@ secugen_ctrl_out_data (FpiSsm *ssm,
|
|||||||
request, value, idx, len);
|
request, value, idx, len);
|
||||||
memcpy (transfer->buffer, data, len);
|
memcpy (transfer->buffer, data, len);
|
||||||
transfer->ssm = ssm;
|
transfer->ssm = ssm;
|
||||||
fpi_usb_transfer_submit (transfer, SECUGEN_CTRL_TIMEOUT,
|
fpi_usb_transfer_submit (g_steal_pointer (&transfer), SECUGEN_CTRL_TIMEOUT,
|
||||||
fpi_device_get_cancellable (FP_DEVICE (dev)),
|
fpi_device_get_cancellable (FP_DEVICE (dev)),
|
||||||
fpi_ssm_usb_transfer_cb, NULL);
|
fpi_ssm_usb_transfer_cb, NULL);
|
||||||
}
|
}
|
||||||
@@ -378,7 +378,7 @@ secugen_ctrl_in (FpiSsm *ssm,
|
|||||||
gsize len,
|
gsize len,
|
||||||
FpiUsbTransferCallback callback)
|
FpiUsbTransferCallback callback)
|
||||||
{
|
{
|
||||||
FpiUsbTransfer *transfer = fpi_usb_transfer_new (FP_DEVICE (dev));
|
g_autoptr(FpiUsbTransfer) transfer = fpi_usb_transfer_new (FP_DEVICE (dev));
|
||||||
|
|
||||||
fpi_usb_transfer_fill_control (transfer,
|
fpi_usb_transfer_fill_control (transfer,
|
||||||
G_USB_DEVICE_DIRECTION_DEVICE_TO_HOST,
|
G_USB_DEVICE_DIRECTION_DEVICE_TO_HOST,
|
||||||
@@ -386,7 +386,7 @@ secugen_ctrl_in (FpiSsm *ssm,
|
|||||||
G_USB_DEVICE_RECIPIENT_DEVICE,
|
G_USB_DEVICE_RECIPIENT_DEVICE,
|
||||||
request, value, idx, len);
|
request, value, idx, len);
|
||||||
transfer->ssm = ssm;
|
transfer->ssm = ssm;
|
||||||
fpi_usb_transfer_submit (transfer, SECUGEN_CTRL_TIMEOUT,
|
fpi_usb_transfer_submit (g_steal_pointer (&transfer), SECUGEN_CTRL_TIMEOUT,
|
||||||
fpi_device_get_cancellable (FP_DEVICE (dev)),
|
fpi_device_get_cancellable (FP_DEVICE (dev)),
|
||||||
callback, NULL);
|
callback, NULL);
|
||||||
}
|
}
|
||||||
@@ -626,12 +626,12 @@ init_fw_read_cb (FpiUsbTransfer *transfer,
|
|||||||
gpointer user_data,
|
gpointer user_data,
|
||||||
GError *error)
|
GError *error)
|
||||||
{
|
{
|
||||||
|
g_autoptr(GError) local_error = error;
|
||||||
FpiDeviceSecugen *self = FPI_DEVICE_SECUGEN (dev);
|
FpiDeviceSecugen *self = FPI_DEVICE_SECUGEN (dev);
|
||||||
|
|
||||||
if (error)
|
if (local_error)
|
||||||
{
|
{
|
||||||
fp_warn ("FW data read failed (non-fatal): %s", error->message);
|
fp_warn ("FW data read failed (non-fatal): %s", local_error->message);
|
||||||
g_error_free (error);
|
|
||||||
fpi_ssm_next_state (transfer->ssm);
|
fpi_ssm_next_state (transfer->ssm);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -803,22 +803,18 @@ secugen_frame_chunk_cb (FpiUsbTransfer *transfer,
|
|||||||
gpointer user_data,
|
gpointer user_data,
|
||||||
GError *error)
|
GError *error)
|
||||||
{
|
{
|
||||||
|
g_autoptr(GError) local_error = error;
|
||||||
FpiDeviceSecugen *self = FPI_DEVICE_SECUGEN (dev);
|
FpiDeviceSecugen *self = FPI_DEVICE_SECUGEN (dev);
|
||||||
gsize remaining;
|
gsize remaining;
|
||||||
gsize copied;
|
gsize copied;
|
||||||
|
|
||||||
if (error)
|
if (local_error)
|
||||||
{
|
{
|
||||||
/* A deactivate may have cancelled the transfer; unwind quietly. */
|
/* A deactivate may have cancelled the transfer; unwind quietly. */
|
||||||
if (self->deactivating)
|
if (self->deactivating)
|
||||||
{
|
fpi_ssm_mark_completed (transfer->ssm);
|
||||||
g_error_free (error);
|
|
||||||
fpi_ssm_mark_completed (transfer->ssm);
|
|
||||||
}
|
|
||||||
else
|
else
|
||||||
{
|
fpi_ssm_mark_failed (transfer->ssm, g_steal_pointer (&local_error));
|
||||||
fpi_ssm_mark_failed (transfer->ssm, error);
|
|
||||||
}
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -841,12 +837,12 @@ secugen_frame_chunk_cb (FpiUsbTransfer *transfer,
|
|||||||
* a short read means the stream has ended. */
|
* a short read means the stream has ended. */
|
||||||
if (remaining > 0 && transfer->actual_length == transfer->length)
|
if (remaining > 0 && transfer->actual_length == transfer->length)
|
||||||
{
|
{
|
||||||
FpiUsbTransfer *next = fpi_usb_transfer_new (dev);
|
g_autoptr(FpiUsbTransfer) next = fpi_usb_transfer_new (dev);
|
||||||
|
|
||||||
next->ssm = transfer->ssm;
|
next->ssm = transfer->ssm;
|
||||||
fpi_usb_transfer_fill_bulk (next, SECUGEN_EP_DATA,
|
fpi_usb_transfer_fill_bulk (next, SECUGEN_EP_DATA,
|
||||||
MIN ((gsize) SECUGEN_BULK_CHUNK, remaining));
|
MIN ((gsize) SECUGEN_BULK_CHUNK, remaining));
|
||||||
fpi_usb_transfer_submit (next, SECUGEN_BULK_TIMEOUT,
|
fpi_usb_transfer_submit (g_steal_pointer (&next), SECUGEN_BULK_TIMEOUT,
|
||||||
fpi_device_get_cancellable (dev),
|
fpi_device_get_cancellable (dev),
|
||||||
secugen_frame_chunk_cb, NULL);
|
secugen_frame_chunk_cb, NULL);
|
||||||
return;
|
return;
|
||||||
@@ -878,8 +874,8 @@ secugen_read_frame (FpiSsm *ssm,
|
|||||||
FpDevice *dev,
|
FpDevice *dev,
|
||||||
guint8 *dest)
|
guint8 *dest)
|
||||||
{
|
{
|
||||||
|
g_autoptr(FpiUsbTransfer) transfer = NULL;
|
||||||
FpiDeviceSecugen *self = FPI_DEVICE_SECUGEN (dev);
|
FpiDeviceSecugen *self = FPI_DEVICE_SECUGEN (dev);
|
||||||
FpiUsbTransfer *transfer;
|
|
||||||
|
|
||||||
self->bulk_dest = dest;
|
self->bulk_dest = dest;
|
||||||
self->bulk_offset = 0;
|
self->bulk_offset = 0;
|
||||||
@@ -889,7 +885,7 @@ secugen_read_frame (FpiSsm *ssm,
|
|||||||
fpi_usb_transfer_fill_bulk (transfer, SECUGEN_EP_DATA,
|
fpi_usb_transfer_fill_bulk (transfer, SECUGEN_EP_DATA,
|
||||||
MIN ((gsize) SECUGEN_BULK_CHUNK,
|
MIN ((gsize) SECUGEN_BULK_CHUNK,
|
||||||
(gsize) SECUGEN_BULK_BUF_SIZE));
|
(gsize) SECUGEN_BULK_BUF_SIZE));
|
||||||
fpi_usb_transfer_submit (transfer, SECUGEN_BULK_TIMEOUT,
|
fpi_usb_transfer_submit (g_steal_pointer (&transfer), SECUGEN_BULK_TIMEOUT,
|
||||||
fpi_device_get_cancellable (dev),
|
fpi_device_get_cancellable (dev),
|
||||||
secugen_frame_chunk_cb, NULL);
|
secugen_frame_chunk_cb, NULL);
|
||||||
}
|
}
|
||||||
@@ -983,7 +979,7 @@ init_run_state (FpiSsm *ssm, FpDevice *_dev)
|
|||||||
SECUGEN_FW_DATA_CHUNK;
|
SECUGEN_FW_DATA_CHUNK;
|
||||||
|
|
||||||
{
|
{
|
||||||
FpiUsbTransfer *transfer = fpi_usb_transfer_new (FP_DEVICE (dev));
|
g_autoptr(FpiUsbTransfer) transfer = fpi_usb_transfer_new (FP_DEVICE (dev));
|
||||||
|
|
||||||
fpi_usb_transfer_fill_control (transfer,
|
fpi_usb_transfer_fill_control (transfer,
|
||||||
G_USB_DEVICE_DIRECTION_DEVICE_TO_HOST,
|
G_USB_DEVICE_DIRECTION_DEVICE_TO_HOST,
|
||||||
@@ -992,7 +988,7 @@ init_run_state (FpiSsm *ssm, FpDevice *_dev)
|
|||||||
SECUGEN_REQ_READ_FW_DATA,
|
SECUGEN_REQ_READ_FW_DATA,
|
||||||
0x0000, offset, len);
|
0x0000, offset, len);
|
||||||
transfer->ssm = ssm;
|
transfer->ssm = ssm;
|
||||||
fpi_usb_transfer_submit (transfer, SECUGEN_FW_READ_TIMEOUT,
|
fpi_usb_transfer_submit (g_steal_pointer (&transfer), SECUGEN_FW_READ_TIMEOUT,
|
||||||
fpi_device_get_cancellable (FP_DEVICE (dev)),
|
fpi_device_get_cancellable (FP_DEVICE (dev)),
|
||||||
init_fw_read_cb, NULL);
|
init_fw_read_cb, NULL);
|
||||||
}
|
}
|
||||||
@@ -1222,8 +1218,8 @@ static void
|
|||||||
secugen_unsharp_mask (guint8 *image, int width, int height)
|
secugen_unsharp_mask (guint8 *image, int width, int height)
|
||||||
{
|
{
|
||||||
int total = width * height;
|
int total = width * height;
|
||||||
guint8 *original;
|
g_autofree guint8 *original = NULL;
|
||||||
guint8 *averaged;
|
g_autofree guint8 *averaged = NULL;
|
||||||
int r, c;
|
int r, c;
|
||||||
|
|
||||||
original = g_malloc (total);
|
original = g_malloc (total);
|
||||||
@@ -1278,8 +1274,6 @@ secugen_unsharp_mask (guint8 *image, int width, int height)
|
|||||||
/* else: keep original */
|
/* else: keep original */
|
||||||
}
|
}
|
||||||
|
|
||||||
g_free (averaged);
|
|
||||||
g_free (original);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -1539,8 +1533,8 @@ capture_run_state (FpiSsm *ssm, FpDevice *_dev)
|
|||||||
|
|
||||||
case CAPTURE_DONE:
|
case CAPTURE_DONE:
|
||||||
{
|
{
|
||||||
FpImage *img;
|
g_autoptr(FpImage) img = NULL;
|
||||||
guint8 *raw;
|
g_autofree guint8 *raw = NULL;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
img = fp_image_new (SECUGEN_IMG_WIDTH, SECUGEN_IMG_HEIGHT);
|
img = fp_image_new (SECUGEN_IMG_WIDTH, SECUGEN_IMG_HEIGHT);
|
||||||
@@ -1590,7 +1584,7 @@ capture_run_state (FpiSsm *ssm, FpDevice *_dev)
|
|||||||
/* Step 5: Directional sharpening (conditional) */
|
/* Step 5: Directional sharpening (conditional) */
|
||||||
if (self->sharpen_enabled)
|
if (self->sharpen_enabled)
|
||||||
{
|
{
|
||||||
guint8 *sharpened = g_malloc (SECUGEN_IMG_SIZE);
|
g_autofree guint8 *sharpened = g_malloc (SECUGEN_IMG_SIZE);
|
||||||
|
|
||||||
secugen_sharpen (img->data, sharpened,
|
secugen_sharpen (img->data, sharpened,
|
||||||
SECUGEN_IMG_WIDTH, SECUGEN_IMG_HEIGHT,
|
SECUGEN_IMG_WIDTH, SECUGEN_IMG_HEIGHT,
|
||||||
@@ -1598,16 +1592,13 @@ capture_run_state (FpiSsm *ssm, FpDevice *_dev)
|
|||||||
self->sharpen_amount,
|
self->sharpen_amount,
|
||||||
self->sharpen_limit);
|
self->sharpen_limit);
|
||||||
memcpy (img->data, sharpened, SECUGEN_IMG_SIZE);
|
memcpy (img->data, sharpened, SECUGEN_IMG_SIZE);
|
||||||
g_free (sharpened);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Step 6: Invert (bitwise NOT) */
|
/* Step 6: Invert (bitwise NOT) */
|
||||||
for (i = 0; i < SECUGEN_IMG_SIZE; i++)
|
for (i = 0; i < SECUGEN_IMG_SIZE; i++)
|
||||||
img->data[i] = ~img->data[i];
|
img->data[i] = ~img->data[i];
|
||||||
|
|
||||||
g_free (raw);
|
fpi_image_device_image_captured (dev, g_steal_pointer (&img));
|
||||||
|
|
||||||
fpi_image_device_image_captured (dev, img);
|
|
||||||
fpi_ssm_mark_completed (ssm);
|
fpi_ssm_mark_completed (ssm);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@@ -1619,6 +1610,7 @@ static void secugen_finish_deactivate (FpImageDevice *dev);
|
|||||||
static void
|
static void
|
||||||
capture_ssm_complete (FpiSsm *ssm, FpDevice *dev, GError *error)
|
capture_ssm_complete (FpiSsm *ssm, FpDevice *dev, GError *error)
|
||||||
{
|
{
|
||||||
|
g_autoptr(GError) local_error = error;
|
||||||
FpiDeviceSecugen *self = FPI_DEVICE_SECUGEN (dev);
|
FpiDeviceSecugen *self = FPI_DEVICE_SECUGEN (dev);
|
||||||
FpImageDevice *imgdev = FP_IMAGE_DEVICE (dev);
|
FpImageDevice *imgdev = FP_IMAGE_DEVICE (dev);
|
||||||
|
|
||||||
@@ -1626,16 +1618,15 @@ capture_ssm_complete (FpiSsm *ssm, FpDevice *dev, GError *error)
|
|||||||
|
|
||||||
if (self->deactivating)
|
if (self->deactivating)
|
||||||
{
|
{
|
||||||
g_clear_error (&error);
|
|
||||||
if (self->ssm_count == 0)
|
if (self->ssm_count == 0)
|
||||||
secugen_finish_deactivate (imgdev);
|
secugen_finish_deactivate (imgdev);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (error)
|
if (local_error)
|
||||||
{
|
{
|
||||||
fp_warn ("Capture failed: %s", error->message);
|
fp_warn ("Capture failed: %s", local_error->message);
|
||||||
fpi_image_device_session_error (imgdev, error);
|
fpi_image_device_session_error (imgdev, g_steal_pointer (&local_error));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1646,11 +1637,10 @@ secugen_noop_cb (FpiUsbTransfer *transfer,
|
|||||||
gpointer user_data,
|
gpointer user_data,
|
||||||
GError *error)
|
GError *error)
|
||||||
{
|
{
|
||||||
if (error)
|
g_autoptr(GError) local_error = error;
|
||||||
{
|
|
||||||
fp_warn ("Fire-and-forget transfer failed: %s", error->message);
|
if (local_error)
|
||||||
g_error_free (error);
|
fp_warn ("Fire-and-forget transfer failed: %s", local_error->message);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ================================================================
|
/* ================================================================
|
||||||
@@ -1801,22 +1791,23 @@ detect_retry_timeout (FpDevice *dev, gpointer user_data G_GNUC_UNUSED)
|
|||||||
static void
|
static void
|
||||||
detect_ssm_complete (FpiSsm *ssm, FpDevice *dev, GError *error)
|
detect_ssm_complete (FpiSsm *ssm, FpDevice *dev, GError *error)
|
||||||
{
|
{
|
||||||
|
g_autoptr(GError) local_error = error;
|
||||||
FpiDeviceSecugen *self = FPI_DEVICE_SECUGEN (dev);
|
FpiDeviceSecugen *self = FPI_DEVICE_SECUGEN (dev);
|
||||||
|
|
||||||
self->ssm_count--;
|
self->ssm_count--;
|
||||||
|
|
||||||
if (self->deactivating)
|
if (self->deactivating)
|
||||||
{
|
{
|
||||||
g_clear_error (&error);
|
|
||||||
if (self->ssm_count == 0)
|
if (self->ssm_count == 0)
|
||||||
secugen_finish_deactivate (FP_IMAGE_DEVICE (dev));
|
secugen_finish_deactivate (FP_IMAGE_DEVICE (dev));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (error)
|
if (local_error)
|
||||||
{
|
{
|
||||||
fp_warn ("Finger detect failed: %s", error->message);
|
fp_warn ("Finger detect failed: %s", local_error->message);
|
||||||
fpi_image_device_session_error (FP_IMAGE_DEVICE (dev), error);
|
fpi_image_device_session_error (FP_IMAGE_DEVICE (dev),
|
||||||
|
g_steal_pointer (&local_error));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1848,8 +1839,7 @@ finger_off_timeout (FpDevice *dev, gpointer user_data G_GNUC_UNUSED)
|
|||||||
static void
|
static void
|
||||||
dev_init (FpImageDevice *dev)
|
dev_init (FpImageDevice *dev)
|
||||||
{
|
{
|
||||||
GError *error = NULL;
|
g_autoptr(GError) error = NULL;
|
||||||
|
|
||||||
g_autoptr(GPtrArray) interfaces = NULL;
|
g_autoptr(GPtrArray) interfaces = NULL;
|
||||||
GUsbInterface *iface = NULL;
|
GUsbInterface *iface = NULL;
|
||||||
int i;
|
int i;
|
||||||
@@ -1858,7 +1848,7 @@ dev_init (FpImageDevice *dev)
|
|||||||
fpi_device_get_usb_device (FP_DEVICE (dev)), &error);
|
fpi_device_get_usb_device (FP_DEVICE (dev)), &error);
|
||||||
if (error)
|
if (error)
|
||||||
{
|
{
|
||||||
fpi_image_device_open_complete (dev, error);
|
fpi_image_device_open_complete (dev, g_steal_pointer (&error));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1893,7 +1883,7 @@ dev_init (FpImageDevice *dev)
|
|||||||
fpi_device_get_usb_device (FP_DEVICE (dev)),
|
fpi_device_get_usb_device (FP_DEVICE (dev)),
|
||||||
self->iface_num, 0, &error))
|
self->iface_num, 0, &error))
|
||||||
{
|
{
|
||||||
fpi_image_device_open_complete (dev, error);
|
fpi_image_device_open_complete (dev, g_steal_pointer (&error));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1915,8 +1905,8 @@ dev_init (FpImageDevice *dev)
|
|||||||
static void
|
static void
|
||||||
dev_deinit (FpImageDevice *dev)
|
dev_deinit (FpImageDevice *dev)
|
||||||
{
|
{
|
||||||
|
g_autoptr(GError) error = NULL;
|
||||||
FpiDeviceSecugen *self = FPI_DEVICE_SECUGEN (dev);
|
FpiDeviceSecugen *self = FPI_DEVICE_SECUGEN (dev);
|
||||||
GError *error = NULL;
|
|
||||||
|
|
||||||
g_clear_pointer (&self->finger_poll_source, g_source_destroy);
|
g_clear_pointer (&self->finger_poll_source, g_source_destroy);
|
||||||
|
|
||||||
@@ -1930,12 +1920,13 @@ dev_deinit (FpImageDevice *dev)
|
|||||||
fpi_device_get_usb_device (FP_DEVICE (dev)),
|
fpi_device_get_usb_device (FP_DEVICE (dev)),
|
||||||
self->iface_num, 0, &error);
|
self->iface_num, 0, &error);
|
||||||
|
|
||||||
fpi_image_device_close_complete (dev, error);
|
fpi_image_device_close_complete (dev, g_steal_pointer (&error));
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
activate_complete (FpiSsm *ssm, FpDevice *dev, GError *error)
|
activate_complete (FpiSsm *ssm, FpDevice *dev, GError *error)
|
||||||
{
|
{
|
||||||
|
g_autoptr(GError) local_error = error;
|
||||||
FpiDeviceSecugen *self = FPI_DEVICE_SECUGEN (dev);
|
FpiDeviceSecugen *self = FPI_DEVICE_SECUGEN (dev);
|
||||||
FpImageDevice *imgdev = FP_IMAGE_DEVICE (dev);
|
FpImageDevice *imgdev = FP_IMAGE_DEVICE (dev);
|
||||||
|
|
||||||
@@ -1943,16 +1934,15 @@ activate_complete (FpiSsm *ssm, FpDevice *dev, GError *error)
|
|||||||
|
|
||||||
if (self->deactivating)
|
if (self->deactivating)
|
||||||
{
|
{
|
||||||
g_clear_error (&error);
|
|
||||||
if (self->ssm_count == 0)
|
if (self->ssm_count == 0)
|
||||||
secugen_finish_deactivate (imgdev);
|
secugen_finish_deactivate (imgdev);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (error)
|
if (local_error)
|
||||||
fp_warn ("Activation failed: %s", error->message);
|
fp_warn ("Activation failed: %s", local_error->message);
|
||||||
|
|
||||||
fpi_image_device_activate_complete (imgdev, error);
|
fpi_image_device_activate_complete (imgdev, g_steal_pointer (&local_error));
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@@ -1978,8 +1968,8 @@ dev_activate (FpImageDevice *dev)
|
|||||||
static void
|
static void
|
||||||
secugen_finish_deactivate (FpImageDevice *dev)
|
secugen_finish_deactivate (FpImageDevice *dev)
|
||||||
{
|
{
|
||||||
|
g_autoptr(FpiUsbTransfer) transfer = NULL;
|
||||||
FpiDeviceSecugen *self = FPI_DEVICE_SECUGEN (dev);
|
FpiDeviceSecugen *self = FPI_DEVICE_SECUGEN (dev);
|
||||||
FpiUsbTransfer *transfer;
|
|
||||||
|
|
||||||
self->deactivating = FALSE;
|
self->deactivating = FALSE;
|
||||||
|
|
||||||
@@ -1991,7 +1981,7 @@ secugen_finish_deactivate (FpImageDevice *dev)
|
|||||||
G_USB_DEVICE_RECIPIENT_DEVICE,
|
G_USB_DEVICE_RECIPIENT_DEVICE,
|
||||||
SECUGEN_REQ_LED_CONTROL,
|
SECUGEN_REQ_LED_CONTROL,
|
||||||
0x0000, 0, 0);
|
0x0000, 0, 0);
|
||||||
fpi_usb_transfer_submit (transfer, SECUGEN_CTRL_TIMEOUT, NULL,
|
fpi_usb_transfer_submit (g_steal_pointer (&transfer), SECUGEN_CTRL_TIMEOUT, NULL,
|
||||||
secugen_noop_cb, NULL);
|
secugen_noop_cb, NULL);
|
||||||
|
|
||||||
fpi_image_device_deactivate_complete (dev, NULL);
|
fpi_image_device_deactivate_complete (dev, NULL);
|
||||||
@@ -2045,7 +2035,7 @@ dev_change_state (FpImageDevice *dev,
|
|||||||
|
|
||||||
/* Turn on LED */
|
/* Turn on LED */
|
||||||
{
|
{
|
||||||
FpiUsbTransfer *transfer = fpi_usb_transfer_new (FP_DEVICE (dev));
|
g_autoptr(FpiUsbTransfer) transfer = fpi_usb_transfer_new (FP_DEVICE (dev));
|
||||||
|
|
||||||
fpi_usb_transfer_fill_control (transfer,
|
fpi_usb_transfer_fill_control (transfer,
|
||||||
G_USB_DEVICE_DIRECTION_HOST_TO_DEVICE,
|
G_USB_DEVICE_DIRECTION_HOST_TO_DEVICE,
|
||||||
@@ -2053,7 +2043,7 @@ dev_change_state (FpImageDevice *dev,
|
|||||||
G_USB_DEVICE_RECIPIENT_DEVICE,
|
G_USB_DEVICE_RECIPIENT_DEVICE,
|
||||||
SECUGEN_REQ_LED_CONTROL,
|
SECUGEN_REQ_LED_CONTROL,
|
||||||
0x0001, 0, 0);
|
0x0001, 0, 0);
|
||||||
fpi_usb_transfer_submit (transfer, SECUGEN_CTRL_TIMEOUT, NULL,
|
fpi_usb_transfer_submit (g_steal_pointer (&transfer), SECUGEN_CTRL_TIMEOUT, NULL,
|
||||||
secugen_noop_cb, NULL);
|
secugen_noop_cb, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user