static void video_area_realize_cb (GtkWidget *widget, gpointer user_data) { GthMediaViewerPage *self = user_data; self->priv->caption_layout = gtk_widget_create_pango_layout (widget, ""); _gth_media_viewer_page_update_caption (self); }
static void gth_media_viewer_page_real_view (GthViewerPage *base, GthFileData *file_data) { GthMediaViewerPage *self; char *uri; self = (GthMediaViewerPage*) base; g_return_if_fail (file_data != NULL); if (! gstreamer_init ()) return; gth_viewer_page_focus (GTH_VIEWER_PAGE (self)); if ((self->priv->file_data != NULL) && g_file_equal (file_data->file, self->priv->file_data->file) && (gth_file_data_get_mtime (file_data) == gth_file_data_get_mtime (self->priv->file_data))) { return; } /**/ _g_object_unref (self->priv->file_data); self->priv->file_data = gth_file_data_dup (file_data); self->priv->duration = 0; _g_object_unref (self->priv->icon); self->priv->icon = NULL; _gth_media_viewer_page_update_caption (self); /**/ gth_viewer_page_file_loaded (GTH_VIEWER_PAGE (self), TRUE); g_signal_handlers_block_by_func(GET_WIDGET ("adjustment_position"), position_value_changed_cb, self); gtk_adjustment_set_value (GTK_ADJUSTMENT (GET_WIDGET ("adjustment_position")), 0.0); g_signal_handlers_unblock_by_func(GET_WIDGET ("adjustment_position"), position_value_changed_cb, self); reset_player_state (self); if (self->priv->playbin == NULL) return; gst_element_set_state (self->priv->playbin, GST_STATE_NULL); uri = g_file_get_uri (self->priv->file_data->file); g_object_set (G_OBJECT (self->priv->playbin), "uri", uri, NULL); gdk_threads_add_idle (set_to_paused, self); g_free (uri); }
static void gth_media_viewer_page_real_view (GthViewerPage *base, GthFileData *file_data) { GthMediaViewerPage *self; char *uri; self = (GthMediaViewerPage*) base; g_return_if_fail (file_data != NULL); if (! gstreamer_init ()) return; gth_viewer_page_focus (GTH_VIEWER_PAGE (self)); if ((self->priv->file_data != NULL) && g_file_equal (file_data->file, self->priv->file_data->file) && (gth_file_data_get_mtime (file_data) == gth_file_data_get_mtime (self->priv->file_data))) { return; } /**/ _g_object_unref (self->priv->file_data); self->priv->file_data = gth_file_data_dup (file_data); self->priv->duration = 0; self->priv->has_audio = FALSE; self->priv->has_video = FALSE; _g_object_unref (self->priv->icon); self->priv->icon = NULL; _gth_media_viewer_page_update_caption (self); /**/ g_signal_handlers_block_by_func(GET_WIDGET ("position_adjustment"), position_value_changed_cb, self); gtk_adjustment_set_value (GTK_ADJUSTMENT (GET_WIDGET ("position_adjustment")), 0.0); g_signal_handlers_unblock_by_func(GET_WIDGET ("position_adjustment"), position_value_changed_cb, self); reset_player_state (self); create_playbin (self); if (self->priv->playbin == NULL) return; uri = g_file_get_uri (self->priv->file_data->file); _gth_media_viewer_page_set_uri (self, uri, self->priv->visible ? GST_STATE_PLAYING : GST_STATE_PAUSED); g_free (uri); }
static void video_area_realize_cb (GtkWidget *widget, gpointer user_data) { GthMediaViewerPage *self = user_data; self->priv->video_window_xid = GDK_WINDOW_XID (gtk_widget_get_window (widget)); self->priv->cursor = gdk_cursor_new (GDK_LEFT_PTR); self->priv->cursor_void = gdk_cursor_new_for_display (gtk_widget_get_display (self->priv->area), GDK_BLANK_CURSOR); if (self->priv->cursor_visible) gdk_window_set_cursor (gtk_widget_get_window (self->priv->area), self->priv->cursor); else gdk_window_set_cursor (gtk_widget_get_window (self->priv->area), self->priv->cursor_void); self->priv->caption_layout = gtk_widget_create_pango_layout (widget, ""); pango_layout_set_alignment (self->priv->caption_layout, PANGO_ALIGN_CENTER); _gth_media_viewer_page_update_caption (self); }