void show_device_details (GUPnPDeviceInfo *info) { char *details[32]; const SoupURI *uri; const char *str; int i = 0; details[i++] = _("Location"); str = gupnp_device_info_get_location (info); if (str) details[i++] = g_strdup (str); details[i++] = _("UDN"); str = gupnp_device_info_get_udn (info); if (str) details[i++] = g_strdup (str); details[i++] = _("Type"); str = gupnp_device_info_get_device_type (info); if (str) details[i++] = g_strdup (str); details[i++] = _("Base URL"); uri = gupnp_device_info_get_url_base (info); if (uri) details[i++] = soup_uri_to_string ((SoupURI *) uri, FALSE); details[i++] = _("Friendly Name"); details[i++] = gupnp_device_info_get_friendly_name (info); details[i++] = _("Manufacturer"); details[i++] = gupnp_device_info_get_manufacturer (info); details[i++] = _("Manufacturer URL"); details[i++] = gupnp_device_info_get_manufacturer_url (info); details[i++] = _("Model Description"); details[i++] = gupnp_device_info_get_model_description (info); details[i++] = _("Model Name"); details[i++] = gupnp_device_info_get_model_name (info); details[i++] = _("Model Number"); details[i++] = gupnp_device_info_get_model_number (info); details[i++] = _("Model URL"); details[i++] = gupnp_device_info_get_model_url (info); details[i++] = _("Serial Number"); details[i++] = gupnp_device_info_get_serial_number (info); details[i++] = _("UPC"); details[i++] = gupnp_device_info_get_upc (info); details[i++] = _("Presentation URL"); details[i++] = gupnp_device_info_get_presentation_url (info); details[i] = NULL; update_details ((const char **) details); /* Only free the values */ for (i = 1; details[i - 1]; i += 2) { if (details[i]) g_free (details[i]); } }
static void on_zone_player_unavailable(GUPnPControlPoint *control_point, GUPnPDeviceProxy *device_proxy, gpointer user_data) { g_return_if_fail(YASC_IS_ZONE_PLAYER(device_proxy)); g_message("Device %s (%s) now unavailable.", gupnp_device_info_get_model_name(GUPNP_DEVICE_INFO(device_proxy)), gupnp_device_info_get_udn(GUPNP_DEVICE_INFO(device_proxy))); }