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 device_proxy_found(GUPnPControlPoint* cp, GUPnPServiceProxy* proxy, GUPnPContext* context) { GUPnPDeviceInfo* info = GUPNP_DEVICE_INFO(proxy); if(g_strcmp0(gupnp_device_info_get_device_type(info),"urn:schemas-upnp-org:device:InternetGatewayDevice:1") == 0) { const char* devname = gupnp_device_info_get_friendly_name(info); const char* serialno = gupnp_device_info_get_serial_number(info); devname = devname ? devname : "unknown"; serialno = serialno ? serialno : "unknown"; routerip = gupnp_context_get_host_ip(context); printf("Found device named %s with serial number %s on local interface %s\n",devname,serialno,gupnp_context_get_host_ip(context)); } }
static void on_state_variable_changed (GUPnPServiceProxy *proxy, const char *variable_name, GValue *value, gpointer user_data) { GUPnPServiceInfo *info = GUPNP_SERVICE_INFO (proxy); GUPnPDeviceInfo *device_info; GValue str_value; char *id; char *friendly_name; char *notified_at; struct tm *tm; time_t current_time; /* Get the parent device */ device_info = get_service_device (info); g_return_if_fail (device_info != NULL); friendly_name = gupnp_device_info_get_friendly_name (device_info); g_object_unref (device_info); id = gupnp_service_info_get_id (info); /* We neither keep devices without friendlyname * nor services without an id */ g_assert (friendly_name != NULL); g_assert (id != NULL); memset (&str_value, 0, sizeof (GValue)); g_value_init (&str_value, G_TYPE_STRING); g_value_transform (value, &str_value); current_time = time (NULL); tm = localtime (¤t_time); notified_at = g_strdup_printf ("%02d:%02d", tm->tm_hour, tm->tm_min); display_event (notified_at, friendly_name, id, variable_name, g_value_get_string (&str_value)); g_free (notified_at); g_free (friendly_name); g_free (id); g_value_unset (&str_value); }
/* Pubic methods */ static RygelMediaContainer* rygel_test_content_dir_real_create_root_container (RygelContentDirectory* base) { RygelTestContentDir * self; GUPnPRootDevice* _tmp1_; GUPnPRootDevice* _tmp0_; char* _tmp2_; char* friendly_name; RygelMediaContainer* _tmp3_; self = (RygelTestContentDir*) base; _tmp1_ = NULL; _tmp0_ = NULL; _tmp2_ = NULL; friendly_name = (_tmp2_ = gupnp_device_info_get_friendly_name ((GUPnPDeviceInfo*) (_tmp1_ = (g_object_get ((GUPnPService*) self, "root-device", &_tmp0_, NULL), _tmp0_))), (_tmp1_ == NULL) ? NULL : (_tmp1_ = (g_object_unref (_tmp1_), NULL)), _tmp2_); _tmp3_ = NULL; return (_tmp3_ = (RygelMediaContainer*) rygel_test_root_container_new (friendly_name), friendly_name = (g_free (friendly_name), NULL), _tmp3_); }
static void append_device_tree (GUPnPDeviceInfo *info, GtkTreeModel *model, GtkTreeIter *parent_iter) { char *friendly_name; friendly_name = gupnp_device_info_get_friendly_name (info); if (friendly_name) { GtkTreeIter device_iter; GList *child; gtk_tree_store_insert_with_values (GTK_TREE_STORE (model), &device_iter, parent_iter, -1, 0, get_icon_by_id (ICON_DEVICE), 1, friendly_name, 2, info, 5, ICON_DEVICE, -1); g_free (friendly_name); schedule_icon_update (info, on_device_icon_available); /* Append the embedded devices */ child = gupnp_device_info_list_devices (info); while (child) { append_device_tree (GUPNP_DEVICE_INFO (child->data), model, &device_iter); g_object_unref (child->data); child = g_list_delete_link (child, child); } /* Append the services */ child = gupnp_device_info_list_services (info); while (child) { append_service_tree (GUPNP_SERVICE_INFO (child->data), GTK_TREE_STORE (model), &device_iter); g_object_unref (child->data); child = g_list_delete_link (child, child); } } }
static RygelMediaContainer* rygel_media_tracker_real_create_root_container (RygelContentDirectory* base) { #line 86 "rygel-media-tracker.c" RygelMediaTracker * self; RygelMediaContainer* result = NULL; GUPnPRootDevice* _tmp1_; GUPnPRootDevice* _tmp0_ = NULL; char* _tmp2_; char* friendly_name; self = (RygelMediaTracker*) base; #line 34 "rygel-media-tracker.vala" friendly_name = (_tmp2_ = gupnp_device_info_get_friendly_name ((GUPnPDeviceInfo*) (_tmp1_ = (g_object_get ((GUPnPService*) self, "root-device", &_tmp0_, NULL), _tmp0_))), _g_object_unref0 (_tmp1_), _tmp2_); #line 96 "rygel-media-tracker.c" result = (RygelMediaContainer*) rygel_tracker_root_container_new (friendly_name); _g_free0 (friendly_name); #line 35 "rygel-media-tracker.vala" return result; #line 101 "rygel-media-tracker.c" }
static void setup_action_dialog_labels (GUPnPServiceInfo *service_info, GUPnPServiceActionInfo *action_info) { GUPnPDeviceInfo *device_info; gchar *friendly_name; gchar *id; device_info = get_service_device (service_info); friendly_name = gupnp_device_info_get_friendly_name (device_info); gtk_label_set_text (GTK_LABEL (device_label), friendly_name); g_free (friendly_name); id = gupnp_service_info_get_id (service_info); gtk_label_set_text (GTK_LABEL (service_label), id); g_free (id); gtk_label_set_text (GTK_LABEL (action_label), action_info->name); }