static void append_introspection (GUPnPServiceProxy *proxy, GUPnPServiceIntrospection *introspection, GtkTreeStore *store, GtkTreeIter *service_iter) { const GList *list; if (introspection == NULL) { gtk_tree_store_insert_with_values (store, NULL, service_iter, -1, 0, get_icon_by_id (ICON_MISSING), 1, _("Information not available"), 5, ICON_MISSING, -1); return; } list = gupnp_service_introspection_list_state_variables ( introspection); if (list) append_state_variables (proxy, introspection, list, store, service_iter); list = gupnp_service_introspection_list_actions (introspection); if (list) append_actions (proxy, introspection, list, store, service_iter); }
static void print_state_variables (GUPnPServiceIntrospection *introspection) { const GList *variables; variables = gupnp_service_introspection_list_state_variables ( introspection); if (variables) { const GList *iter; g_print ("state variables:\n"); for (iter = variables; iter; iter = iter->next) { GUPnPServiceStateVariableInfo *variable; GValue default_value; const char * default_value_str; variable = (GUPnPServiceStateVariableInfo *) iter->data; g_print ("\tname: %s\n" "\ttype: %s\n" "\tsend events: %s\n", variable->name, g_type_name (variable->type), variable->send_events? "yes": "no"); memset (&default_value, 0, sizeof (GValue)); g_value_init (&default_value, G_TYPE_STRING); g_value_transform (&variable->default_value, &default_value); default_value_str = g_value_get_string (&default_value); if (default_value_str) { g_print ("\tdefault value: %s\n", default_value_str); } g_value_unset (&default_value); if (variable->is_numeric) { GValue min, max, step; memset (&min, 0, sizeof (GValue)); memset (&max, 0, sizeof (GValue)); memset (&step, 0, sizeof (GValue)); g_value_init (&min, G_TYPE_STRING); g_value_init (&max, G_TYPE_STRING); g_value_init (&step, G_TYPE_STRING); g_value_transform (&variable->minimum, &min); g_value_transform (&variable->maximum, &max); g_value_transform (&variable->step, &step); g_print ("\tminimum: %s\n" "\tmaximum: %s\n" "\tstep: %s\n", g_value_get_string (&min), g_value_get_string (&max), g_value_get_string (&step)); g_value_unset (&min); g_value_unset (&max); g_value_unset (&step); } if (variable->allowed_values) { GList *value_iter; g_print ("\tallowed values: "); for (value_iter = variable->allowed_values; value_iter; value_iter = value_iter->next) { g_print ("\"%s\" ", (gchar *) value_iter->data); } } g_print ("\n"); } g_print ("\n"); } }