diff options
Diffstat (limited to 'glib/examples/statemachine/statemachine-server.c')
| -rw-r--r-- | glib/examples/statemachine/statemachine-server.c | 27 | 
1 files changed, 27 insertions, 0 deletions
| diff --git a/glib/examples/statemachine/statemachine-server.c b/glib/examples/statemachine/statemachine-server.c index 7cadf1fe..2cbf39fe 100644 --- a/glib/examples/statemachine/statemachine-server.c +++ b/glib/examples/statemachine/statemachine-server.c @@ -104,6 +104,26 @@ sm_server_get_property (GObject *object,      }  } +static void +machine_state_changed_cb (SMObject *obj, const char *state, gpointer data) +{ +  char *name; + +  g_object_get (obj, "name", &name, NULL); +  g_print ("Machine %s switching to state %s\n", name, state); +  g_free (name); +} + +static void +machine_acquisition_changed_cb (SMObject *obj, gdouble progress, gpointer data) +{ +  char *name; + +  g_object_get (obj, "name", &name, NULL); +  g_print ("Machine %s got progress %f\n", name, progress); +  g_free (name); +} +  gboolean  sm_server_create_machine (SMServer *server, const char *name, GError **error)  { @@ -130,6 +150,13 @@ sm_server_create_machine (SMServer *server, const char *name, GError **error)    g_print ("Created state machine with name %s at %s\n", name, path); +  g_signal_connect_object (machine, "state-changed", +			   G_CALLBACK (machine_state_changed_cb), +			   NULL, 0); +  g_signal_connect_object (machine, "acquisition-progress", +			   G_CALLBACK (machine_acquisition_changed_cb), +			   NULL, 0); +    g_signal_emit (server, sm_server_signals[MACHINE_CREATED], 0, name, path);    return TRUE; | 
