ssm: Make possible to set data via function
Use the same approach of GTask, making possible to set the data from a function. Givent the fact that a SSM has now a device parameter, it's generally not needed to pass an extra data value. In such case make it possible to set it and to define a destroy-notify function to handle its destruction when freeing the SSM.
This commit is contained in:
parent
1319daba54
commit
7bc62821ee
20 changed files with 277 additions and 330 deletions
|
@ -218,7 +218,8 @@ fpi_ssm_next_state
|
||||||
fpi_ssm_jump_to_state
|
fpi_ssm_jump_to_state
|
||||||
fpi_ssm_mark_completed
|
fpi_ssm_mark_completed
|
||||||
fpi_ssm_mark_failed
|
fpi_ssm_mark_failed
|
||||||
fpi_ssm_get_user_data
|
fpi_ssm_set_data
|
||||||
|
fpi_ssm_get_data
|
||||||
fpi_ssm_get_error
|
fpi_ssm_get_error
|
||||||
fpi_ssm_dup_error
|
fpi_ssm_dup_error
|
||||||
fpi_ssm_get_cur_state
|
fpi_ssm_get_cur_state
|
||||||
|
|
|
@ -648,9 +648,9 @@ capture_read_strip_cb (FpiUsbTransfer *transfer, FpDevice *device,
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
capture_run_state (FpiSsm *ssm, FpDevice *_dev, void *user_data)
|
capture_run_state (FpiSsm *ssm, FpDevice *_dev)
|
||||||
{
|
{
|
||||||
FpImageDevice *dev = user_data;
|
FpImageDevice *dev = FP_IMAGE_DEVICE (_dev);
|
||||||
FpiDeviceAes1610 *self = FPI_DEVICE_AES1610 (_dev);
|
FpiDeviceAes1610 *self = FPI_DEVICE_AES1610 (_dev);
|
||||||
|
|
||||||
switch (fpi_ssm_get_cur_state (ssm))
|
switch (fpi_ssm_get_cur_state (ssm))
|
||||||
|
@ -690,10 +690,9 @@ capture_run_state (FpiSsm *ssm, FpDevice *_dev, void *user_data)
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
capture_sm_complete (FpiSsm *ssm, FpDevice *_dev, void *user_data,
|
capture_sm_complete (FpiSsm *ssm, FpDevice *_dev, GError *error)
|
||||||
GError *error)
|
|
||||||
{
|
{
|
||||||
FpImageDevice *dev = user_data;
|
FpImageDevice *dev = FP_IMAGE_DEVICE (_dev);
|
||||||
FpiDeviceAes1610 *self = FPI_DEVICE_AES1610 (_dev);
|
FpiDeviceAes1610 *self = FPI_DEVICE_AES1610 (_dev);
|
||||||
|
|
||||||
G_DEBUG_HERE ();
|
G_DEBUG_HERE ();
|
||||||
|
@ -727,7 +726,7 @@ start_capture (FpImageDevice *dev)
|
||||||
}
|
}
|
||||||
|
|
||||||
ssm = fpi_ssm_new (FP_DEVICE (dev), capture_run_state,
|
ssm = fpi_ssm_new (FP_DEVICE (dev), capture_run_state,
|
||||||
CAPTURE_NUM_STATES, dev);
|
CAPTURE_NUM_STATES);
|
||||||
G_DEBUG_HERE ();
|
G_DEBUG_HERE ();
|
||||||
fpi_ssm_start (ssm, capture_sm_complete);
|
fpi_ssm_start (ssm, capture_sm_complete);
|
||||||
}
|
}
|
||||||
|
@ -750,9 +749,9 @@ enum activate_states {
|
||||||
};
|
};
|
||||||
|
|
||||||
static void
|
static void
|
||||||
activate_run_state (FpiSsm *ssm, FpDevice *_dev, void *user_data)
|
activate_run_state (FpiSsm *ssm, FpDevice *_dev)
|
||||||
{
|
{
|
||||||
FpImageDevice *dev = user_data;
|
FpImageDevice *dev = FP_IMAGE_DEVICE (_dev);
|
||||||
|
|
||||||
/* activation on aes1610 seems much more straightforward compared to aes2501 */
|
/* activation on aes1610 seems much more straightforward compared to aes2501 */
|
||||||
/* verify there's anything missing here */
|
/* verify there's anything missing here */
|
||||||
|
@ -767,10 +766,9 @@ activate_run_state (FpiSsm *ssm, FpDevice *_dev, void *user_data)
|
||||||
|
|
||||||
/* jump to finger detection */
|
/* jump to finger detection */
|
||||||
static void
|
static void
|
||||||
activate_sm_complete (FpiSsm *ssm, FpDevice *_dev,
|
activate_sm_complete (FpiSsm *ssm, FpDevice *_dev, GError *error)
|
||||||
void *user_data, GError *error)
|
|
||||||
{
|
{
|
||||||
FpImageDevice *dev = user_data;
|
FpImageDevice *dev = FP_IMAGE_DEVICE (_dev);
|
||||||
|
|
||||||
fpi_image_device_activate_complete (dev, error);
|
fpi_image_device_activate_complete (dev, error);
|
||||||
|
|
||||||
|
@ -784,7 +782,7 @@ dev_activate (FpImageDevice *dev)
|
||||||
{
|
{
|
||||||
FpiDeviceAes1610 *self = FPI_DEVICE_AES1610 (dev);
|
FpiDeviceAes1610 *self = FPI_DEVICE_AES1610 (dev);
|
||||||
FpiSsm *ssm = fpi_ssm_new (FP_DEVICE (dev), activate_run_state,
|
FpiSsm *ssm = fpi_ssm_new (FP_DEVICE (dev), activate_run_state,
|
||||||
ACTIVATE_NUM_STATES, dev);
|
ACTIVATE_NUM_STATES);
|
||||||
|
|
||||||
self->read_regs_retry_count = 0;
|
self->read_regs_retry_count = 0;
|
||||||
fpi_ssm_start (ssm, activate_sm_complete);
|
fpi_ssm_start (ssm, activate_sm_complete);
|
||||||
|
|
|
@ -505,9 +505,9 @@ capture_read_strip_cb (FpiUsbTransfer *transfer, FpDevice *_dev,
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
capture_run_state (FpiSsm *ssm, FpDevice *device, void *user_data)
|
capture_run_state (FpiSsm *ssm, FpDevice *device)
|
||||||
{
|
{
|
||||||
FpImageDevice *dev = user_data;
|
FpImageDevice *dev = FP_IMAGE_DEVICE (device);
|
||||||
FpiDeviceAes2501 *self = FPI_DEVICE_AES2501 (device);
|
FpiDeviceAes2501 *self = FPI_DEVICE_AES2501 (device);
|
||||||
|
|
||||||
switch (fpi_ssm_get_cur_state (ssm))
|
switch (fpi_ssm_get_cur_state (ssm))
|
||||||
|
@ -555,10 +555,9 @@ capture_run_state (FpiSsm *ssm, FpDevice *device, void *user_data)
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
capture_sm_complete (FpiSsm *ssm, FpDevice *_dev, void *user_data,
|
capture_sm_complete (FpiSsm *ssm, FpDevice *_dev, GError *error)
|
||||||
GError *error)
|
|
||||||
{
|
{
|
||||||
FpImageDevice *dev = user_data;
|
FpImageDevice *dev = FP_IMAGE_DEVICE (_dev);
|
||||||
FpiDeviceAes2501 *self = FPI_DEVICE_AES2501 (_dev);
|
FpiDeviceAes2501 *self = FPI_DEVICE_AES2501 (_dev);
|
||||||
|
|
||||||
G_DEBUG_HERE ();
|
G_DEBUG_HERE ();
|
||||||
|
@ -595,7 +594,7 @@ start_capture (FpImageDevice *dev)
|
||||||
/* Reset gain */
|
/* Reset gain */
|
||||||
strip_scan_reqs[4].value = AES2501_ADREFHI_MAX_VALUE;
|
strip_scan_reqs[4].value = AES2501_ADREFHI_MAX_VALUE;
|
||||||
ssm = fpi_ssm_new (FP_DEVICE (dev), capture_run_state,
|
ssm = fpi_ssm_new (FP_DEVICE (dev), capture_run_state,
|
||||||
CAPTURE_NUM_STATES, dev);
|
CAPTURE_NUM_STATES);
|
||||||
G_DEBUG_HERE ();
|
G_DEBUG_HERE ();
|
||||||
fpi_ssm_start (ssm, capture_sm_complete);
|
fpi_ssm_start (ssm, capture_sm_complete);
|
||||||
}
|
}
|
||||||
|
@ -739,9 +738,9 @@ activate_init3_cb (FpImageDevice *dev, GError *error,
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
activate_run_state (FpiSsm *ssm, FpDevice *_dev, void *user_data)
|
activate_run_state (FpiSsm *ssm, FpDevice *_dev)
|
||||||
{
|
{
|
||||||
FpImageDevice *dev = user_data;
|
FpImageDevice *dev = FP_IMAGE_DEVICE (_dev);
|
||||||
|
|
||||||
/* This state machine isn't as linear as it may appear. After doing init1
|
/* This state machine isn't as linear as it may appear. After doing init1
|
||||||
* and init2 register configuration writes, we have to poll a register
|
* and init2 register configuration writes, we have to poll a register
|
||||||
|
@ -801,8 +800,7 @@ activate_run_state (FpiSsm *ssm, FpDevice *_dev, void *user_data)
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
activate_sm_complete (FpiSsm *ssm, FpDevice *dev,
|
activate_sm_complete (FpiSsm *ssm, FpDevice *dev, GError *error)
|
||||||
void *user_data, GError *error)
|
|
||||||
{
|
{
|
||||||
fpi_image_device_activate_complete (FP_IMAGE_DEVICE (dev), error);
|
fpi_image_device_activate_complete (FP_IMAGE_DEVICE (dev), error);
|
||||||
|
|
||||||
|
@ -816,7 +814,7 @@ dev_activate (FpImageDevice *dev)
|
||||||
{
|
{
|
||||||
FpiDeviceAes2501 *self = FPI_DEVICE_AES2501 (dev);
|
FpiDeviceAes2501 *self = FPI_DEVICE_AES2501 (dev);
|
||||||
FpiSsm *ssm = fpi_ssm_new (FP_DEVICE (dev), activate_run_state,
|
FpiSsm *ssm = fpi_ssm_new (FP_DEVICE (dev), activate_run_state,
|
||||||
ACTIVATE_NUM_STATES, dev);
|
ACTIVATE_NUM_STATES);
|
||||||
|
|
||||||
self->read_regs_retry_count = 0;
|
self->read_regs_retry_count = 0;
|
||||||
fpi_ssm_start (ssm, activate_sm_complete);
|
fpi_ssm_start (ssm, activate_sm_complete);
|
||||||
|
|
|
@ -121,7 +121,7 @@ finger_det_reqs_cb (FpiUsbTransfer *t, FpDevice *device,
|
||||||
gpointer user_data, GError *error)
|
gpointer user_data, GError *error)
|
||||||
{
|
{
|
||||||
FpiUsbTransfer *transfer;
|
FpiUsbTransfer *transfer;
|
||||||
FpImageDevice *dev = user_data;
|
FpImageDevice *dev = FP_IMAGE_DEVICE (device);
|
||||||
|
|
||||||
if (error)
|
if (error)
|
||||||
{
|
{
|
||||||
|
@ -321,7 +321,7 @@ capture_read_data_cb (FpiUsbTransfer *transfer, FpDevice *device,
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
capture_run_state (FpiSsm *ssm, FpDevice *dev, void *user_data)
|
capture_run_state (FpiSsm *ssm, FpDevice *dev)
|
||||||
{
|
{
|
||||||
switch (fpi_ssm_get_cur_state (ssm))
|
switch (fpi_ssm_get_cur_state (ssm))
|
||||||
{
|
{
|
||||||
|
@ -371,11 +371,10 @@ capture_run_state (FpiSsm *ssm, FpDevice *dev, void *user_data)
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
capture_sm_complete (FpiSsm *ssm, FpDevice *_dev, void *user_data,
|
capture_sm_complete (FpiSsm *ssm, FpDevice *_dev, GError *error)
|
||||||
GError *error)
|
|
||||||
{
|
{
|
||||||
FpImageDevice *dev = user_data;
|
|
||||||
FpiDeviceAes2550 *self = FPI_DEVICE_AES2550 (_dev);
|
FpiDeviceAes2550 *self = FPI_DEVICE_AES2550 (_dev);
|
||||||
|
FpImageDevice *dev = FP_IMAGE_DEVICE (self);
|
||||||
|
|
||||||
fp_dbg ("Capture completed");
|
fp_dbg ("Capture completed");
|
||||||
|
|
||||||
|
@ -408,8 +407,7 @@ start_capture (FpImageDevice *dev)
|
||||||
}
|
}
|
||||||
|
|
||||||
self->heartbeat_cnt = 0;
|
self->heartbeat_cnt = 0;
|
||||||
ssm = fpi_ssm_new (FP_DEVICE (dev), capture_run_state,
|
ssm = fpi_ssm_new (FP_DEVICE (dev), capture_run_state, CAPTURE_NUM_STATES);
|
||||||
CAPTURE_NUM_STATES, dev);
|
|
||||||
G_DEBUG_HERE ();
|
G_DEBUG_HERE ();
|
||||||
fpi_ssm_start (ssm, capture_sm_complete);
|
fpi_ssm_start (ssm, capture_sm_complete);
|
||||||
}
|
}
|
||||||
|
@ -471,7 +469,7 @@ calibrate_read_data_cb (FpiUsbTransfer *transfer, FpDevice *device,
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
activate_run_state (FpiSsm *ssm, FpDevice *dev, void *user_data)
|
activate_run_state (FpiSsm *ssm, FpDevice *dev)
|
||||||
{
|
{
|
||||||
switch (fpi_ssm_get_cur_state (ssm))
|
switch (fpi_ssm_get_cur_state (ssm))
|
||||||
{
|
{
|
||||||
|
@ -531,10 +529,9 @@ activate_run_state (FpiSsm *ssm, FpDevice *dev, void *user_data)
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
activate_sm_complete (FpiSsm *ssm, FpDevice *_dev,
|
activate_sm_complete (FpiSsm *ssm, FpDevice *_dev, GError *error)
|
||||||
void *user_data, GError *error)
|
|
||||||
{
|
{
|
||||||
FpImageDevice *dev = user_data;
|
FpImageDevice *dev = FP_IMAGE_DEVICE (_dev);
|
||||||
|
|
||||||
fpi_image_device_activate_complete (dev, error);
|
fpi_image_device_activate_complete (dev, error);
|
||||||
|
|
||||||
|
@ -547,7 +544,7 @@ static void
|
||||||
dev_activate (FpImageDevice *dev)
|
dev_activate (FpImageDevice *dev)
|
||||||
{
|
{
|
||||||
FpiSsm *ssm = fpi_ssm_new (FP_DEVICE (dev), activate_run_state,
|
FpiSsm *ssm = fpi_ssm_new (FP_DEVICE (dev), activate_run_state,
|
||||||
ACTIVATE_NUM_STATES, dev);
|
ACTIVATE_NUM_STATES);
|
||||||
|
|
||||||
fpi_ssm_start (ssm, activate_sm_complete);
|
fpi_ssm_start (ssm, activate_sm_complete);
|
||||||
}
|
}
|
||||||
|
|
|
@ -204,8 +204,7 @@ finger_det_set_idle_cmd_cb (FpiUsbTransfer *transfer,
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
finger_det_sm_complete (FpiSsm *ssm, FpDevice *_dev,
|
finger_det_sm_complete (FpiSsm *ssm, FpDevice *_dev, GError *error)
|
||||||
void *user_data, GError *error)
|
|
||||||
{
|
{
|
||||||
FpImageDevice *dev = FP_IMAGE_DEVICE (_dev);
|
FpImageDevice *dev = FP_IMAGE_DEVICE (_dev);
|
||||||
FpiDeviceAesX660 *self = FPI_DEVICE_AES_X660 (_dev);
|
FpiDeviceAesX660 *self = FPI_DEVICE_AES_X660 (_dev);
|
||||||
|
@ -233,7 +232,7 @@ finger_det_sm_complete (FpiSsm *ssm, FpDevice *_dev,
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
finger_det_run_state (FpiSsm *ssm, FpDevice *dev, void *user_data)
|
finger_det_run_state (FpiSsm *ssm, FpDevice *dev)
|
||||||
{
|
{
|
||||||
switch (fpi_ssm_get_cur_state (ssm))
|
switch (fpi_ssm_get_cur_state (ssm))
|
||||||
{
|
{
|
||||||
|
@ -272,7 +271,7 @@ start_finger_detection (FpImageDevice *dev)
|
||||||
}
|
}
|
||||||
|
|
||||||
ssm = fpi_ssm_new (FP_DEVICE (dev), finger_det_run_state,
|
ssm = fpi_ssm_new (FP_DEVICE (dev), finger_det_run_state,
|
||||||
FINGER_DET_NUM_STATES, dev);
|
FINGER_DET_NUM_STATES);
|
||||||
fpi_ssm_start (ssm, finger_det_sm_complete);
|
fpi_ssm_start (ssm, finger_det_sm_complete);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -424,7 +423,7 @@ capture_read_stripe_data_cb (FpiUsbTransfer *transfer,
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
capture_run_state (FpiSsm *ssm, FpDevice *_dev, void *user_data)
|
capture_run_state (FpiSsm *ssm, FpDevice *_dev)
|
||||||
{
|
{
|
||||||
FpiDeviceAesX660 *self = FPI_DEVICE_AES_X660 (_dev);
|
FpiDeviceAesX660 *self = FPI_DEVICE_AES_X660 (_dev);
|
||||||
FpiDeviceAesX660Private *priv = fpi_device_aes_x660_get_instance_private (self);
|
FpiDeviceAesX660Private *priv = fpi_device_aes_x660_get_instance_private (self);
|
||||||
|
@ -458,8 +457,7 @@ capture_run_state (FpiSsm *ssm, FpDevice *_dev, void *user_data)
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
capture_sm_complete (FpiSsm *ssm, FpDevice *device, void *user_data,
|
capture_sm_complete (FpiSsm *ssm, FpDevice *device, GError *error)
|
||||||
GError *error)
|
|
||||||
{
|
{
|
||||||
FpiDeviceAesX660 *self = FPI_DEVICE_AES_X660 (device);
|
FpiDeviceAesX660 *self = FPI_DEVICE_AES_X660 (device);
|
||||||
FpiDeviceAesX660Private *priv = fpi_device_aes_x660_get_instance_private (self);
|
FpiDeviceAesX660Private *priv = fpi_device_aes_x660_get_instance_private (self);
|
||||||
|
@ -496,8 +494,7 @@ start_capture (FpImageDevice *dev)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
ssm = fpi_ssm_new (FP_DEVICE (dev), capture_run_state,
|
ssm = fpi_ssm_new (FP_DEVICE (dev), capture_run_state, CAPTURE_NUM_STATES);
|
||||||
CAPTURE_NUM_STATES, dev);
|
|
||||||
G_DEBUG_HERE ();
|
G_DEBUG_HERE ();
|
||||||
fpi_ssm_start (ssm, capture_sm_complete);
|
fpi_ssm_start (ssm, capture_sm_complete);
|
||||||
}
|
}
|
||||||
|
@ -615,7 +612,7 @@ activate_read_init_cb (FpiUsbTransfer *transfer, FpDevice *device,
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
activate_run_state (FpiSsm *ssm, FpDevice *_dev, void *user_data)
|
activate_run_state (FpiSsm *ssm, FpDevice *_dev)
|
||||||
{
|
{
|
||||||
FpiDeviceAesX660 *self = FPI_DEVICE_AES_X660 (_dev);
|
FpiDeviceAesX660 *self = FPI_DEVICE_AES_X660 (_dev);
|
||||||
FpiDeviceAesX660Private *priv = fpi_device_aes_x660_get_instance_private (self);
|
FpiDeviceAesX660Private *priv = fpi_device_aes_x660_get_instance_private (self);
|
||||||
|
@ -666,8 +663,7 @@ activate_run_state (FpiSsm *ssm, FpDevice *_dev, void *user_data)
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
activate_sm_complete (FpiSsm *ssm, FpDevice *_dev,
|
activate_sm_complete (FpiSsm *ssm, FpDevice *_dev, GError *error)
|
||||||
void *user_data, GError *error)
|
|
||||||
{
|
{
|
||||||
fpi_image_device_activate_complete (FP_IMAGE_DEVICE (_dev), error);
|
fpi_image_device_activate_complete (FP_IMAGE_DEVICE (_dev), error);
|
||||||
fpi_ssm_free (ssm);
|
fpi_ssm_free (ssm);
|
||||||
|
@ -680,7 +676,7 @@ static void
|
||||||
aesX660_dev_activate (FpImageDevice *dev)
|
aesX660_dev_activate (FpImageDevice *dev)
|
||||||
{
|
{
|
||||||
FpiSsm *ssm = fpi_ssm_new (FP_DEVICE (dev), activate_run_state,
|
FpiSsm *ssm = fpi_ssm_new (FP_DEVICE (dev), activate_run_state,
|
||||||
ACTIVATE_NUM_STATES, dev);
|
ACTIVATE_NUM_STATES);
|
||||||
|
|
||||||
fpi_ssm_start (ssm, activate_sm_complete);
|
fpi_ssm_start (ssm, activate_sm_complete);
|
||||||
}
|
}
|
||||||
|
|
|
@ -457,8 +457,7 @@ enum stop_capture_states {
|
||||||
};
|
};
|
||||||
|
|
||||||
static void
|
static void
|
||||||
stop_capture_run_state (FpiSsm *ssm, FpDevice *dev,
|
stop_capture_run_state (FpiSsm *ssm, FpDevice *dev)
|
||||||
void *user_data)
|
|
||||||
{
|
{
|
||||||
G_DEBUG_HERE ();
|
G_DEBUG_HERE ();
|
||||||
|
|
||||||
|
@ -472,10 +471,9 @@ stop_capture_run_state (FpiSsm *ssm, FpDevice *dev,
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
stop_capture_complete (FpiSsm *ssm, FpDevice *_dev,
|
stop_capture_complete (FpiSsm *ssm, FpDevice *_dev, GError *error)
|
||||||
void *user_data, GError *error)
|
|
||||||
{
|
{
|
||||||
FpImageDevice *dev = user_data;
|
FpImageDevice *dev = FP_IMAGE_DEVICE (_dev);
|
||||||
FpiDeviceElan *self = FPI_DEVICE_ELAN (dev);
|
FpiDeviceElan *self = FPI_DEVICE_ELAN (dev);
|
||||||
|
|
||||||
G_DEBUG_HERE ();
|
G_DEBUG_HERE ();
|
||||||
|
@ -510,8 +508,7 @@ elan_stop_capture (FpDevice *dev)
|
||||||
elan_dev_reset_state (self);
|
elan_dev_reset_state (self);
|
||||||
|
|
||||||
FpiSsm *ssm =
|
FpiSsm *ssm =
|
||||||
fpi_ssm_new (dev, stop_capture_run_state,
|
fpi_ssm_new (dev, stop_capture_run_state, STOP_CAPTURE_NUM_STATES);
|
||||||
STOP_CAPTURE_NUM_STATES, dev);
|
|
||||||
fpi_ssm_start (ssm, stop_capture_complete);
|
fpi_ssm_start (ssm, stop_capture_complete);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -524,7 +521,7 @@ enum capture_states {
|
||||||
};
|
};
|
||||||
|
|
||||||
static void
|
static void
|
||||||
capture_run_state (FpiSsm *ssm, FpDevice *dev, void *user_data)
|
capture_run_state (FpiSsm *ssm, FpDevice *dev)
|
||||||
{
|
{
|
||||||
FpImageDevice *idev = FP_IMAGE_DEVICE (dev);
|
FpImageDevice *idev = FP_IMAGE_DEVICE (dev);
|
||||||
FpiDeviceElan *self = FPI_DEVICE_ELAN (dev);
|
FpiDeviceElan *self = FPI_DEVICE_ELAN (dev);
|
||||||
|
@ -577,10 +574,9 @@ capture_run_state (FpiSsm *ssm, FpDevice *dev, void *user_data)
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
capture_complete (FpiSsm *ssm, FpDevice *_dev, void *user_data,
|
capture_complete (FpiSsm *ssm, FpDevice *_dev, GError *error)
|
||||||
GError *error)
|
|
||||||
{
|
{
|
||||||
FpImageDevice *dev = user_data;
|
FpImageDevice *dev = FP_IMAGE_DEVICE (_dev);
|
||||||
FpiDeviceElan *self = FPI_DEVICE_ELAN (_dev);
|
FpiDeviceElan *self = FPI_DEVICE_ELAN (_dev);
|
||||||
|
|
||||||
G_DEBUG_HERE ();
|
G_DEBUG_HERE ();
|
||||||
|
@ -621,8 +617,7 @@ elan_capture (FpDevice *dev)
|
||||||
|
|
||||||
elan_dev_reset_state (self);
|
elan_dev_reset_state (self);
|
||||||
FpiSsm *ssm =
|
FpiSsm *ssm =
|
||||||
fpi_ssm_new (dev, capture_run_state, CAPTURE_NUM_STATES,
|
fpi_ssm_new (dev, capture_run_state, CAPTURE_NUM_STATES);
|
||||||
dev);
|
|
||||||
fpi_ssm_start (ssm, capture_complete);
|
fpi_ssm_start (ssm, capture_complete);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -684,7 +679,7 @@ elan_supports_calibration (FpiDeviceElan *elandev)
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
calibrate_run_state (FpiSsm *ssm, FpDevice *dev, void *user_data)
|
calibrate_run_state (FpiSsm *ssm, FpDevice *dev)
|
||||||
{
|
{
|
||||||
FpiDeviceElan *self = FPI_DEVICE_ELAN (dev);
|
FpiDeviceElan *self = FPI_DEVICE_ELAN (dev);
|
||||||
|
|
||||||
|
@ -776,8 +771,7 @@ calibrate_run_state (FpiSsm *ssm, FpDevice *dev, void *user_data)
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
calibrate_complete (FpiSsm *ssm, FpDevice *dev, void *user_data,
|
calibrate_complete (FpiSsm *ssm, FpDevice *dev, GError *error)
|
||||||
GError *error)
|
|
||||||
{
|
{
|
||||||
FpiDeviceElan *self = FPI_DEVICE_ELAN (dev);
|
FpiDeviceElan *self = FPI_DEVICE_ELAN (dev);
|
||||||
|
|
||||||
|
@ -808,7 +802,7 @@ elan_calibrate (FpDevice *dev)
|
||||||
self->calib_atts_left = ELAN_CALIBRATION_ATTEMPTS;
|
self->calib_atts_left = ELAN_CALIBRATION_ATTEMPTS;
|
||||||
|
|
||||||
FpiSsm *ssm = fpi_ssm_new (FP_DEVICE (dev), calibrate_run_state,
|
FpiSsm *ssm = fpi_ssm_new (FP_DEVICE (dev), calibrate_run_state,
|
||||||
CALIBRATE_NUM_STATES, dev);
|
CALIBRATE_NUM_STATES);
|
||||||
fpi_ssm_start (ssm, calibrate_complete);
|
fpi_ssm_start (ssm, calibrate_complete);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -822,7 +816,7 @@ enum activate_states {
|
||||||
};
|
};
|
||||||
|
|
||||||
static void
|
static void
|
||||||
activate_run_state (FpiSsm *ssm, FpDevice *dev, void *user_data)
|
activate_run_state (FpiSsm *ssm, FpDevice *dev)
|
||||||
{
|
{
|
||||||
FpiDeviceElan *self = FPI_DEVICE_ELAN (dev);
|
FpiDeviceElan *self = FPI_DEVICE_ELAN (dev);
|
||||||
|
|
||||||
|
@ -883,8 +877,7 @@ activate_run_state (FpiSsm *ssm, FpDevice *dev, void *user_data)
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
activate_complete (FpiSsm *ssm, FpDevice *dev, void *user_data,
|
activate_complete (FpiSsm *ssm, FpDevice *dev, GError *error)
|
||||||
GError *error)
|
|
||||||
{
|
{
|
||||||
FpImageDevice *idev = FP_IMAGE_DEVICE (dev);
|
FpImageDevice *idev = FP_IMAGE_DEVICE (dev);
|
||||||
|
|
||||||
|
@ -905,7 +898,7 @@ elan_activate (FpImageDevice *dev)
|
||||||
|
|
||||||
FpiSsm *ssm =
|
FpiSsm *ssm =
|
||||||
fpi_ssm_new (FP_DEVICE (dev), activate_run_state,
|
fpi_ssm_new (FP_DEVICE (dev), activate_run_state,
|
||||||
ACTIVATE_NUM_STATES, dev);
|
ACTIVATE_NUM_STATES);
|
||||||
fpi_ssm_start (ssm, activate_complete);
|
fpi_ssm_start (ssm, activate_complete);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -751,7 +751,7 @@ async_tx_cb (FpiUsbTransfer *transfer, FpDevice *device,
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
m_exit_state (FpiSsm *ssm, FpDevice *dev, void *user_data)
|
m_exit_state (FpiSsm *ssm, FpDevice *dev)
|
||||||
{
|
{
|
||||||
FpiDeviceEtes603 *self = FPI_DEVICE_ETES603 (dev);
|
FpiDeviceEtes603 *self = FPI_DEVICE_ETES603 (dev);
|
||||||
|
|
||||||
|
@ -780,8 +780,7 @@ err:
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
m_exit_complete (FpiSsm *ssm, FpDevice *dev, void *user_data,
|
m_exit_complete (FpiSsm *ssm, FpDevice *dev, GError *error)
|
||||||
GError *error)
|
|
||||||
{
|
{
|
||||||
FpImageDevice *idev = FP_IMAGE_DEVICE (dev);
|
FpImageDevice *idev = FP_IMAGE_DEVICE (dev);
|
||||||
|
|
||||||
|
@ -797,8 +796,7 @@ static void
|
||||||
m_exit_start (FpImageDevice *idev)
|
m_exit_start (FpImageDevice *idev)
|
||||||
{
|
{
|
||||||
FpiDeviceEtes603 *self = FPI_DEVICE_ETES603 (idev);
|
FpiDeviceEtes603 *self = FPI_DEVICE_ETES603 (idev);
|
||||||
FpiSsm *ssm = fpi_ssm_new (FP_DEVICE (idev), m_exit_state,
|
FpiSsm *ssm = fpi_ssm_new (FP_DEVICE (idev), m_exit_state, EXIT_NUM_STATES);
|
||||||
EXIT_NUM_STATES, idev);
|
|
||||||
|
|
||||||
self->is_active = FALSE;
|
self->is_active = FALSE;
|
||||||
fp_dbg ("Switching device to idle mode");
|
fp_dbg ("Switching device to idle mode");
|
||||||
|
@ -806,7 +804,7 @@ m_exit_start (FpImageDevice *idev)
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
m_capture_state (FpiSsm *ssm, FpDevice *dev, void *user_data)
|
m_capture_state (FpiSsm *ssm, FpDevice *dev)
|
||||||
{
|
{
|
||||||
FpImageDevice *idev = FP_IMAGE_DEVICE (dev);
|
FpImageDevice *idev = FP_IMAGE_DEVICE (dev);
|
||||||
FpiDeviceEtes603 *self = FPI_DEVICE_ETES603 (dev);
|
FpiDeviceEtes603 *self = FPI_DEVICE_ETES603 (dev);
|
||||||
|
@ -895,8 +893,7 @@ err:
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
m_capture_complete (FpiSsm *ssm, FpDevice *dev, void *user_data,
|
m_capture_complete (FpiSsm *ssm, FpDevice *dev, GError *error)
|
||||||
GError *error)
|
|
||||||
{
|
{
|
||||||
FpImageDevice *idev = FP_IMAGE_DEVICE (dev);
|
FpImageDevice *idev = FP_IMAGE_DEVICE (dev);
|
||||||
FpiDeviceEtes603 *self = FPI_DEVICE_ETES603 (dev);
|
FpiDeviceEtes603 *self = FPI_DEVICE_ETES603 (dev);
|
||||||
|
@ -929,7 +926,7 @@ m_capture_complete (FpiSsm *ssm, FpDevice *dev, void *user_data,
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
m_finger_state (FpiSsm *ssm, FpDevice *dev, void *user_data)
|
m_finger_state (FpiSsm *ssm, FpDevice *dev)
|
||||||
{
|
{
|
||||||
FpiDeviceEtes603 *self = FPI_DEVICE_ETES603 (dev);
|
FpiDeviceEtes603 *self = FPI_DEVICE_ETES603 (dev);
|
||||||
|
|
||||||
|
@ -1037,8 +1034,7 @@ err:
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
m_finger_complete (FpiSsm *ssm, FpDevice *dev, void *user_data,
|
m_finger_complete (FpiSsm *ssm, FpDevice *dev, GError *error)
|
||||||
GError *error)
|
|
||||||
{
|
{
|
||||||
FpImageDevice *idev = FP_IMAGE_DEVICE (dev);
|
FpImageDevice *idev = FP_IMAGE_DEVICE (dev);
|
||||||
FpiDeviceEtes603 *self = FPI_DEVICE_ETES603 (dev);
|
FpiDeviceEtes603 *self = FPI_DEVICE_ETES603 (dev);
|
||||||
|
@ -1046,8 +1042,7 @@ m_finger_complete (FpiSsm *ssm, FpDevice *dev, void *user_data,
|
||||||
if (!error)
|
if (!error)
|
||||||
{
|
{
|
||||||
FpiSsm *ssm_cap;
|
FpiSsm *ssm_cap;
|
||||||
ssm_cap = fpi_ssm_new (dev, m_capture_state,
|
ssm_cap = fpi_ssm_new (dev, m_capture_state, CAP_NUM_STATES);
|
||||||
CAP_NUM_STATES, NULL);
|
|
||||||
fpi_ssm_start (ssm_cap, m_capture_complete);
|
fpi_ssm_start (ssm_cap, m_capture_complete);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -1074,8 +1069,7 @@ m_start_fingerdetect (FpImageDevice *idev)
|
||||||
{
|
{
|
||||||
FpiSsm *ssmf;
|
FpiSsm *ssmf;
|
||||||
|
|
||||||
ssmf = fpi_ssm_new (FP_DEVICE (idev), m_finger_state, FGR_NUM_STATES,
|
ssmf = fpi_ssm_new (FP_DEVICE (idev), m_finger_state, FGR_NUM_STATES);
|
||||||
idev);
|
|
||||||
fpi_ssm_start (ssmf, m_finger_complete);
|
fpi_ssm_start (ssmf, m_finger_complete);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1083,7 +1077,7 @@ m_start_fingerdetect (FpImageDevice *idev)
|
||||||
* Tune value of VRT and VRB for contrast and brightness.
|
* Tune value of VRT and VRB for contrast and brightness.
|
||||||
*/
|
*/
|
||||||
static void
|
static void
|
||||||
m_tunevrb_state (FpiSsm *ssm, FpDevice *dev, void *user_data)
|
m_tunevrb_state (FpiSsm *ssm, FpDevice *dev)
|
||||||
{
|
{
|
||||||
FpiDeviceEtes603 *self = FPI_DEVICE_ETES603 (dev);
|
FpiDeviceEtes603 *self = FPI_DEVICE_ETES603 (dev);
|
||||||
float hist[5];
|
float hist[5];
|
||||||
|
@ -1256,8 +1250,7 @@ err:
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
m_tunevrb_complete (FpiSsm *ssm, FpDevice *dev, void *user_data,
|
m_tunevrb_complete (FpiSsm *ssm, FpDevice *dev, GError *error)
|
||||||
GError *error)
|
|
||||||
{
|
{
|
||||||
FpiDeviceEtes603 *self = FPI_DEVICE_ETES603 (dev);
|
FpiDeviceEtes603 *self = FPI_DEVICE_ETES603 (dev);
|
||||||
FpImageDevice *idev = FP_IMAGE_DEVICE (dev);
|
FpImageDevice *idev = FP_IMAGE_DEVICE (dev);
|
||||||
|
@ -1280,7 +1273,7 @@ m_tunevrb_complete (FpiSsm *ssm, FpDevice *dev, void *user_data,
|
||||||
* required.
|
* required.
|
||||||
*/
|
*/
|
||||||
static void
|
static void
|
||||||
m_tunedc_state (FpiSsm *ssm, FpDevice *dev, void *user_data)
|
m_tunedc_state (FpiSsm *ssm, FpDevice *dev)
|
||||||
{
|
{
|
||||||
FpiDeviceEtes603 *self = FPI_DEVICE_ETES603 (dev);
|
FpiDeviceEtes603 *self = FPI_DEVICE_ETES603 (dev);
|
||||||
|
|
||||||
|
@ -1394,8 +1387,7 @@ err:
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
m_tunedc_complete (FpiSsm *ssm, FpDevice *dev, void *user_data,
|
m_tunedc_complete (FpiSsm *ssm, FpDevice *dev, GError *error)
|
||||||
GError *error)
|
|
||||||
{
|
{
|
||||||
FpiDeviceEtes603 *self = FPI_DEVICE_ETES603 (dev);
|
FpiDeviceEtes603 *self = FPI_DEVICE_ETES603 (dev);
|
||||||
FpImageDevice *idev = FP_IMAGE_DEVICE (dev);
|
FpImageDevice *idev = FP_IMAGE_DEVICE (dev);
|
||||||
|
@ -1404,7 +1396,7 @@ m_tunedc_complete (FpiSsm *ssm, FpDevice *dev, void *user_data,
|
||||||
{
|
{
|
||||||
FpiSsm *ssm_tune;
|
FpiSsm *ssm_tune;
|
||||||
ssm_tune = fpi_ssm_new (FP_DEVICE (idev), m_tunevrb_state,
|
ssm_tune = fpi_ssm_new (FP_DEVICE (idev), m_tunevrb_state,
|
||||||
TUNEVRB_NUM_STATES, idev);
|
TUNEVRB_NUM_STATES);
|
||||||
fpi_ssm_start (ssm_tune, m_tunevrb_complete);
|
fpi_ssm_start (ssm_tune, m_tunevrb_complete);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -1421,7 +1413,7 @@ m_tunedc_complete (FpiSsm *ssm, FpDevice *dev, void *user_data,
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
m_init_state (FpiSsm *ssm, FpDevice *dev, void *user_data)
|
m_init_state (FpiSsm *ssm, FpDevice *dev)
|
||||||
{
|
{
|
||||||
FpiDeviceEtes603 *self = FPI_DEVICE_ETES603 (dev);
|
FpiDeviceEtes603 *self = FPI_DEVICE_ETES603 (dev);
|
||||||
|
|
||||||
|
@ -1534,8 +1526,7 @@ err:
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
m_init_complete (FpiSsm *ssm, FpDevice *dev, void *user_data,
|
m_init_complete (FpiSsm *ssm, FpDevice *dev, GError *error)
|
||||||
GError *error)
|
|
||||||
{
|
{
|
||||||
FpImageDevice *idev = FP_IMAGE_DEVICE (dev);
|
FpImageDevice *idev = FP_IMAGE_DEVICE (dev);
|
||||||
|
|
||||||
|
@ -1543,7 +1534,7 @@ m_init_complete (FpiSsm *ssm, FpDevice *dev, void *user_data,
|
||||||
{
|
{
|
||||||
FpiSsm *ssm_tune;
|
FpiSsm *ssm_tune;
|
||||||
ssm_tune = fpi_ssm_new (FP_DEVICE (idev), m_tunedc_state,
|
ssm_tune = fpi_ssm_new (FP_DEVICE (idev), m_tunedc_state,
|
||||||
TUNEDC_NUM_STATES, idev);
|
TUNEDC_NUM_STATES);
|
||||||
fpi_ssm_start (ssm_tune, m_tunedc_complete);
|
fpi_ssm_start (ssm_tune, m_tunedc_complete);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -1569,8 +1560,7 @@ dev_activate (FpImageDevice *idev)
|
||||||
if (self->dcoffset == 0)
|
if (self->dcoffset == 0)
|
||||||
{
|
{
|
||||||
fp_dbg ("Tuning device...");
|
fp_dbg ("Tuning device...");
|
||||||
ssm = fpi_ssm_new (FP_DEVICE (idev), m_init_state,
|
ssm = fpi_ssm_new (FP_DEVICE (idev), m_init_state, INIT_NUM_STATES);
|
||||||
INIT_NUM_STATES, idev);
|
|
||||||
fpi_ssm_start (ssm, m_init_complete);
|
fpi_ssm_start (ssm, m_init_complete);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -1579,8 +1569,7 @@ dev_activate (FpImageDevice *idev)
|
||||||
"VRB=0x%02X,GAIN=0x%02X).", self->dcoffset, self->vrt,
|
"VRB=0x%02X,GAIN=0x%02X).", self->dcoffset, self->vrt,
|
||||||
self->vrb, self->gain);
|
self->vrb, self->gain);
|
||||||
fpi_image_device_activate_complete (idev, NULL);
|
fpi_image_device_activate_complete (idev, NULL);
|
||||||
ssm = fpi_ssm_new (FP_DEVICE (idev), m_finger_state,
|
ssm = fpi_ssm_new (FP_DEVICE (idev), m_finger_state, FGR_NUM_STATES);
|
||||||
FGR_NUM_STATES, idev);
|
|
||||||
fpi_ssm_start (ssm, m_finger_complete);
|
fpi_ssm_start (ssm, m_finger_complete);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -202,8 +202,7 @@ cmd_interrupt_cb (FpiUsbTransfer *transfer,
|
||||||
|
|
||||||
static void
|
static void
|
||||||
synaptics_cmd_run_state (FpiSsm *ssm,
|
synaptics_cmd_run_state (FpiSsm *ssm,
|
||||||
FpDevice *dev,
|
FpDevice *dev)
|
||||||
void *user_data)
|
|
||||||
{
|
{
|
||||||
g_autoptr(FpiUsbTransfer) transfer = NULL;
|
g_autoptr(FpiUsbTransfer) transfer = NULL;
|
||||||
FpiDeviceSynaptics *self = FPI_DEVICE_SYNAPTICS (dev);
|
FpiDeviceSynaptics *self = FPI_DEVICE_SYNAPTICS (dev);
|
||||||
|
@ -235,7 +234,7 @@ synaptics_cmd_run_state (FpiSsm *ssm,
|
||||||
5000,
|
5000,
|
||||||
NULL,
|
NULL,
|
||||||
cmd_recieve_cb,
|
cmd_recieve_cb,
|
||||||
user_data);
|
fpi_ssm_get_data (ssm));
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -271,13 +270,10 @@ synaptics_cmd_run_state (FpiSsm *ssm,
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
cmd_ssm_done (FpiSsm *ssm,
|
cmd_ssm_done (FpiSsm *ssm, FpDevice *dev, GError *error)
|
||||||
FpDevice *dev,
|
|
||||||
void *user_data,
|
|
||||||
GError *error)
|
|
||||||
{
|
{
|
||||||
FpiDeviceSynaptics *self = FPI_DEVICE_SYNAPTICS (dev);
|
FpiDeviceSynaptics *self = FPI_DEVICE_SYNAPTICS (dev);
|
||||||
SynCmdMsgCallback callback = user_data;
|
SynCmdMsgCallback callback = fpi_ssm_get_data (ssm);
|
||||||
|
|
||||||
self->cmd_ssm = NULL;
|
self->cmd_ssm = NULL;
|
||||||
|
|
||||||
|
@ -399,8 +395,8 @@ synaptics_sensor_cmd (FpiDeviceSynaptics *self,
|
||||||
|
|
||||||
self->cmd_ssm = fpi_ssm_new (FP_DEVICE (self),
|
self->cmd_ssm = fpi_ssm_new (FP_DEVICE (self),
|
||||||
synaptics_cmd_run_state,
|
synaptics_cmd_run_state,
|
||||||
SYNAPTICS_CMD_NUM_STATES,
|
SYNAPTICS_CMD_NUM_STATES);
|
||||||
callback);
|
fpi_ssm_set_data (self->cmd_ssm, callback, NULL);
|
||||||
|
|
||||||
fpi_ssm_start (self->cmd_ssm, cmd_ssm_done);
|
fpi_ssm_start (self->cmd_ssm, cmd_ssm_done);
|
||||||
}
|
}
|
||||||
|
|
|
@ -808,10 +808,9 @@ enum awfsm_1000_states {
|
||||||
};
|
};
|
||||||
|
|
||||||
static void
|
static void
|
||||||
awfsm_2016_run_state (FpiSsm *ssm, FpDevice *_dev,
|
awfsm_2016_run_state (FpiSsm *ssm, FpDevice *_dev)
|
||||||
void *user_data)
|
|
||||||
{
|
{
|
||||||
FpImageDevice *dev = user_data;
|
FpImageDevice *dev = FP_IMAGE_DEVICE (_dev);
|
||||||
FpiDeviceUpeksonly *self = FPI_DEVICE_UPEKSONLY (_dev);
|
FpiDeviceUpeksonly *self = FPI_DEVICE_UPEKSONLY (_dev);
|
||||||
|
|
||||||
switch (fpi_ssm_get_cur_state (ssm))
|
switch (fpi_ssm_get_cur_state (ssm))
|
||||||
|
@ -867,8 +866,7 @@ awfsm_2016_run_state (FpiSsm *ssm, FpDevice *_dev,
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
awfsm_1000_run_state (FpiSsm *ssm, FpDevice *_dev,
|
awfsm_1000_run_state (FpiSsm *ssm, FpDevice *_dev)
|
||||||
void *user_data)
|
|
||||||
{
|
{
|
||||||
switch (fpi_ssm_get_cur_state (ssm))
|
switch (fpi_ssm_get_cur_state (ssm))
|
||||||
{
|
{
|
||||||
|
@ -936,10 +934,9 @@ capsm_fire_bulk (FpiSsm *ssm,
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
capsm_2016_run_state (FpiSsm *ssm, FpDevice *_dev,
|
capsm_2016_run_state (FpiSsm *ssm, FpDevice *_dev)
|
||||||
void *user_data)
|
|
||||||
{
|
{
|
||||||
FpImageDevice *dev = user_data;
|
FpImageDevice *dev = FP_IMAGE_DEVICE (_dev);
|
||||||
FpiDeviceUpeksonly *self = FPI_DEVICE_UPEKSONLY (_dev);
|
FpiDeviceUpeksonly *self = FPI_DEVICE_UPEKSONLY (_dev);
|
||||||
|
|
||||||
switch (fpi_ssm_get_cur_state (ssm))
|
switch (fpi_ssm_get_cur_state (ssm))
|
||||||
|
@ -975,8 +972,7 @@ capsm_2016_run_state (FpiSsm *ssm, FpDevice *_dev,
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
capsm_1000_run_state (FpiSsm *ssm, FpDevice *_dev,
|
capsm_1000_run_state (FpiSsm *ssm, FpDevice *_dev)
|
||||||
void *user_data)
|
|
||||||
{
|
{
|
||||||
FpiDeviceUpeksonly *self = FPI_DEVICE_UPEKSONLY (_dev);
|
FpiDeviceUpeksonly *self = FPI_DEVICE_UPEKSONLY (_dev);
|
||||||
|
|
||||||
|
@ -1005,8 +1001,7 @@ capsm_1000_run_state (FpiSsm *ssm, FpDevice *_dev,
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
capsm_1001_run_state (FpiSsm *ssm, FpDevice *_dev,
|
capsm_1001_run_state (FpiSsm *ssm, FpDevice *_dev)
|
||||||
void *user_data)
|
|
||||||
{
|
{
|
||||||
FpiDeviceUpeksonly *self = FPI_DEVICE_UPEKSONLY (_dev);
|
FpiDeviceUpeksonly *self = FPI_DEVICE_UPEKSONLY (_dev);
|
||||||
|
|
||||||
|
@ -1068,8 +1063,7 @@ enum deinitsm_1001_states {
|
||||||
};
|
};
|
||||||
|
|
||||||
static void
|
static void
|
||||||
deinitsm_2016_run_state (FpiSsm *ssm, FpDevice *_dev,
|
deinitsm_2016_run_state (FpiSsm *ssm, FpDevice *_dev)
|
||||||
void *user_data)
|
|
||||||
{
|
{
|
||||||
switch (fpi_ssm_get_cur_state (ssm))
|
switch (fpi_ssm_get_cur_state (ssm))
|
||||||
{
|
{
|
||||||
|
@ -1080,8 +1074,7 @@ deinitsm_2016_run_state (FpiSsm *ssm, FpDevice *_dev,
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
deinitsm_1000_run_state (FpiSsm *ssm, FpDevice *_dev,
|
deinitsm_1000_run_state (FpiSsm *ssm, FpDevice *_dev)
|
||||||
void *user_data)
|
|
||||||
{
|
{
|
||||||
switch (fpi_ssm_get_cur_state (ssm))
|
switch (fpi_ssm_get_cur_state (ssm))
|
||||||
{
|
{
|
||||||
|
@ -1092,8 +1085,7 @@ deinitsm_1000_run_state (FpiSsm *ssm, FpDevice *_dev,
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
deinitsm_1001_run_state (FpiSsm *ssm, FpDevice *_dev,
|
deinitsm_1001_run_state (FpiSsm *ssm, FpDevice *_dev)
|
||||||
void *user_data)
|
|
||||||
{
|
{
|
||||||
switch (fpi_ssm_get_cur_state (ssm))
|
switch (fpi_ssm_get_cur_state (ssm))
|
||||||
{
|
{
|
||||||
|
@ -1131,10 +1123,9 @@ enum initsm_1001_states {
|
||||||
};
|
};
|
||||||
|
|
||||||
static void
|
static void
|
||||||
initsm_2016_run_state (FpiSsm *ssm, FpDevice *_dev,
|
initsm_2016_run_state (FpiSsm *ssm, FpDevice *_dev)
|
||||||
void *user_data)
|
|
||||||
{
|
{
|
||||||
FpImageDevice *dev = user_data;
|
FpImageDevice *dev = FP_IMAGE_DEVICE (_dev);
|
||||||
FpiDeviceUpeksonly *self = FPI_DEVICE_UPEKSONLY (_dev);
|
FpiDeviceUpeksonly *self = FPI_DEVICE_UPEKSONLY (_dev);
|
||||||
|
|
||||||
switch (fpi_ssm_get_cur_state (ssm))
|
switch (fpi_ssm_get_cur_state (ssm))
|
||||||
|
@ -1170,8 +1161,7 @@ initsm_2016_run_state (FpiSsm *ssm, FpDevice *_dev,
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
initsm_1000_run_state (FpiSsm *ssm, FpDevice *_dev,
|
initsm_1000_run_state (FpiSsm *ssm, FpDevice *_dev)
|
||||||
void *user_data)
|
|
||||||
{
|
{
|
||||||
switch (fpi_ssm_get_cur_state (ssm))
|
switch (fpi_ssm_get_cur_state (ssm))
|
||||||
{
|
{
|
||||||
|
@ -1182,8 +1172,7 @@ initsm_1000_run_state (FpiSsm *ssm, FpDevice *_dev,
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
initsm_1001_run_state (FpiSsm *ssm, FpDevice *_dev,
|
initsm_1001_run_state (FpiSsm *ssm, FpDevice *_dev)
|
||||||
void *user_data)
|
|
||||||
{
|
{
|
||||||
switch (fpi_ssm_get_cur_state (ssm))
|
switch (fpi_ssm_get_cur_state (ssm))
|
||||||
{
|
{
|
||||||
|
@ -1222,9 +1211,9 @@ enum loopsm_states {
|
||||||
};
|
};
|
||||||
|
|
||||||
static void
|
static void
|
||||||
loopsm_run_state (FpiSsm *ssm, FpDevice *_dev, void *user_data)
|
loopsm_run_state (FpiSsm *ssm, FpDevice *_dev)
|
||||||
{
|
{
|
||||||
FpImageDevice *dev = user_data;
|
FpImageDevice *dev = FP_IMAGE_DEVICE (_dev);
|
||||||
FpiDeviceUpeksonly *self = FPI_DEVICE_UPEKSONLY (_dev);
|
FpiDeviceUpeksonly *self = FPI_DEVICE_UPEKSONLY (_dev);
|
||||||
|
|
||||||
switch (fpi_ssm_get_cur_state (ssm))
|
switch (fpi_ssm_get_cur_state (ssm))
|
||||||
|
@ -1252,15 +1241,13 @@ loopsm_run_state (FpiSsm *ssm, FpDevice *_dev, void *user_data)
|
||||||
case UPEKSONLY_2016:
|
case UPEKSONLY_2016:
|
||||||
awfsm = fpi_ssm_new (FP_DEVICE (dev),
|
awfsm = fpi_ssm_new (FP_DEVICE (dev),
|
||||||
awfsm_2016_run_state,
|
awfsm_2016_run_state,
|
||||||
AWFSM_2016_NUM_STATES,
|
AWFSM_2016_NUM_STATES);
|
||||||
dev);
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case UPEKSONLY_1000:
|
case UPEKSONLY_1000:
|
||||||
awfsm = fpi_ssm_new (FP_DEVICE (dev),
|
awfsm = fpi_ssm_new (FP_DEVICE (dev),
|
||||||
awfsm_1000_run_state,
|
awfsm_1000_run_state,
|
||||||
AWFSM_1000_NUM_STATES,
|
AWFSM_1000_NUM_STATES);
|
||||||
dev);
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
fpi_ssm_start_subsm (ssm, awfsm);
|
fpi_ssm_start_subsm (ssm, awfsm);
|
||||||
|
@ -1289,19 +1276,19 @@ loopsm_run_state (FpiSsm *ssm, FpDevice *_dev, void *user_data)
|
||||||
case UPEKSONLY_2016:
|
case UPEKSONLY_2016:
|
||||||
capsm = fpi_ssm_new (FP_DEVICE (dev),
|
capsm = fpi_ssm_new (FP_DEVICE (dev),
|
||||||
capsm_2016_run_state,
|
capsm_2016_run_state,
|
||||||
CAPSM_2016_NUM_STATES, dev);
|
CAPSM_2016_NUM_STATES);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case UPEKSONLY_1000:
|
case UPEKSONLY_1000:
|
||||||
capsm = fpi_ssm_new (FP_DEVICE (dev),
|
capsm = fpi_ssm_new (FP_DEVICE (dev),
|
||||||
capsm_1000_run_state,
|
capsm_1000_run_state,
|
||||||
CAPSM_1000_NUM_STATES, dev);
|
CAPSM_1000_NUM_STATES);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case UPEKSONLY_1001:
|
case UPEKSONLY_1001:
|
||||||
capsm = fpi_ssm_new (FP_DEVICE (dev),
|
capsm = fpi_ssm_new (FP_DEVICE (dev),
|
||||||
capsm_1001_run_state,
|
capsm_1001_run_state,
|
||||||
CAPSM_1001_NUM_STATES, dev);
|
CAPSM_1001_NUM_STATES);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
fpi_ssm_start_subsm (ssm, capsm);
|
fpi_ssm_start_subsm (ssm, capsm);
|
||||||
|
@ -1317,19 +1304,19 @@ loopsm_run_state (FpiSsm *ssm, FpDevice *_dev, void *user_data)
|
||||||
case UPEKSONLY_2016:
|
case UPEKSONLY_2016:
|
||||||
deinitsm = fpi_ssm_new (FP_DEVICE (dev),
|
deinitsm = fpi_ssm_new (FP_DEVICE (dev),
|
||||||
deinitsm_2016_run_state,
|
deinitsm_2016_run_state,
|
||||||
DEINITSM_2016_NUM_STATES, dev);
|
DEINITSM_2016_NUM_STATES);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case UPEKSONLY_1000:
|
case UPEKSONLY_1000:
|
||||||
deinitsm = fpi_ssm_new (FP_DEVICE (dev),
|
deinitsm = fpi_ssm_new (FP_DEVICE (dev),
|
||||||
deinitsm_1000_run_state,
|
deinitsm_1000_run_state,
|
||||||
DEINITSM_1000_NUM_STATES, dev);
|
DEINITSM_1000_NUM_STATES);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case UPEKSONLY_1001:
|
case UPEKSONLY_1001:
|
||||||
deinitsm = fpi_ssm_new (FP_DEVICE (dev),
|
deinitsm = fpi_ssm_new (FP_DEVICE (dev),
|
||||||
deinitsm_1001_run_state,
|
deinitsm_1001_run_state,
|
||||||
DEINITSM_1001_NUM_STATES, dev);
|
DEINITSM_1001_NUM_STATES);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
self->capturing = FALSE;
|
self->capturing = FALSE;
|
||||||
|
@ -1379,9 +1366,9 @@ dev_deactivate (FpImageDevice *dev)
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
loopsm_complete (FpiSsm *ssm, FpDevice *_dev, void *user_data, GError *error)
|
loopsm_complete (FpiSsm *ssm, FpDevice *_dev, GError *error)
|
||||||
{
|
{
|
||||||
FpImageDevice *dev = user_data;
|
FpImageDevice *dev = FP_IMAGE_DEVICE (_dev);
|
||||||
FpiDeviceUpeksonly *self = FPI_DEVICE_UPEKSONLY (_dev);
|
FpiDeviceUpeksonly *self = FPI_DEVICE_UPEKSONLY (_dev);
|
||||||
|
|
||||||
fpi_ssm_free (ssm);
|
fpi_ssm_free (ssm);
|
||||||
|
@ -1400,10 +1387,9 @@ loopsm_complete (FpiSsm *ssm, FpDevice *_dev, void *user_data, GError *error)
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
initsm_complete (FpiSsm *ssm, FpDevice *_dev, void *user_data,
|
initsm_complete (FpiSsm *ssm, FpDevice *_dev, GError *error)
|
||||||
GError *error)
|
|
||||||
{
|
{
|
||||||
FpImageDevice *dev = user_data;
|
FpImageDevice *dev = FP_IMAGE_DEVICE (_dev);
|
||||||
FpiDeviceUpeksonly *self = FPI_DEVICE_UPEKSONLY (_dev);
|
FpiDeviceUpeksonly *self = FPI_DEVICE_UPEKSONLY (_dev);
|
||||||
|
|
||||||
fpi_ssm_free (ssm);
|
fpi_ssm_free (ssm);
|
||||||
|
@ -1412,7 +1398,7 @@ initsm_complete (FpiSsm *ssm, FpDevice *_dev, void *user_data,
|
||||||
return;
|
return;
|
||||||
|
|
||||||
self->loopsm = fpi_ssm_new (FP_DEVICE (dev), loopsm_run_state,
|
self->loopsm = fpi_ssm_new (FP_DEVICE (dev), loopsm_run_state,
|
||||||
LOOPSM_NUM_STATES, dev);
|
LOOPSM_NUM_STATES);
|
||||||
fpi_ssm_start (self->loopsm, loopsm_complete);
|
fpi_ssm_start (self->loopsm, loopsm_complete);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1443,17 +1429,17 @@ dev_activate (FpImageDevice *dev)
|
||||||
{
|
{
|
||||||
case UPEKSONLY_2016:
|
case UPEKSONLY_2016:
|
||||||
ssm = fpi_ssm_new (FP_DEVICE (dev), initsm_2016_run_state,
|
ssm = fpi_ssm_new (FP_DEVICE (dev), initsm_2016_run_state,
|
||||||
INITSM_2016_NUM_STATES, dev);
|
INITSM_2016_NUM_STATES);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case UPEKSONLY_1000:
|
case UPEKSONLY_1000:
|
||||||
ssm = fpi_ssm_new (FP_DEVICE (dev), initsm_1000_run_state,
|
ssm = fpi_ssm_new (FP_DEVICE (dev), initsm_1000_run_state,
|
||||||
INITSM_1000_NUM_STATES, dev);
|
INITSM_1000_NUM_STATES);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case UPEKSONLY_1001:
|
case UPEKSONLY_1001:
|
||||||
ssm = fpi_ssm_new (FP_DEVICE (dev), initsm_1001_run_state,
|
ssm = fpi_ssm_new (FP_DEVICE (dev), initsm_1001_run_state,
|
||||||
INITSM_1001_NUM_STATES, dev);
|
INITSM_1001_NUM_STATES);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
fpi_ssm_start (ssm, initsm_complete);
|
fpi_ssm_start (ssm, initsm_complete);
|
||||||
|
|
|
@ -109,7 +109,7 @@ read_init_data_cb (FpiUsbTransfer *transfer, FpDevice *device,
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
activate_run_state (FpiSsm *ssm, FpDevice *dev, void *user_data)
|
activate_run_state (FpiSsm *ssm, FpDevice *dev)
|
||||||
{
|
{
|
||||||
FpiDeviceUpektc *self = FPI_DEVICE_UPEKTC (dev);
|
FpiDeviceUpektc *self = FPI_DEVICE_UPEKTC (dev);
|
||||||
|
|
||||||
|
@ -149,8 +149,7 @@ activate_run_state (FpiSsm *ssm, FpDevice *dev, void *user_data)
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
activate_sm_complete (FpiSsm *ssm, FpDevice *_dev,
|
activate_sm_complete (FpiSsm *ssm, FpDevice *_dev, GError *error)
|
||||||
void *user_data, GError *error)
|
|
||||||
{
|
{
|
||||||
FpImageDevice *dev = FP_IMAGE_DEVICE (_dev);
|
FpImageDevice *dev = FP_IMAGE_DEVICE (_dev);
|
||||||
|
|
||||||
|
@ -294,7 +293,7 @@ capture_read_data_cb (FpiUsbTransfer *transfer, FpDevice *device,
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
capture_run_state (FpiSsm *ssm, FpDevice *_dev, void *user_data)
|
capture_run_state (FpiSsm *ssm, FpDevice *_dev)
|
||||||
{
|
{
|
||||||
FpiDeviceUpektc *self = FPI_DEVICE_UPEKTC (_dev);
|
FpiDeviceUpektc *self = FPI_DEVICE_UPEKTC (_dev);
|
||||||
|
|
||||||
|
@ -333,10 +332,9 @@ capture_run_state (FpiSsm *ssm, FpDevice *_dev, void *user_data)
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
capture_sm_complete (FpiSsm *ssm, FpDevice *_dev, void *user_data,
|
capture_sm_complete (FpiSsm *ssm, FpDevice *_dev, GError *error)
|
||||||
GError *error)
|
|
||||||
{
|
{
|
||||||
FpImageDevice *dev = user_data;
|
FpImageDevice *dev = FP_IMAGE_DEVICE (_dev);
|
||||||
FpiDeviceUpektc *self = FPI_DEVICE_UPEKTC (_dev);
|
FpiDeviceUpektc *self = FPI_DEVICE_UPEKTC (_dev);
|
||||||
|
|
||||||
fp_dbg ("Capture completed");
|
fp_dbg ("Capture completed");
|
||||||
|
@ -362,8 +360,7 @@ start_capture (FpImageDevice *dev)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
ssm = fpi_ssm_new (FP_DEVICE (dev), capture_run_state,
|
ssm = fpi_ssm_new (FP_DEVICE (dev), capture_run_state, CAPTURE_NUM_STATES);
|
||||||
CAPTURE_NUM_STATES, dev);
|
|
||||||
G_DEBUG_HERE ();
|
G_DEBUG_HERE ();
|
||||||
fpi_ssm_start (ssm, capture_sm_complete);
|
fpi_ssm_start (ssm, capture_sm_complete);
|
||||||
}
|
}
|
||||||
|
@ -373,7 +370,7 @@ dev_activate (FpImageDevice *dev)
|
||||||
{
|
{
|
||||||
FpiDeviceUpektc *self = FPI_DEVICE_UPEKTC (dev);
|
FpiDeviceUpektc *self = FPI_DEVICE_UPEKTC (dev);
|
||||||
FpiSsm *ssm = fpi_ssm_new (FP_DEVICE (dev), activate_run_state,
|
FpiSsm *ssm = fpi_ssm_new (FP_DEVICE (dev), activate_run_state,
|
||||||
ACTIVATE_NUM_STATES, dev);
|
ACTIVATE_NUM_STATES);
|
||||||
|
|
||||||
self->init_idx = 0;
|
self->init_idx = 0;
|
||||||
fpi_ssm_start (ssm, activate_sm_complete);
|
fpi_ssm_start (ssm, activate_sm_complete);
|
||||||
|
|
|
@ -338,9 +338,9 @@ capture_read_data_cb (FpiUsbTransfer *transfer, FpDevice *device,
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
capture_run_state (FpiSsm *ssm, FpDevice *_dev, void *user_data)
|
capture_run_state (FpiSsm *ssm, FpDevice *_dev)
|
||||||
{
|
{
|
||||||
FpImageDevice *dev = user_data;
|
FpImageDevice *dev = FP_IMAGE_DEVICE (_dev);
|
||||||
FpiDeviceUpektcImg *self = FPI_DEVICE_UPEKTC_IMG (_dev);
|
FpiDeviceUpektcImg *self = FPI_DEVICE_UPEKTC_IMG (_dev);
|
||||||
|
|
||||||
switch (fpi_ssm_get_cur_state (ssm))
|
switch (fpi_ssm_get_cur_state (ssm))
|
||||||
|
@ -382,9 +382,9 @@ capture_run_state (FpiSsm *ssm, FpDevice *_dev, void *user_data)
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
capture_sm_complete (FpiSsm *ssm, FpDevice *_dev, void *user_data, GError *error_arg)
|
capture_sm_complete (FpiSsm *ssm, FpDevice *_dev, GError *error_arg)
|
||||||
{
|
{
|
||||||
FpImageDevice *dev = user_data;
|
FpImageDevice *dev = FP_IMAGE_DEVICE (_dev);
|
||||||
FpiDeviceUpektcImg *self = FPI_DEVICE_UPEKTC_IMG (_dev);
|
FpiDeviceUpektcImg *self = FPI_DEVICE_UPEKTC_IMG (_dev);
|
||||||
|
|
||||||
g_autoptr(GError) error = error_arg;
|
g_autoptr(GError) error = error_arg;
|
||||||
|
@ -409,7 +409,7 @@ start_capture (FpImageDevice *dev)
|
||||||
self->image_size = 0;
|
self->image_size = 0;
|
||||||
|
|
||||||
ssm = fpi_ssm_new (FP_DEVICE (dev), capture_run_state,
|
ssm = fpi_ssm_new (FP_DEVICE (dev), capture_run_state,
|
||||||
CAPTURE_NUM_STATES, dev);
|
CAPTURE_NUM_STATES);
|
||||||
fpi_ssm_start (ssm, capture_sm_complete);
|
fpi_ssm_start (ssm, capture_sm_complete);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -443,10 +443,9 @@ deactivate_read_data_cb (FpiUsbTransfer *transfer, FpDevice *device,
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
deactivate_run_state (FpiSsm *ssm, FpDevice *_dev,
|
deactivate_run_state (FpiSsm *ssm, FpDevice *_dev)
|
||||||
void *user_data)
|
|
||||||
{
|
{
|
||||||
FpImageDevice *dev = user_data;
|
FpImageDevice *dev = FP_IMAGE_DEVICE (_dev);
|
||||||
FpiDeviceUpektcImg *self = FPI_DEVICE_UPEKTC_IMG (_dev);
|
FpiDeviceUpektcImg *self = FPI_DEVICE_UPEKTC_IMG (_dev);
|
||||||
|
|
||||||
switch (fpi_ssm_get_cur_state (ssm))
|
switch (fpi_ssm_get_cur_state (ssm))
|
||||||
|
@ -465,10 +464,9 @@ deactivate_run_state (FpiSsm *ssm, FpDevice *_dev,
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
deactivate_sm_complete (FpiSsm *ssm, FpDevice *_dev,
|
deactivate_sm_complete (FpiSsm *ssm, FpDevice *_dev, GError *error)
|
||||||
void *user_data, GError *error)
|
|
||||||
{
|
{
|
||||||
FpImageDevice *dev = user_data;
|
FpImageDevice *dev = FP_IMAGE_DEVICE (_dev);
|
||||||
FpiDeviceUpektcImg *self = FPI_DEVICE_UPEKTC_IMG (_dev);
|
FpiDeviceUpektcImg *self = FPI_DEVICE_UPEKTC_IMG (_dev);
|
||||||
|
|
||||||
fp_dbg ("Deactivate completed");
|
fp_dbg ("Deactivate completed");
|
||||||
|
@ -487,7 +485,7 @@ start_deactivation (FpImageDevice *dev)
|
||||||
self->image_size = 0;
|
self->image_size = 0;
|
||||||
|
|
||||||
ssm = fpi_ssm_new (FP_DEVICE (dev), deactivate_run_state,
|
ssm = fpi_ssm_new (FP_DEVICE (dev), deactivate_run_state,
|
||||||
DEACTIVATE_NUM_STATES, dev);
|
DEACTIVATE_NUM_STATES);
|
||||||
fpi_ssm_start (ssm, deactivate_sm_complete);
|
fpi_ssm_start (ssm, deactivate_sm_complete);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -539,10 +537,10 @@ init_read_data_cb (FpiUsbTransfer *transfer, FpDevice *device,
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
activate_run_state (FpiSsm *ssm, FpDevice *dev, void *user_data)
|
activate_run_state (FpiSsm *ssm, FpDevice *dev)
|
||||||
{
|
{
|
||||||
FpiUsbTransfer *transfer;
|
FpiUsbTransfer *transfer;
|
||||||
FpImageDevice *idev = user_data;
|
FpImageDevice *idev = FP_IMAGE_DEVICE (dev);
|
||||||
FpiDeviceUpektcImg *self = FPI_DEVICE_UPEKTC_IMG (dev);
|
FpiDeviceUpektcImg *self = FPI_DEVICE_UPEKTC_IMG (dev);
|
||||||
|
|
||||||
switch (fpi_ssm_get_cur_state (ssm))
|
switch (fpi_ssm_get_cur_state (ssm))
|
||||||
|
@ -599,10 +597,9 @@ activate_run_state (FpiSsm *ssm, FpDevice *dev, void *user_data)
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
activate_sm_complete (FpiSsm *ssm, FpDevice *_dev,
|
activate_sm_complete (FpiSsm *ssm, FpDevice *_dev, GError *error)
|
||||||
void *user_data, GError *error)
|
|
||||||
{
|
{
|
||||||
FpImageDevice *dev = user_data;
|
FpImageDevice *dev = FP_IMAGE_DEVICE (_dev);
|
||||||
|
|
||||||
fpi_ssm_free (ssm);
|
fpi_ssm_free (ssm);
|
||||||
fpi_image_device_activate_complete (dev, error);
|
fpi_image_device_activate_complete (dev, error);
|
||||||
|
@ -616,7 +613,7 @@ dev_activate (FpImageDevice *dev)
|
||||||
{
|
{
|
||||||
FpiDeviceUpektcImg *self = FPI_DEVICE_UPEKTC_IMG (dev);
|
FpiDeviceUpektcImg *self = FPI_DEVICE_UPEKTC_IMG (dev);
|
||||||
FpiSsm *ssm = fpi_ssm_new (FP_DEVICE (dev), activate_run_state,
|
FpiSsm *ssm = fpi_ssm_new (FP_DEVICE (dev), activate_run_state,
|
||||||
ACTIVATE_NUM_STATES, dev);
|
ACTIVATE_NUM_STATES);
|
||||||
|
|
||||||
self->seq = 0;
|
self->seq = 0;
|
||||||
fpi_ssm_start (ssm, activate_sm_complete);
|
fpi_ssm_start (ssm, activate_sm_complete);
|
||||||
|
|
|
@ -679,7 +679,7 @@ initsm_send_msg28_handler (FpiSsm *ssm,
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
initsm_run_state (FpiSsm *ssm, FpDevice *dev, void *user_data)
|
initsm_run_state (FpiSsm *ssm, FpDevice *dev)
|
||||||
{
|
{
|
||||||
FpiDeviceUpekts *upekdev = FPI_DEVICE_UPEKTS (dev);
|
FpiDeviceUpekts *upekdev = FPI_DEVICE_UPEKTS (dev);
|
||||||
FpiUsbTransfer *transfer;
|
FpiUsbTransfer *transfer;
|
||||||
|
@ -763,7 +763,7 @@ initsm_run_state (FpiSsm *ssm, FpDevice *dev, void *user_data)
|
||||||
static FpiSsm *
|
static FpiSsm *
|
||||||
initsm_new (FpDevice *dev)
|
initsm_new (FpDevice *dev)
|
||||||
{
|
{
|
||||||
return fpi_ssm_new (dev, initsm_run_state, INITSM_NUM_STATES, NULL);
|
return fpi_ssm_new (dev, initsm_run_state, INITSM_NUM_STATES);
|
||||||
}
|
}
|
||||||
|
|
||||||
enum deinitsm_states {
|
enum deinitsm_states {
|
||||||
|
@ -806,8 +806,7 @@ read_msg01_cb (FpDevice *dev, enum read_msg_type type,
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
deinitsm_state_handler (FpiSsm *ssm, FpDevice *dev,
|
deinitsm_state_handler (FpiSsm *ssm, FpDevice *dev)
|
||||||
void *user_data)
|
|
||||||
{
|
{
|
||||||
switch (fpi_ssm_get_cur_state (ssm))
|
switch (fpi_ssm_get_cur_state (ssm))
|
||||||
{
|
{
|
||||||
|
@ -829,7 +828,7 @@ deinitsm_state_handler (FpiSsm *ssm, FpDevice *dev,
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
initsm_done (FpiSsm *ssm, FpDevice *dev, void *user_data, GError *error)
|
initsm_done (FpiSsm *ssm, FpDevice *dev, GError *error)
|
||||||
{
|
{
|
||||||
if (error)
|
if (error)
|
||||||
g_usb_device_release_interface (fpi_device_get_usb_device (dev), 0, 0, NULL);
|
g_usb_device_release_interface (fpi_device_get_usb_device (dev), 0, 0, NULL);
|
||||||
|
@ -840,7 +839,7 @@ initsm_done (FpiSsm *ssm, FpDevice *dev, void *user_data, GError *error)
|
||||||
static FpiSsm *
|
static FpiSsm *
|
||||||
deinitsm_new (FpDevice *dev, void *user_data)
|
deinitsm_new (FpDevice *dev, void *user_data)
|
||||||
{
|
{
|
||||||
return fpi_ssm_new (dev, deinitsm_state_handler, DEINITSM_NUM_STATES, user_data);
|
return fpi_ssm_new (dev, deinitsm_state_handler, DEINITSM_NUM_STATES);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -858,12 +857,12 @@ dev_init (FpDevice *dev)
|
||||||
|
|
||||||
upekdev->seq = 0xf0; /* incremented to 0x00 before first cmd */
|
upekdev->seq = 0xf0; /* incremented to 0x00 before first cmd */
|
||||||
|
|
||||||
ssm = fpi_ssm_new (dev, initsm_run_state, INITSM_NUM_STATES, NULL);
|
ssm = fpi_ssm_new (dev, initsm_run_state, INITSM_NUM_STATES);
|
||||||
fpi_ssm_start (ssm, initsm_done);
|
fpi_ssm_start (ssm, initsm_done);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
deinitsm_done (FpiSsm *ssm, FpDevice *dev, void *user_data, GError *error)
|
deinitsm_done (FpiSsm *ssm, FpDevice *dev, GError *error)
|
||||||
{
|
{
|
||||||
g_usb_device_release_interface (fpi_device_get_usb_device (dev), 0, 0, NULL);
|
g_usb_device_release_interface (fpi_device_get_usb_device (dev), 0, 0, NULL);
|
||||||
|
|
||||||
|
@ -875,7 +874,7 @@ dev_exit (FpDevice *dev)
|
||||||
{
|
{
|
||||||
FpiSsm *ssm;
|
FpiSsm *ssm;
|
||||||
|
|
||||||
ssm = fpi_ssm_new (dev, deinitsm_state_handler, DEINITSM_NUM_STATES, NULL);
|
ssm = fpi_ssm_new (dev, deinitsm_state_handler, DEINITSM_NUM_STATES);
|
||||||
fpi_ssm_start (ssm, deinitsm_done);
|
fpi_ssm_start (ssm, deinitsm_done);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -936,8 +935,7 @@ enroll_start_sm_cb_msg28 (FpDevice *dev,
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
enroll_start_sm_run_state (FpiSsm *ssm, FpDevice *dev,
|
enroll_start_sm_run_state (FpiSsm *ssm, FpDevice *dev)
|
||||||
void *user_data)
|
|
||||||
{
|
{
|
||||||
switch (fpi_ssm_get_cur_state (ssm))
|
switch (fpi_ssm_get_cur_state (ssm))
|
||||||
{
|
{
|
||||||
|
@ -973,20 +971,23 @@ typedef struct
|
||||||
} EnrollStopData;
|
} EnrollStopData;
|
||||||
|
|
||||||
static void
|
static void
|
||||||
enroll_stop_deinit_cb (FpiSsm *ssm, FpDevice *dev,
|
enroll_stop_data_free (EnrollStopData *data)
|
||||||
void *user_data, GError *error)
|
|
||||||
{
|
{
|
||||||
EnrollStopData *data = user_data;
|
g_clear_object (&data->print);
|
||||||
|
g_clear_error (&data->error);
|
||||||
|
g_free (data);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
enroll_stop_deinit_cb (FpiSsm *ssm, FpDevice *dev, GError *error)
|
||||||
|
{
|
||||||
|
EnrollStopData *data = fpi_ssm_get_data (ssm);
|
||||||
|
|
||||||
/* don't really care about errors */
|
/* don't really care about errors */
|
||||||
if (error)
|
if (error)
|
||||||
{
|
fp_warn ("Error deinitializing: %s", error->message);
|
||||||
fp_warn ("Error deinitializing: %s", error->message);
|
|
||||||
g_error_free (error);
|
|
||||||
}
|
|
||||||
|
|
||||||
fpi_device_enroll_complete (dev, data->print, data->error);
|
fpi_device_enroll_complete (dev, data->print, data->error);
|
||||||
g_free (data);
|
|
||||||
fpi_ssm_free (ssm);
|
fpi_ssm_free (ssm);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -996,10 +997,11 @@ do_enroll_stop (FpDevice *dev, FpPrint *print, GError *error)
|
||||||
EnrollStopData *data = g_new0 (EnrollStopData, 1);
|
EnrollStopData *data = g_new0 (EnrollStopData, 1);
|
||||||
FpiSsm *ssm = deinitsm_new (dev, data);
|
FpiSsm *ssm = deinitsm_new (dev, data);
|
||||||
|
|
||||||
data->print = print;
|
data->print = g_object_ref (print);
|
||||||
data->error = error;
|
data->error = error;
|
||||||
|
|
||||||
fpi_ssm_start (ssm, enroll_stop_deinit_cb);
|
fpi_ssm_start (ssm, enroll_stop_deinit_cb);
|
||||||
|
fpi_ssm_set_data (ssm, data, (GDestroyNotify) enroll_stop_data_free);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void enroll_iterate (FpDevice *dev);
|
static void enroll_iterate (FpDevice *dev);
|
||||||
|
@ -1206,8 +1208,7 @@ enroll_iterate (FpDevice *dev)
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
enroll_started (FpiSsm *ssm, FpDevice *dev, void *user_data,
|
enroll_started (FpiSsm *ssm, FpDevice *dev, GError *error)
|
||||||
GError *error)
|
|
||||||
{
|
{
|
||||||
if (error)
|
if (error)
|
||||||
do_enroll_stop (dev, NULL, error);
|
do_enroll_stop (dev, NULL, error);
|
||||||
|
@ -1224,7 +1225,7 @@ enroll (FpDevice *dev)
|
||||||
|
|
||||||
/* do_init state machine first */
|
/* do_init state machine first */
|
||||||
FpiSsm *ssm = fpi_ssm_new (dev, enroll_start_sm_run_state,
|
FpiSsm *ssm = fpi_ssm_new (dev, enroll_start_sm_run_state,
|
||||||
ENROLL_START_NUM_STATES, NULL);
|
ENROLL_START_NUM_STATES);
|
||||||
|
|
||||||
upekdev->enroll_passed = FALSE;
|
upekdev->enroll_passed = FALSE;
|
||||||
upekdev->enroll_stage = 0;
|
upekdev->enroll_stage = 0;
|
||||||
|
@ -1238,19 +1239,21 @@ typedef struct
|
||||||
} VerifyStopData;
|
} VerifyStopData;
|
||||||
|
|
||||||
static void
|
static void
|
||||||
verify_stop_deinit_cb (FpiSsm *ssm, FpDevice *dev,
|
verify_stop_data_free (VerifyStopData *data)
|
||||||
void *user_data, GError *error)
|
|
||||||
{
|
{
|
||||||
VerifyStopData *data = user_data;
|
g_clear_error (&data->error);
|
||||||
|
g_free (data);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
verify_stop_deinit_cb (FpiSsm *ssm, FpDevice *dev, GError *error)
|
||||||
|
{
|
||||||
|
VerifyStopData *data = fpi_ssm_get_data (ssm);
|
||||||
|
|
||||||
if (error)
|
if (error)
|
||||||
{
|
fp_warn ("Error deinitializing: %s", error->message);
|
||||||
fp_warn ("Error deinitializing: %s", error->message);
|
|
||||||
g_error_free (error);
|
|
||||||
}
|
|
||||||
|
|
||||||
fpi_device_verify_complete (dev, data->res, NULL, data->error);
|
fpi_device_verify_complete (dev, data->res, NULL, data->error);
|
||||||
g_free (data);
|
|
||||||
fpi_ssm_free (ssm);
|
fpi_ssm_free (ssm);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1264,6 +1267,7 @@ do_verify_stop (FpDevice *dev, FpiMatchResult res, GError *error)
|
||||||
data->error = error;
|
data->error = error;
|
||||||
|
|
||||||
fpi_ssm_start (ssm, verify_stop_deinit_cb);
|
fpi_ssm_start (ssm, verify_stop_deinit_cb);
|
||||||
|
fpi_ssm_set_data (ssm, data, (GDestroyNotify) verify_stop_data_free);
|
||||||
}
|
}
|
||||||
|
|
||||||
static const unsigned char verify_hdr[] = {
|
static const unsigned char verify_hdr[] = {
|
||||||
|
@ -1279,8 +1283,7 @@ enum {
|
||||||
};
|
};
|
||||||
|
|
||||||
static void
|
static void
|
||||||
verify_start_sm_run_state (FpiSsm *ssm, FpDevice *dev,
|
verify_start_sm_run_state (FpiSsm *ssm, FpDevice *dev)
|
||||||
void *user_data)
|
|
||||||
{
|
{
|
||||||
FpPrint *print;
|
FpPrint *print;
|
||||||
|
|
||||||
|
@ -1522,8 +1525,7 @@ verify_iterate (FpDevice *dev)
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
verify_started (FpiSsm *ssm, FpDevice *dev, void *user_data,
|
verify_started (FpiSsm *ssm, FpDevice *dev, GError *error)
|
||||||
GError *error)
|
|
||||||
{
|
{
|
||||||
FpiDeviceUpekts *upekdev = FPI_DEVICE_UPEKTS (dev);
|
FpiDeviceUpekts *upekdev = FPI_DEVICE_UPEKTS (dev);
|
||||||
|
|
||||||
|
@ -1542,8 +1544,7 @@ verify_started (FpiSsm *ssm, FpDevice *dev, void *user_data,
|
||||||
static void
|
static void
|
||||||
verify (FpDevice *dev)
|
verify (FpDevice *dev)
|
||||||
{
|
{
|
||||||
FpiSsm *ssm = fpi_ssm_new (dev, verify_start_sm_run_state,
|
FpiSsm *ssm = fpi_ssm_new (dev, verify_start_sm_run_state, VERIFY_NUM_STATES);
|
||||||
VERIFY_NUM_STATES, NULL);
|
|
||||||
|
|
||||||
fpi_ssm_start (ssm, verify_started);
|
fpi_ssm_start (ssm, verify_started);
|
||||||
}
|
}
|
||||||
|
|
|
@ -650,9 +650,9 @@ calc_dev2 (struct uru4k_image *img)
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
imaging_run_state (FpiSsm *ssm, FpDevice *_dev, void *user_data)
|
imaging_run_state (FpiSsm *ssm, FpDevice *_dev)
|
||||||
{
|
{
|
||||||
FpImageDevice *dev = user_data;
|
FpImageDevice *dev = FP_IMAGE_DEVICE (_dev);
|
||||||
FpiDeviceUru4000 *self = FPI_DEVICE_URU4000 (_dev);
|
FpiDeviceUru4000 *self = FPI_DEVICE_URU4000 (_dev);
|
||||||
struct uru4k_image *img = self->img_data;
|
struct uru4k_image *img = self->img_data;
|
||||||
FpImage *fpimg;
|
FpImage *fpimg;
|
||||||
|
@ -785,8 +785,7 @@ imaging_run_state (FpiSsm *ssm, FpDevice *_dev, void *user_data)
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
imaging_complete (FpiSsm *ssm, FpDevice *dev, void *user_data,
|
imaging_complete (FpiSsm *ssm, FpDevice *dev, GError *error)
|
||||||
GError *error)
|
|
||||||
{
|
{
|
||||||
FpiDeviceUru4000 *self = FPI_DEVICE_URU4000 (dev);
|
FpiDeviceUru4000 *self = FPI_DEVICE_URU4000 (dev);
|
||||||
|
|
||||||
|
@ -855,9 +854,9 @@ rebootpwr_pause_cb (FpDevice *dev,
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
rebootpwr_run_state (FpiSsm *ssm, FpDevice *_dev, void *user_data)
|
rebootpwr_run_state (FpiSsm *ssm, FpDevice *_dev)
|
||||||
{
|
{
|
||||||
FpImageDevice *dev = user_data;
|
FpImageDevice *dev = FP_IMAGE_DEVICE (_dev);
|
||||||
FpiDeviceUru4000 *self = FPI_DEVICE_URU4000 (_dev);
|
FpiDeviceUru4000 *self = FPI_DEVICE_URU4000 (_dev);
|
||||||
|
|
||||||
switch (fpi_ssm_get_cur_state (ssm))
|
switch (fpi_ssm_get_cur_state (ssm))
|
||||||
|
@ -946,9 +945,9 @@ powerup_pause_cb (FpDevice *dev,
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
powerup_run_state (FpiSsm *ssm, FpDevice *_dev, void *user_data)
|
powerup_run_state (FpiSsm *ssm, FpDevice *_dev)
|
||||||
{
|
{
|
||||||
FpImageDevice *dev = user_data;
|
FpImageDevice *dev = FP_IMAGE_DEVICE (_dev);
|
||||||
FpiDeviceUru4000 *self = FPI_DEVICE_URU4000 (_dev);
|
FpiDeviceUru4000 *self = FPI_DEVICE_URU4000 (_dev);
|
||||||
|
|
||||||
switch (fpi_ssm_get_cur_state (ssm))
|
switch (fpi_ssm_get_cur_state (ssm))
|
||||||
|
@ -1073,9 +1072,9 @@ init_scanpwr_timeout (FpDevice *dev,
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
init_run_state (FpiSsm *ssm, FpDevice *_dev, void *user_data)
|
init_run_state (FpiSsm *ssm, FpDevice *_dev)
|
||||||
{
|
{
|
||||||
FpImageDevice *dev = user_data;
|
FpImageDevice *dev = FP_IMAGE_DEVICE (_dev);
|
||||||
FpiDeviceUru4000 *self = FPI_DEVICE_URU4000 (_dev);
|
FpiDeviceUru4000 *self = FPI_DEVICE_URU4000 (_dev);
|
||||||
|
|
||||||
switch (fpi_ssm_get_cur_state (ssm))
|
switch (fpi_ssm_get_cur_state (ssm))
|
||||||
|
@ -1095,7 +1094,7 @@ init_run_state (FpiSsm *ssm, FpDevice *_dev, void *user_data)
|
||||||
case INIT_REBOOT_POWER:;
|
case INIT_REBOOT_POWER:;
|
||||||
FpiSsm *rebootsm = fpi_ssm_new (FP_DEVICE (dev),
|
FpiSsm *rebootsm = fpi_ssm_new (FP_DEVICE (dev),
|
||||||
rebootpwr_run_state,
|
rebootpwr_run_state,
|
||||||
REBOOTPWR_NUM_STATES, dev);
|
REBOOTPWR_NUM_STATES);
|
||||||
fpi_ssm_start_subsm (ssm, rebootsm);
|
fpi_ssm_start_subsm (ssm, rebootsm);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -1118,7 +1117,7 @@ init_run_state (FpiSsm *ssm, FpDevice *_dev, void *user_data)
|
||||||
|
|
||||||
FpiSsm *powerupsm = fpi_ssm_new (FP_DEVICE (dev),
|
FpiSsm *powerupsm = fpi_ssm_new (FP_DEVICE (dev),
|
||||||
powerup_run_state,
|
powerup_run_state,
|
||||||
POWERUP_NUM_STATES, dev);
|
POWERUP_NUM_STATES);
|
||||||
fpi_ssm_start_subsm (ssm, powerupsm);
|
fpi_ssm_start_subsm (ssm, powerupsm);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -1165,8 +1164,7 @@ init_run_state (FpiSsm *ssm, FpDevice *_dev, void *user_data)
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
activate_initsm_complete (FpiSsm *ssm, FpDevice *dev,
|
activate_initsm_complete (FpiSsm *ssm, FpDevice *dev, GError *error)
|
||||||
void *user_data, GError *error)
|
|
||||||
{
|
{
|
||||||
fpi_image_device_activate_complete (FP_IMAGE_DEVICE (dev), error);
|
fpi_image_device_activate_complete (FP_IMAGE_DEVICE (dev), error);
|
||||||
}
|
}
|
||||||
|
@ -1180,7 +1178,7 @@ dev_activate (FpImageDevice *dev)
|
||||||
start_irq_handler (dev);
|
start_irq_handler (dev);
|
||||||
|
|
||||||
self->scanpwr_irq_timeouts = 0;
|
self->scanpwr_irq_timeouts = 0;
|
||||||
ssm = fpi_ssm_new (FP_DEVICE (dev), init_run_state, INIT_NUM_STATES, NULL);
|
ssm = fpi_ssm_new (FP_DEVICE (dev), init_run_state, INIT_NUM_STATES);
|
||||||
fpi_ssm_start (ssm, activate_initsm_complete);
|
fpi_ssm_start (ssm, activate_initsm_complete);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1240,7 +1238,7 @@ execute_state_change (FpImageDevice *dev)
|
||||||
self->irq_cb = NULL;
|
self->irq_cb = NULL;
|
||||||
|
|
||||||
ssm = fpi_ssm_new (FP_DEVICE (dev), imaging_run_state,
|
ssm = fpi_ssm_new (FP_DEVICE (dev), imaging_run_state,
|
||||||
IMAGING_NUM_STATES, dev);
|
IMAGING_NUM_STATES);
|
||||||
self->img_enc_seed = rand ();
|
self->img_enc_seed = rand ();
|
||||||
self->img_transfer = fpi_usb_transfer_new (FP_DEVICE (dev));
|
self->img_transfer = fpi_usb_transfer_new (FP_DEVICE (dev));
|
||||||
self->img_transfer->ssm = ssm;
|
self->img_transfer->ssm = ssm;
|
||||||
|
|
|
@ -256,7 +256,7 @@ enum loop_states {
|
||||||
};
|
};
|
||||||
|
|
||||||
static void
|
static void
|
||||||
loop_run_state (FpiSsm *ssm, FpDevice *dev, void *user_data)
|
loop_run_state (FpiSsm *ssm, FpDevice *dev)
|
||||||
{
|
{
|
||||||
FpDeviceVcom5s *self = FPI_DEVICE_VCOM5S (dev);
|
FpDeviceVcom5s *self = FPI_DEVICE_VCOM5S (dev);
|
||||||
|
|
||||||
|
@ -296,8 +296,7 @@ loop_run_state (FpiSsm *ssm, FpDevice *dev, void *user_data)
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
loopsm_complete (FpiSsm *ssm, FpDevice *dev, void *user_data,
|
loopsm_complete (FpiSsm *ssm, FpDevice *dev, GError *error)
|
||||||
GError *error)
|
|
||||||
{
|
{
|
||||||
FpImageDevice *imgdev = FP_IMAGE_DEVICE (dev);
|
FpImageDevice *imgdev = FP_IMAGE_DEVICE (dev);
|
||||||
FpDeviceVcom5s *self = FPI_DEVICE_VCOM5S (dev);
|
FpDeviceVcom5s *self = FPI_DEVICE_VCOM5S (dev);
|
||||||
|
@ -320,8 +319,7 @@ static void
|
||||||
dev_activate (FpImageDevice *dev)
|
dev_activate (FpImageDevice *dev)
|
||||||
{
|
{
|
||||||
FpDeviceVcom5s *self = FPI_DEVICE_VCOM5S (dev);
|
FpDeviceVcom5s *self = FPI_DEVICE_VCOM5S (dev);
|
||||||
FpiSsm *ssm = fpi_ssm_new (FP_DEVICE (dev), loop_run_state,
|
FpiSsm *ssm = fpi_ssm_new (FP_DEVICE (dev), loop_run_state, LOOP_NUM_STATES);
|
||||||
LOOP_NUM_STATES, dev);
|
|
||||||
|
|
||||||
self->deactivating = FALSE;
|
self->deactivating = FALSE;
|
||||||
fpi_ssm_start (ssm, loopsm_complete);
|
fpi_ssm_start (ssm, loopsm_complete);
|
||||||
|
|
|
@ -278,7 +278,7 @@ submit_image (FpDeviceVfs0050 *self)
|
||||||
|
|
||||||
/* SSM loop for clear_ep2 */
|
/* SSM loop for clear_ep2 */
|
||||||
static void
|
static void
|
||||||
clear_ep2_ssm (FpiSsm *ssm, FpDevice *dev, void *user_data)
|
clear_ep2_ssm (FpiSsm *ssm, FpDevice *dev)
|
||||||
{
|
{
|
||||||
char command04 = 0x04;
|
char command04 = 0x04;
|
||||||
|
|
||||||
|
@ -307,15 +307,13 @@ static void
|
||||||
clear_ep2 (FpDevice *dev,
|
clear_ep2 (FpDevice *dev,
|
||||||
FpiSsm *ssm)
|
FpiSsm *ssm)
|
||||||
{
|
{
|
||||||
FpiSsm *subsm =
|
FpiSsm *subsm = fpi_ssm_new (dev, clear_ep2_ssm, SUBSM1_STATES);
|
||||||
fpi_ssm_new (dev, clear_ep2_ssm, SUBSM1_STATES, NULL);
|
|
||||||
|
|
||||||
fpi_ssm_start_subsm (ssm, subsm);
|
fpi_ssm_start_subsm (ssm, subsm);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
send_control_packet_ssm (FpiSsm *ssm, FpDevice *dev,
|
send_control_packet_ssm (FpiSsm *ssm, FpDevice *dev)
|
||||||
void *user_data)
|
|
||||||
{
|
{
|
||||||
FpDeviceVfs0050 *self = FPI_DEVICE_VFS0050 (dev);
|
FpDeviceVfs0050 *self = FPI_DEVICE_VFS0050 (dev);
|
||||||
|
|
||||||
|
@ -384,8 +382,7 @@ send_control_packet (FpiSsm *ssm,
|
||||||
FpDevice *dev)
|
FpDevice *dev)
|
||||||
{
|
{
|
||||||
FpiSsm *subsm =
|
FpiSsm *subsm =
|
||||||
fpi_ssm_new (dev, send_control_packet_ssm,
|
fpi_ssm_new (dev, send_control_packet_ssm, SUBSM2_STATES);
|
||||||
SUBSM2_STATES, NULL);
|
|
||||||
|
|
||||||
fpi_ssm_start_subsm (ssm, subsm);
|
fpi_ssm_start_subsm (ssm, subsm);
|
||||||
}
|
}
|
||||||
|
@ -497,7 +494,7 @@ another_scan (FpDevice *dev,
|
||||||
|
|
||||||
/* Main SSM loop */
|
/* Main SSM loop */
|
||||||
static void
|
static void
|
||||||
activate_ssm (FpiSsm *ssm, FpDevice *dev, void *user_data)
|
activate_ssm (FpiSsm *ssm, FpDevice *dev)
|
||||||
{
|
{
|
||||||
FpImageDevice *idev = FP_IMAGE_DEVICE (dev);
|
FpImageDevice *idev = FP_IMAGE_DEVICE (dev);
|
||||||
FpDeviceVfs0050 *self = FPI_DEVICE_VFS0050 (dev);
|
FpDeviceVfs0050 *self = FPI_DEVICE_VFS0050 (dev);
|
||||||
|
@ -660,8 +657,7 @@ activate_ssm (FpiSsm *ssm, FpDevice *dev, void *user_data)
|
||||||
|
|
||||||
/* Callback for dev_activate ssm */
|
/* Callback for dev_activate ssm */
|
||||||
static void
|
static void
|
||||||
dev_activate_callback (FpiSsm *ssm, FpDevice *dev,
|
dev_activate_callback (FpiSsm *ssm, FpDevice *dev, GError *error)
|
||||||
void *user_data, GError *error)
|
|
||||||
{
|
{
|
||||||
FpDeviceVfs0050 *self = FPI_DEVICE_VFS0050 (dev);
|
FpDeviceVfs0050 *self = FPI_DEVICE_VFS0050 (dev);
|
||||||
|
|
||||||
|
@ -687,8 +683,7 @@ dev_activate (FpImageDevice *idev)
|
||||||
self->need_report = 1;
|
self->need_report = 1;
|
||||||
self->ssm_active = 1;
|
self->ssm_active = 1;
|
||||||
|
|
||||||
FpiSsm *ssm = fpi_ssm_new (FP_DEVICE (idev), activate_ssm, SSM_STATES,
|
FpiSsm *ssm = fpi_ssm_new (FP_DEVICE (idev), activate_ssm, SSM_STATES);
|
||||||
idev);
|
|
||||||
fpi_ssm_start (ssm, dev_activate_callback);
|
fpi_ssm_start (ssm, dev_activate_callback);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -711,8 +706,7 @@ dev_deactivate (FpImageDevice *idev)
|
||||||
|
|
||||||
/* Callback for dev_open ssm */
|
/* Callback for dev_open ssm */
|
||||||
static void
|
static void
|
||||||
dev_open_callback (FpiSsm *ssm, FpDevice *dev, void *user_data,
|
dev_open_callback (FpiSsm *ssm, FpDevice *dev, GError *error)
|
||||||
GError *error)
|
|
||||||
{
|
{
|
||||||
/* Notify open complete */
|
/* Notify open complete */
|
||||||
fpi_image_device_open_complete (FP_IMAGE_DEVICE (dev), error);
|
fpi_image_device_open_complete (FP_IMAGE_DEVICE (dev), error);
|
||||||
|
@ -733,7 +727,7 @@ dev_open (FpImageDevice *idev)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Clearing previous device state */
|
/* Clearing previous device state */
|
||||||
FpiSsm *ssm = fpi_ssm_new (FP_DEVICE (idev), activate_ssm, SSM_STATES, NULL);
|
FpiSsm *ssm = fpi_ssm_new (FP_DEVICE (idev), activate_ssm, SSM_STATES);
|
||||||
fpi_ssm_start (ssm, dev_open_callback);
|
fpi_ssm_start (ssm, dev_open_callback);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -391,18 +391,18 @@ enum {
|
||||||
|
|
||||||
/* Exec swap sequential state machine */
|
/* Exec swap sequential state machine */
|
||||||
static void
|
static void
|
||||||
m_swap_state (FpiSsm *ssm, FpDevice *_dev, void *user_data)
|
m_swap_state (FpiSsm *ssm, FpDevice *dev)
|
||||||
{
|
{
|
||||||
switch (fpi_ssm_get_cur_state (ssm))
|
switch (fpi_ssm_get_cur_state (ssm))
|
||||||
{
|
{
|
||||||
case M_SWAP_SEND:
|
case M_SWAP_SEND:
|
||||||
/* Send data */
|
/* Send data */
|
||||||
async_send (ssm, user_data);
|
async_send (ssm, FP_IMAGE_DEVICE (dev));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case M_SWAP_RECV:
|
case M_SWAP_RECV:
|
||||||
/* Recv response */
|
/* Recv response */
|
||||||
async_recv (ssm, user_data);
|
async_recv (ssm, FP_IMAGE_DEVICE (dev));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -423,8 +423,7 @@ m_swap (FpiSsm *ssm,
|
||||||
self->length = length;
|
self->length = length;
|
||||||
|
|
||||||
/* Start swap ssm */
|
/* Start swap ssm */
|
||||||
subsm = fpi_ssm_new (FP_DEVICE (dev), m_swap_state, M_SWAP_NUM_STATES,
|
subsm = fpi_ssm_new (FP_DEVICE (dev), m_swap_state, M_SWAP_NUM_STATES);
|
||||||
dev);
|
|
||||||
fpi_ssm_start_subsm (ssm, subsm);
|
fpi_ssm_start_subsm (ssm, subsm);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -778,9 +777,9 @@ enum {
|
||||||
|
|
||||||
/* Exec loop sequential state machine */
|
/* Exec loop sequential state machine */
|
||||||
static void
|
static void
|
||||||
m_loop_state (FpiSsm *ssm, FpDevice *_dev, void *user_data)
|
m_loop_state (FpiSsm *ssm, FpDevice *_dev)
|
||||||
{
|
{
|
||||||
FpImageDevice *dev = user_data;
|
FpImageDevice *dev = FP_IMAGE_DEVICE (_dev);
|
||||||
FpDeviceVfs101 *self = FPI_DEVICE_VFS101 (_dev);
|
FpDeviceVfs101 *self = FPI_DEVICE_VFS101 (_dev);
|
||||||
|
|
||||||
/* Complete if deactivation was requested */
|
/* Complete if deactivation was requested */
|
||||||
|
@ -950,8 +949,7 @@ m_loop_state (FpiSsm *ssm, FpDevice *_dev, void *user_data)
|
||||||
|
|
||||||
/* Complete loop sequential state machine */
|
/* Complete loop sequential state machine */
|
||||||
static void
|
static void
|
||||||
m_loop_complete (FpiSsm *ssm, FpDevice *dev, void *user_data,
|
m_loop_complete (FpiSsm *ssm, FpDevice *dev, GError *error)
|
||||||
GError *error)
|
|
||||||
{
|
{
|
||||||
FpDeviceVfs101 *self = FPI_DEVICE_VFS101 (dev);
|
FpDeviceVfs101 *self = FPI_DEVICE_VFS101 (dev);
|
||||||
|
|
||||||
|
@ -1015,9 +1013,9 @@ enum {
|
||||||
|
|
||||||
/* Exec init sequential state machine */
|
/* Exec init sequential state machine */
|
||||||
static void
|
static void
|
||||||
m_init_state (FpiSsm *ssm, FpDevice *_dev, void *user_data)
|
m_init_state (FpiSsm *ssm, FpDevice *_dev)
|
||||||
{
|
{
|
||||||
FpImageDevice *dev = user_data;
|
FpImageDevice *dev = FP_IMAGE_DEVICE (_dev);
|
||||||
FpDeviceVfs101 *self = FPI_DEVICE_VFS101 (_dev);
|
FpDeviceVfs101 *self = FPI_DEVICE_VFS101 (_dev);
|
||||||
|
|
||||||
/* Mark as cancelled when activation collides with deactivation. */
|
/* Mark as cancelled when activation collides with deactivation. */
|
||||||
|
@ -1253,10 +1251,9 @@ m_init_state (FpiSsm *ssm, FpDevice *_dev, void *user_data)
|
||||||
|
|
||||||
/* Complete init sequential state machine */
|
/* Complete init sequential state machine */
|
||||||
static void
|
static void
|
||||||
m_init_complete (FpiSsm *ssm, FpDevice *_dev, void *user_data,
|
m_init_complete (FpiSsm *ssm, FpDevice *_dev, GError *error)
|
||||||
GError *error)
|
|
||||||
{
|
{
|
||||||
FpImageDevice *dev = user_data;
|
FpImageDevice *dev = FP_IMAGE_DEVICE (_dev);
|
||||||
|
|
||||||
/* Notify activate complete */
|
/* Notify activate complete */
|
||||||
fpi_image_device_activate_complete (dev, error);
|
fpi_image_device_activate_complete (dev, error);
|
||||||
|
@ -1266,8 +1263,7 @@ m_init_complete (FpiSsm *ssm, FpDevice *_dev, void *user_data,
|
||||||
FpiSsm *ssm_loop;
|
FpiSsm *ssm_loop;
|
||||||
|
|
||||||
/* Start loop ssm */
|
/* Start loop ssm */
|
||||||
ssm_loop = fpi_ssm_new (FP_DEVICE (dev), m_loop_state,
|
ssm_loop = fpi_ssm_new (FP_DEVICE (dev), m_loop_state, M_LOOP_NUM_STATES);
|
||||||
M_LOOP_NUM_STATES, dev);
|
|
||||||
fpi_ssm_start (ssm_loop, m_loop_complete);
|
fpi_ssm_start (ssm_loop, m_loop_complete);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1297,7 +1293,7 @@ dev_activate (FpImageDevice *dev)
|
||||||
self->counter = 0;
|
self->counter = 0;
|
||||||
|
|
||||||
/* Start init ssm */
|
/* Start init ssm */
|
||||||
ssm = fpi_ssm_new (FP_DEVICE (dev), m_init_state, M_INIT_NUM_STATES, dev);
|
ssm = fpi_ssm_new (FP_DEVICE (dev), m_init_state, M_INIT_NUM_STATES);
|
||||||
fpi_ssm_start (ssm, m_init_complete);
|
fpi_ssm_start (ssm, m_init_complete);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -94,9 +94,9 @@ enum {
|
||||||
|
|
||||||
/* Exec loop sequential state machine */
|
/* Exec loop sequential state machine */
|
||||||
static void
|
static void
|
||||||
m_loop_state (FpiSsm *ssm, FpDevice *_dev, void *user_data)
|
m_loop_state (FpiSsm *ssm, FpDevice *_dev)
|
||||||
{
|
{
|
||||||
FpImageDevice *dev = user_data;
|
FpImageDevice *dev = FP_IMAGE_DEVICE (_dev);
|
||||||
FpDeviceVfs301 *self = FPI_DEVICE_VFS301 (_dev);
|
FpDeviceVfs301 *self = FPI_DEVICE_VFS301 (_dev);
|
||||||
|
|
||||||
switch (fpi_ssm_get_cur_state (ssm))
|
switch (fpi_ssm_get_cur_state (ssm))
|
||||||
|
@ -160,8 +160,7 @@ m_loop_state (FpiSsm *ssm, FpDevice *_dev, void *user_data)
|
||||||
|
|
||||||
/* Complete loop sequential state machine */
|
/* Complete loop sequential state machine */
|
||||||
static void
|
static void
|
||||||
m_loop_complete (FpiSsm *ssm, FpDevice *_dev, void *user_data,
|
m_loop_complete (FpiSsm *ssm, FpDevice *_dev, GError *error)
|
||||||
GError *error)
|
|
||||||
{
|
{
|
||||||
if (error)
|
if (error)
|
||||||
{
|
{
|
||||||
|
@ -174,7 +173,7 @@ m_loop_complete (FpiSsm *ssm, FpDevice *_dev, void *user_data,
|
||||||
|
|
||||||
/* Exec init sequential state machine */
|
/* Exec init sequential state machine */
|
||||||
static void
|
static void
|
||||||
m_init_state (FpiSsm *ssm, FpDevice *_dev, void *user_data)
|
m_init_state (FpiSsm *ssm, FpDevice *_dev)
|
||||||
{
|
{
|
||||||
FpDeviceVfs301 *self = FPI_DEVICE_VFS301 (_dev);
|
FpDeviceVfs301 *self = FPI_DEVICE_VFS301 (_dev);
|
||||||
|
|
||||||
|
@ -187,8 +186,7 @@ m_init_state (FpiSsm *ssm, FpDevice *_dev, void *user_data)
|
||||||
|
|
||||||
/* Complete init sequential state machine */
|
/* Complete init sequential state machine */
|
||||||
static void
|
static void
|
||||||
m_init_complete (FpiSsm *ssm, FpDevice *dev, void *user_data,
|
m_init_complete (FpiSsm *ssm, FpDevice *dev, GError *error)
|
||||||
GError *error)
|
|
||||||
{
|
{
|
||||||
FpiSsm *ssm_loop;
|
FpiSsm *ssm_loop;
|
||||||
|
|
||||||
|
@ -198,8 +196,7 @@ m_init_complete (FpiSsm *ssm, FpDevice *dev, void *user_data,
|
||||||
/* Notify activate complete */
|
/* Notify activate complete */
|
||||||
|
|
||||||
/* Start loop ssm */
|
/* Start loop ssm */
|
||||||
ssm_loop = fpi_ssm_new (dev, m_loop_state,
|
ssm_loop = fpi_ssm_new (dev, m_loop_state, M_LOOP_NUM_STATES);
|
||||||
M_LOOP_NUM_STATES, dev);
|
|
||||||
fpi_ssm_start (ssm_loop, m_loop_complete);
|
fpi_ssm_start (ssm_loop, m_loop_complete);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -214,7 +211,7 @@ dev_activate (FpImageDevice *dev)
|
||||||
FpiSsm *ssm;
|
FpiSsm *ssm;
|
||||||
|
|
||||||
/* Start init ssm */
|
/* Start init ssm */
|
||||||
ssm = fpi_ssm_new (FP_DEVICE (dev), m_init_state, 1, dev);
|
ssm = fpi_ssm_new (FP_DEVICE (dev), m_init_state, 1);
|
||||||
fpi_ssm_start (ssm, m_init_complete);
|
fpi_ssm_start (ssm, m_init_complete);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -81,7 +81,7 @@ static void
|
||||||
async_send_cb (FpiUsbTransfer *transfer, FpDevice *device,
|
async_send_cb (FpiUsbTransfer *transfer, FpDevice *device,
|
||||||
gpointer user_data, GError *error)
|
gpointer user_data, GError *error)
|
||||||
{
|
{
|
||||||
struct usbexchange_data *data = fpi_ssm_get_user_data (transfer->ssm);
|
struct usbexchange_data *data = fpi_ssm_get_data (transfer->ssm);
|
||||||
struct usb_action *action;
|
struct usb_action *action;
|
||||||
|
|
||||||
g_assert (!(fpi_ssm_get_cur_state (transfer->ssm) >= data->stepcount));
|
g_assert (!(fpi_ssm_get_cur_state (transfer->ssm) >= data->stepcount));
|
||||||
|
@ -104,7 +104,7 @@ static void
|
||||||
async_recv_cb (FpiUsbTransfer *transfer, FpDevice *device,
|
async_recv_cb (FpiUsbTransfer *transfer, FpDevice *device,
|
||||||
gpointer user_data, GError *error)
|
gpointer user_data, GError *error)
|
||||||
{
|
{
|
||||||
struct usbexchange_data *data = fpi_ssm_get_user_data (transfer->ssm);
|
struct usbexchange_data *data = fpi_ssm_get_data (transfer->ssm);
|
||||||
struct usb_action *action;
|
struct usb_action *action;
|
||||||
|
|
||||||
if (error)
|
if (error)
|
||||||
|
@ -148,9 +148,9 @@ async_recv_cb (FpiUsbTransfer *transfer, FpDevice *device,
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
usbexchange_loop (FpiSsm *ssm, FpDevice *_dev, void *user_data)
|
usbexchange_loop (FpiSsm *ssm, FpDevice *_dev)
|
||||||
{
|
{
|
||||||
struct usbexchange_data *data = user_data;
|
struct usbexchange_data *data = fpi_ssm_get_data (ssm);
|
||||||
struct usb_action *action = &data->actions[fpi_ssm_get_cur_state (ssm)];
|
struct usb_action *action = &data->actions[fpi_ssm_get_cur_state (ssm)];
|
||||||
FpiUsbTransfer *transfer;
|
FpiUsbTransfer *transfer;
|
||||||
|
|
||||||
|
@ -196,9 +196,9 @@ usb_exchange_async (FpiSsm *ssm,
|
||||||
{
|
{
|
||||||
FpiSsm *subsm = fpi_ssm_new (FP_DEVICE (data->device),
|
FpiSsm *subsm = fpi_ssm_new (FP_DEVICE (data->device),
|
||||||
usbexchange_loop,
|
usbexchange_loop,
|
||||||
data->stepcount,
|
data->stepcount);
|
||||||
data);
|
|
||||||
|
|
||||||
|
fpi_ssm_set_data (subsm, data, NULL);
|
||||||
fpi_ssm_start_subsm (ssm, subsm);
|
fpi_ssm_start_subsm (ssm, subsm);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -658,11 +658,11 @@ struct usb_action vfs5011_initiate_capture[] = {
|
||||||
/* ====================== lifprint interface ======================= */
|
/* ====================== lifprint interface ======================= */
|
||||||
|
|
||||||
static void
|
static void
|
||||||
activate_loop (FpiSsm *ssm, FpDevice *_dev, void *user_data)
|
activate_loop (FpiSsm *ssm, FpDevice *_dev)
|
||||||
{
|
{
|
||||||
enum {READ_TIMEOUT = 0};
|
enum {READ_TIMEOUT = 0};
|
||||||
|
|
||||||
FpImageDevice *dev = user_data;
|
FpImageDevice *dev = FP_IMAGE_DEVICE (_dev);
|
||||||
FpDeviceVfs5011 *self;
|
FpDeviceVfs5011 *self;
|
||||||
|
|
||||||
self = FPI_DEVICE_VFS5011 (_dev);
|
self = FPI_DEVICE_VFS5011 (_dev);
|
||||||
|
@ -729,10 +729,9 @@ activate_loop (FpiSsm *ssm, FpDevice *_dev, void *user_data)
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
activate_loop_complete (FpiSsm *ssm, FpDevice *_dev,
|
activate_loop_complete (FpiSsm *ssm, FpDevice *_dev, GError *error)
|
||||||
void *user_data, GError *error)
|
|
||||||
{
|
{
|
||||||
FpImageDevice *dev = user_data;
|
FpImageDevice *dev = FP_IMAGE_DEVICE (_dev);
|
||||||
FpDeviceVfs5011 *self;
|
FpDeviceVfs5011 *self;
|
||||||
|
|
||||||
self = FPI_DEVICE_VFS5011 (_dev);
|
self = FPI_DEVICE_VFS5011 (_dev);
|
||||||
|
@ -760,9 +759,9 @@ activate_loop_complete (FpiSsm *ssm, FpDevice *_dev,
|
||||||
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
open_loop (FpiSsm *ssm, FpDevice *_dev, void *user_data)
|
open_loop (FpiSsm *ssm, FpDevice *_dev)
|
||||||
{
|
{
|
||||||
FpImageDevice *dev = user_data;
|
FpImageDevice *dev = FP_IMAGE_DEVICE (_dev);
|
||||||
FpDeviceVfs5011 *self;
|
FpDeviceVfs5011 *self;
|
||||||
|
|
||||||
self = FPI_DEVICE_VFS5011 (_dev);
|
self = FPI_DEVICE_VFS5011 (_dev);
|
||||||
|
@ -784,10 +783,9 @@ open_loop (FpiSsm *ssm, FpDevice *_dev, void *user_data)
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
open_loop_complete (FpiSsm *ssm, FpDevice *_dev, void *user_data,
|
open_loop_complete (FpiSsm *ssm, FpDevice *_dev, GError *error)
|
||||||
GError *error)
|
|
||||||
{
|
{
|
||||||
FpImageDevice *dev = user_data;
|
FpImageDevice *dev = FP_IMAGE_DEVICE (_dev);
|
||||||
FpDeviceVfs5011 *self;
|
FpDeviceVfs5011 *self;
|
||||||
|
|
||||||
self = FPI_DEVICE_VFS5011 (_dev);
|
self = FPI_DEVICE_VFS5011 (_dev);
|
||||||
|
@ -814,7 +812,7 @@ dev_open (FpImageDevice *dev)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
ssm = fpi_ssm_new (FP_DEVICE (dev), open_loop, DEV_OPEN_NUM_STATES, dev);
|
ssm = fpi_ssm_new (FP_DEVICE (dev), open_loop, DEV_OPEN_NUM_STATES);
|
||||||
fpi_ssm_start (ssm, open_loop_complete);
|
fpi_ssm_start (ssm, open_loop_complete);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -844,8 +842,7 @@ start_scan (FpImageDevice *dev)
|
||||||
self = FPI_DEVICE_VFS5011 (dev);
|
self = FPI_DEVICE_VFS5011 (dev);
|
||||||
self->loop_running = TRUE;
|
self->loop_running = TRUE;
|
||||||
fp_dbg ("creating ssm");
|
fp_dbg ("creating ssm");
|
||||||
ssm = fpi_ssm_new (FP_DEVICE (dev), activate_loop,
|
ssm = fpi_ssm_new (FP_DEVICE (dev), activate_loop, DEV_ACTIVATE_NUM_STATES);
|
||||||
DEV_ACTIVATE_NUM_STATES, dev);
|
|
||||||
fp_dbg ("starting ssm");
|
fp_dbg ("starting ssm");
|
||||||
fpi_ssm_start (ssm, activate_loop_complete);
|
fpi_ssm_start (ssm, activate_loop_complete);
|
||||||
fp_dbg ("ssm done, getting out");
|
fp_dbg ("ssm done, getting out");
|
||||||
|
|
|
@ -45,7 +45,7 @@
|
||||||
* implicit edges linking one state to every other state.
|
* implicit edges linking one state to every other state.
|
||||||
*
|
*
|
||||||
* To create an #fpi_ssm, you pass a state handler function and the total number of
|
* To create an #fpi_ssm, you pass a state handler function and the total number of
|
||||||
* states (4 in the above example) to fpi_ssm_new(). Note that the state numbers
|
* states (4 in the above example) to fpi_ssm_new (). Note that the state numbers
|
||||||
* start at zero, making them match the first value in a C enumeration.
|
* start at zero, making them match the first value in a C enumeration.
|
||||||
*
|
*
|
||||||
* To start a ssm, you pass in a completion callback function to fpi_ssm_start()
|
* To start a ssm, you pass in a completion callback function to fpi_ssm_start()
|
||||||
|
@ -79,7 +79,8 @@ struct _FpiSsm
|
||||||
{
|
{
|
||||||
FpDevice *dev;
|
FpDevice *dev;
|
||||||
FpiSsm *parentsm;
|
FpiSsm *parentsm;
|
||||||
void *user_data;
|
gpointer ssm_data;
|
||||||
|
GDestroyNotify ssm_data_destroy;
|
||||||
int nr_states;
|
int nr_states;
|
||||||
int cur_state;
|
int cur_state;
|
||||||
gboolean completed;
|
gboolean completed;
|
||||||
|
@ -93,7 +94,6 @@ struct _FpiSsm
|
||||||
* @dev: a #fp_dev fingerprint device
|
* @dev: a #fp_dev fingerprint device
|
||||||
* @handler: the callback function
|
* @handler: the callback function
|
||||||
* @nr_states: the number of states
|
* @nr_states: the number of states
|
||||||
* @user_data: the user data to pass to callbacks
|
|
||||||
*
|
*
|
||||||
* Allocate a new ssm, with @nr_states states. The @handler callback
|
* Allocate a new ssm, with @nr_states states. The @handler callback
|
||||||
* will be called after each state transition.
|
* will be called after each state transition.
|
||||||
|
@ -103,8 +103,7 @@ struct _FpiSsm
|
||||||
FpiSsm *
|
FpiSsm *
|
||||||
fpi_ssm_new (FpDevice *dev,
|
fpi_ssm_new (FpDevice *dev,
|
||||||
FpiSsmHandlerCallback handler,
|
FpiSsmHandlerCallback handler,
|
||||||
int nr_states,
|
int nr_states)
|
||||||
void *user_data)
|
|
||||||
{
|
{
|
||||||
FpiSsm *machine;
|
FpiSsm *machine;
|
||||||
|
|
||||||
|
@ -115,23 +114,42 @@ fpi_ssm_new (FpDevice *dev,
|
||||||
machine->nr_states = nr_states;
|
machine->nr_states = nr_states;
|
||||||
machine->dev = dev;
|
machine->dev = dev;
|
||||||
machine->completed = TRUE;
|
machine->completed = TRUE;
|
||||||
machine->user_data = user_data;
|
|
||||||
return machine;
|
return machine;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* fpi_ssm_get_user_data:
|
* fpi_ssm_set_data:
|
||||||
|
* @machine: an #FpiSsm state machine
|
||||||
|
* @ssm_data: (nullable): a pointer to machine data
|
||||||
|
* @ssm_data_destroy: (nullable): #GDestroyNotify for @ssm_data
|
||||||
|
*
|
||||||
|
* Sets @machine's data (freeing the existing data, if any).
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
void
|
||||||
|
fpi_ssm_set_data (FpiSsm *machine,
|
||||||
|
gpointer ssm_data,
|
||||||
|
GDestroyNotify ssm_data_destroy)
|
||||||
|
{
|
||||||
|
if (machine->ssm_data_destroy && machine->ssm_data)
|
||||||
|
machine->ssm_data_destroy (machine->ssm_data);
|
||||||
|
|
||||||
|
machine->ssm_data = ssm_data;
|
||||||
|
machine->ssm_data_destroy = ssm_data_destroy;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* fpi_ssm_get_data:
|
||||||
* @machine: an #FpiSsm state machine
|
* @machine: an #FpiSsm state machine
|
||||||
*
|
*
|
||||||
* Retrieve the pointer to user data set when fpi_ssm_new()
|
* Retrieve the pointer to SSM data set with fpi_ssm_set_ssm_data()
|
||||||
* is called.
|
|
||||||
*
|
*
|
||||||
* Returns: a pointer
|
* Returns: a pointer
|
||||||
*/
|
*/
|
||||||
void *
|
void *
|
||||||
fpi_ssm_get_user_data (FpiSsm *machine)
|
fpi_ssm_get_data (FpiSsm *machine)
|
||||||
{
|
{
|
||||||
return machine->user_data;
|
return machine->ssm_data;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -147,6 +165,8 @@ fpi_ssm_free (FpiSsm *machine)
|
||||||
if (!machine)
|
if (!machine)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
if (machine->ssm_data_destroy)
|
||||||
|
g_clear_pointer (&machine->ssm_data, machine->ssm_data_destroy);
|
||||||
g_clear_pointer (&machine->error, g_error_free);
|
g_clear_pointer (&machine->error, g_error_free);
|
||||||
g_free (machine);
|
g_free (machine);
|
||||||
}
|
}
|
||||||
|
@ -156,7 +176,7 @@ static void
|
||||||
__ssm_call_handler (FpiSsm *machine)
|
__ssm_call_handler (FpiSsm *machine)
|
||||||
{
|
{
|
||||||
fp_dbg ("%p entering state %d", machine, machine->cur_state);
|
fp_dbg ("%p entering state %d", machine, machine->cur_state);
|
||||||
machine->handler (machine, machine->dev, machine->user_data);
|
machine->handler (machine, machine->dev);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -180,7 +200,7 @@ fpi_ssm_start (FpiSsm *ssm, FpiSsmCompletedCallback callback)
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
__subsm_complete (FpiSsm *ssm, FpDevice *_dev, void *user_data, GError *error)
|
__subsm_complete (FpiSsm *ssm, FpDevice *_dev, GError *error)
|
||||||
{
|
{
|
||||||
FpiSsm *parent = ssm->parentsm;
|
FpiSsm *parent = ssm->parentsm;
|
||||||
|
|
||||||
|
@ -215,7 +235,7 @@ fpi_ssm_start_subsm (FpiSsm *parent, FpiSsm *child)
|
||||||
* @machine: an #FpiSsm state machine
|
* @machine: an #FpiSsm state machine
|
||||||
*
|
*
|
||||||
* Mark a ssm as completed successfully. The callback set when creating
|
* Mark a ssm as completed successfully. The callback set when creating
|
||||||
* the state machine with fpi_ssm_new() will be called synchronously.
|
* the state machine with fpi_ssm_new () will be called synchronously.
|
||||||
*/
|
*/
|
||||||
void
|
void
|
||||||
fpi_ssm_mark_completed (FpiSsm *machine)
|
fpi_ssm_mark_completed (FpiSsm *machine)
|
||||||
|
@ -230,7 +250,7 @@ fpi_ssm_mark_completed (FpiSsm *machine)
|
||||||
{
|
{
|
||||||
GError *error = machine->error ? g_error_copy (machine->error) : NULL;
|
GError *error = machine->error ? g_error_copy (machine->error) : NULL;
|
||||||
|
|
||||||
machine->callback (machine, machine->dev, machine->user_data, error);
|
machine->callback (machine, machine->dev, error);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -349,7 +369,7 @@ fpi_ssm_dup_error (FpiSsm *machine)
|
||||||
* for an fpi_timeout_add() callback, when the state change needs
|
* for an fpi_timeout_add() callback, when the state change needs
|
||||||
* to happen after a timeout.
|
* to happen after a timeout.
|
||||||
*
|
*
|
||||||
* Make sure to pass the #FpiSsm as the `user_data` argument
|
* Make sure to pass the #FpiSsm as the `ssm_data` argument
|
||||||
* for that fpi_timeout_add() call.
|
* for that fpi_timeout_add() call.
|
||||||
*/
|
*/
|
||||||
void
|
void
|
||||||
|
@ -366,7 +386,7 @@ fpi_ssm_next_state_timeout_cb (FpDevice *dev,
|
||||||
* fpi_ssm_usb_transfer_cb:
|
* fpi_ssm_usb_transfer_cb:
|
||||||
* @transfer: a #FpiUsbTransfer
|
* @transfer: a #FpiUsbTransfer
|
||||||
* @device: a #FpDevice
|
* @device: a #FpDevice
|
||||||
* @user_data: User data (unused)
|
* @ssm_data: User data (unused)
|
||||||
* @error: The #GError or %NULL
|
* @error: The #GError or %NULL
|
||||||
*
|
*
|
||||||
* Can be used in as a #FpiUsbTransfer callback handler to automatically
|
* Can be used in as a #FpiUsbTransfer callback handler to automatically
|
||||||
|
@ -376,7 +396,7 @@ fpi_ssm_next_state_timeout_cb (FpDevice *dev,
|
||||||
*/
|
*/
|
||||||
void
|
void
|
||||||
fpi_ssm_usb_transfer_cb (FpiUsbTransfer *transfer, FpDevice *device,
|
fpi_ssm_usb_transfer_cb (FpiUsbTransfer *transfer, FpDevice *device,
|
||||||
gpointer user_data, GError *error)
|
gpointer ssm_data, GError *error)
|
||||||
{
|
{
|
||||||
g_return_if_fail (transfer->ssm);
|
g_return_if_fail (transfer->ssm);
|
||||||
|
|
||||||
|
|
|
@ -38,7 +38,6 @@ typedef struct _FpiSsm FpiSsm;
|
||||||
* FpiSsmCompletedCallback:
|
* FpiSsmCompletedCallback:
|
||||||
* @ssm: a #FpiSsm state machine
|
* @ssm: a #FpiSsm state machine
|
||||||
* @dev: the #fp_dev fingerprint device
|
* @dev: the #fp_dev fingerprint device
|
||||||
* @user_data: the user data passed to fpi_ssm_new()
|
|
||||||
* @error: The #GError or %NULL on successful completion
|
* @error: The #GError or %NULL on successful completion
|
||||||
*
|
*
|
||||||
* The callback called when a state machine completes successfully,
|
* The callback called when a state machine completes successfully,
|
||||||
|
@ -46,27 +45,23 @@ typedef struct _FpiSsm FpiSsm;
|
||||||
*/
|
*/
|
||||||
typedef void (*FpiSsmCompletedCallback)(FpiSsm *ssm,
|
typedef void (*FpiSsmCompletedCallback)(FpiSsm *ssm,
|
||||||
FpDevice *dev,
|
FpDevice *dev,
|
||||||
void *user_data,
|
|
||||||
GError *error);
|
GError *error);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* FpiSsmHandlerCallback:
|
* FpiSsmHandlerCallback:
|
||||||
* @ssm: a #FpiSsm state machine
|
* @ssm: a #FpiSsm state machine
|
||||||
* @dev: the #fp_dev fingerprint device
|
* @dev: the #fp_dev fingerprint device
|
||||||
* @user_data: the user data passed to fpi_ssm_new()
|
|
||||||
*
|
*
|
||||||
* The callback called when a state machine transitions from one
|
* The callback called when a state machine transitions from one
|
||||||
* state to the next, as set when calling fpi_ssm_new().
|
* state to the next, as set when calling fpi_ssm_new ().
|
||||||
*/
|
*/
|
||||||
typedef void (*FpiSsmHandlerCallback)(FpiSsm *ssm,
|
typedef void (*FpiSsmHandlerCallback)(FpiSsm *ssm,
|
||||||
FpDevice *dev,
|
FpDevice *dev);
|
||||||
void *user_data);
|
|
||||||
|
|
||||||
/* for library and drivers */
|
/* for library and drivers */
|
||||||
FpiSsm *fpi_ssm_new (FpDevice *dev,
|
FpiSsm *fpi_ssm_new (FpDevice *dev,
|
||||||
FpiSsmHandlerCallback handler,
|
FpiSsmHandlerCallback handler,
|
||||||
int nr_states,
|
int nr_states);
|
||||||
void *user_data);
|
|
||||||
void fpi_ssm_free (FpiSsm *machine);
|
void fpi_ssm_free (FpiSsm *machine);
|
||||||
void fpi_ssm_start (FpiSsm *ssm,
|
void fpi_ssm_start (FpiSsm *ssm,
|
||||||
FpiSsmCompletedCallback callback);
|
FpiSsmCompletedCallback callback);
|
||||||
|
@ -80,7 +75,10 @@ void fpi_ssm_jump_to_state (FpiSsm *machine,
|
||||||
void fpi_ssm_mark_completed (FpiSsm *machine);
|
void fpi_ssm_mark_completed (FpiSsm *machine);
|
||||||
void fpi_ssm_mark_failed (FpiSsm *machine,
|
void fpi_ssm_mark_failed (FpiSsm *machine,
|
||||||
GError *error);
|
GError *error);
|
||||||
void *fpi_ssm_get_user_data (FpiSsm *machine);
|
void fpi_ssm_set_data (FpiSsm *machine,
|
||||||
|
gpointer ssm_data,
|
||||||
|
GDestroyNotify ssm_data_destroy);
|
||||||
|
gpointer fpi_ssm_get_data (FpiSsm *machine);
|
||||||
GError * fpi_ssm_get_error (FpiSsm *machine);
|
GError * fpi_ssm_get_error (FpiSsm *machine);
|
||||||
GError * fpi_ssm_dup_error (FpiSsm *machine);
|
GError * fpi_ssm_dup_error (FpiSsm *machine);
|
||||||
int fpi_ssm_get_cur_state (FpiSsm *machine);
|
int fpi_ssm_get_cur_state (FpiSsm *machine);
|
||||||
|
|
Loading…
Reference in a new issue