static void photos_dlna_renderers_dialog_init (PhotosDlnaRenderersDialog *self) { PhotosDlnaRenderersDialogPrivate *priv; GList *renderers; self->priv = photos_dlna_renderers_dialog_get_instance_private (self); priv = self->priv; priv->item_mngr = photos_item_manager_dup_singleton (); priv->renderers_mngr = photos_dlna_renderers_manager_dup_singleton (); priv->remote_mngr = photos_remote_display_manager_dup_singleton (); priv->mode_cntrlr = photos_mode_controller_dup_singleton (); gtk_widget_init_template (GTK_WIDGET (self)); gtk_list_box_set_header_func (priv->listbox, photos_dlna_renderers_separator_cb, NULL, NULL); renderers = photos_dlna_renderers_manager_dup_renderers (priv->renderers_mngr); while (renderers != NULL) { PhotosDlnaRenderer *renderer = PHOTOS_DLNA_RENDERER (renderers->data); photos_dlna_renderers_dialog_add_renderer (self, renderer); renderers = g_list_delete_link (renderers, renderers); } g_signal_connect (self, "response", G_CALLBACK (gtk_widget_destroy), NULL); }
static void photos_dlna_renderers_dialog_init (PhotosDlnaRenderersDialog *self) { GApplication *app; GList *renderers; PhotosSearchContextState *state; app = g_application_get_default (); state = photos_search_context_get_state (PHOTOS_SEARCH_CONTEXT (app)); self->item_mngr = g_object_ref (state->item_mngr); self->renderers_mngr = photos_dlna_renderers_manager_dup_singleton (); self->remote_mngr = photos_remote_display_manager_dup_singleton (); self->mode_cntrlr = g_object_ref (state->mode_cntrlr); gtk_widget_init_template (GTK_WIDGET (self)); gtk_list_box_set_header_func (self->listbox, photos_utils_list_box_header_func, NULL, NULL); renderers = photos_dlna_renderers_manager_dup_renderers (self->renderers_mngr); while (renderers != NULL) { PhotosDlnaRenderer *renderer = PHOTOS_DLNA_RENDERER (renderers->data); photos_dlna_renderers_dialog_add_renderer (self, renderer); renderers = g_list_delete_link (renderers, renderers); g_object_unref (renderer); } g_signal_connect (self, "response", G_CALLBACK (gtk_widget_destroy), NULL); }
static void photos_dlna_renderers_manager_renderer_lost_cb (PhotosDlnaRenderersManager *self, const gchar *object_path, gpointer *data) { PhotosDlnaRenderersManagerPrivate *priv = self->priv; PhotosDlnaRenderer *renderer; renderer = PHOTOS_DLNA_RENDERER (g_hash_table_lookup (priv->renderers, object_path)); g_return_if_fail (renderer != NULL); g_hash_table_steal (priv->renderers, object_path); g_debug ("%s '%s' %s %s", G_STRFUNC, photos_dlna_renderer_get_friendly_name (renderer), photos_dlna_renderer_get_udn (renderer), object_path); g_signal_emit (self, signals[RENDERER_LOST], 0, renderer); g_object_unref (renderer); }
static void photos_dlna_renderers_dialog_set_icon_cb (GObject *source_object, GAsyncResult *res, gpointer user_data) { GdkPixbuf *pixbuf; GtkImage *image = GTK_IMAGE (user_data); PhotosDlnaRenderer *renderer = PHOTOS_DLNA_RENDERER (source_object); GError *error = NULL; pixbuf = photos_dlna_renderer_get_icon_finish (renderer, res, &error); if (error != NULL) { g_warning ("Unable to load renderer icon: %s", error->message); g_error_free (error); goto out; } gtk_image_set_from_pixbuf (image, pixbuf); out: /* release the ref we took before the async call */ g_object_unref (image); }