fpi-ssm: Mark a fpi-ssm completed on delay
This commit is contained in:
parent
b0effae990
commit
1e2f19ea3d
2 changed files with 43 additions and 0 deletions
|
@ -349,6 +349,46 @@ fpi_ssm_mark_completed (FpiSsm *machine)
|
||||||
fpi_ssm_free (machine);
|
fpi_ssm_free (machine);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
on_device_timeout_complete (FpDevice *dev,
|
||||||
|
gpointer user_data)
|
||||||
|
{
|
||||||
|
FpiSsm *machine = user_data;
|
||||||
|
|
||||||
|
machine->timeout = NULL;
|
||||||
|
fpi_ssm_mark_completed (machine);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* fpi_ssm_mark_completed_delayed:
|
||||||
|
* @machine: an #FpiSsm state machine
|
||||||
|
* @delay: the milliseconds to wait before switching to the next state
|
||||||
|
* @cancellable: (nullable): a #GCancellable to cancel the delayed operation
|
||||||
|
*
|
||||||
|
* Mark a ssm as completed successfully with a delay of @delay ms.
|
||||||
|
* The callback set when creating the state machine with fpi_ssm_new () will be
|
||||||
|
* called when the timeout is over.
|
||||||
|
* The request can be cancelled passing a #GCancellable as @cancellable.
|
||||||
|
*/
|
||||||
|
void
|
||||||
|
fpi_ssm_mark_completed_delayed (FpiSsm *machine,
|
||||||
|
int delay,
|
||||||
|
GCancellable *cancellable)
|
||||||
|
{
|
||||||
|
g_autofree char *source_name = NULL;
|
||||||
|
|
||||||
|
g_return_if_fail (machine != NULL);
|
||||||
|
|
||||||
|
fpi_ssm_set_delayed_action_timeout (machine, delay,
|
||||||
|
on_device_timeout_complete, cancellable,
|
||||||
|
machine, NULL);
|
||||||
|
|
||||||
|
source_name = g_strdup_printf ("[%s] ssm %p complete %d",
|
||||||
|
fp_device_get_device_id (machine->dev),
|
||||||
|
machine, machine->cur_state + 1);
|
||||||
|
g_source_set_name (machine->timeout, source_name);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* fpi_ssm_mark_failed:
|
* fpi_ssm_mark_failed:
|
||||||
* @machine: an #FpiSsm state machine
|
* @machine: an #FpiSsm state machine
|
||||||
|
|
|
@ -82,6 +82,9 @@ void fpi_ssm_jump_to_state_delayed (FpiSsm *machine,
|
||||||
GCancellable *cancellable);
|
GCancellable *cancellable);
|
||||||
void fpi_ssm_cancel_delayed_state_change (FpiSsm *machine);
|
void fpi_ssm_cancel_delayed_state_change (FpiSsm *machine);
|
||||||
void fpi_ssm_mark_completed (FpiSsm *machine);
|
void fpi_ssm_mark_completed (FpiSsm *machine);
|
||||||
|
void fpi_ssm_mark_completed_delayed (FpiSsm *machine,
|
||||||
|
int delay,
|
||||||
|
GCancellable *cancellable);
|
||||||
void fpi_ssm_mark_failed (FpiSsm *machine,
|
void fpi_ssm_mark_failed (FpiSsm *machine,
|
||||||
GError *error);
|
GError *error);
|
||||||
void fpi_ssm_set_data (FpiSsm *machine,
|
void fpi_ssm_set_data (FpiSsm *machine,
|
||||||
|
|
Loading…
Reference in a new issue