From: Julien M. <do...@us...> - 2003-02-02 12:05:29
|
CVS Root: /cvsroot/gstreamer Module: gst-player Changes by: dolphy Date: Sun Feb 02 2003 04:05:27 PST Log message: Bug fixes in logo display. Now logo should be displayed on stream end and between media changing (next, previous, open, double clik on playlist) Default scheduler is now opt Playlist is now clickable. Improved video widget packing Modified files: libs/gst/player : gstmediaplay.c gstmediaplay.h gstvideowidget.c src : main.c Links: http://cvs.sf.net/cgi-bin/viewcvs.cgi/gstreamer/gst-player/libs/gst/player/gstmediaplay.c.diff?r1=1.91&r2=1.92 http://cvs.sf.net/cgi-bin/viewcvs.cgi/gstreamer/gst-player/libs/gst/player/gstmediaplay.h.diff?r1=1.32&r2=1.33 http://cvs.sf.net/cgi-bin/viewcvs.cgi/gstreamer/gst-player/libs/gst/player/gstvideowidget.c.diff?r1=1.13&r2=1.14 http://cvs.sf.net/cgi-bin/viewcvs.cgi/gstreamer/gst-player/src/main.c.diff?r1=1.30&r2=1.31 ====Begin Diffs==== Index: gstmediaplay.c =================================================================== RCS file: /cvsroot/gstreamer/gst-player/libs/gst/player/gstmediaplay.c,v retrieving revision 1.91 retrieving revision 1.92 diff -u -d -r1.91 -r1.92 --- gstmediaplay.c 29 Jan 2003 21:27:23 -0000 1.91 +++ gstmediaplay.c 2 Feb 2003 12:05:14 -0000 1.92 @@ -220,11 +220,9 @@ mrl = gtk_playlist_get_current_mrl (GTK_PLAYLIST(mplay->playlist)); - if ( !mplay->location || - ( mplay->location && - mrl && - g_strcasecmp (mplay->location, mrl) != 0 - ) + if ( mplay->location && + mrl && + g_strcasecmp (mplay->location, mrl) != 0 ) { gst_media_play_set_location (mplay, mrl); @@ -561,6 +559,9 @@ g_return_if_fail(mplay->control != NULL); gtk_box_pack_start (GTK_BOX (mplay), GTK_WIDGET (mplay->control), FALSE, FALSE, 0); + mplay->control_fs_window = NULL; + mplay->control_fs_vbox = NULL; + mplay->video_widget = gst_video_widget_new (); g_return_if_fail(mplay->video_widget != NULL); @@ -574,6 +575,10 @@ gst_video_widget_set_logo ( GST_VIDEO_WIDGET(mplay->video_widget), mplay->logo_pixbuf); + + /* Packing the video widget at the end of our Mplay */ + + gtk_box_pack_end (GTK_BOX (mplay), mplay->video_widget, TRUE, TRUE, 0); /*gtk_widget_set_size_request (mplay->video_widget, 300, 300);*/ @@ -591,13 +596,20 @@ g_return_if_fail(mplay->playlist != NULL); - gtk_box_pack_start (GTK_BOX (mplay), mplay->video_widget, TRUE, TRUE, 0); + /* Playlist signals */ + + g_signal_connect (G_OBJECT (mplay->playlist), "delete-event", + G_CALLBACK (gtk_widget_hide_on_delete), NULL); + + g_signal_connect (G_OBJECT (mplay->playlist), "changed", + G_CALLBACK (gst_media_play_playlist_changed), mplay); + + /* VideoWidget signals */ g_signal_connect (G_OBJECT (mplay->video_widget), "motion-notify-event", G_CALLBACK (gst_media_play_motion_notify_callback), mplay); - g_signal_connect (G_OBJECT (mplay->playlist), "changed", - G_CALLBACK (gst_media_play_playlist_changed), mplay); + /* Control signals */ g_signal_connect (G_OBJECT (mplay->control), "toggle_play", G_CALLBACK (gst_media_play_toggle_play_pause), mplay); @@ -870,6 +882,10 @@ mplay->location_short = NULL; mplay->location = location; + + gst_video_widget_set_logo_focus ( GST_VIDEO_WIDGET(mplay->video_widget), + TRUE); + gst_play_need_new_video_window ( mplay->play); /* get a short filename if we can */ if (GNOME_VFS_OK != gnome_vfs_get_file_info(location, &info, GNOME_VFS_FILE_INFO_DEFAULT)){ Index: gstmediaplay.h =================================================================== RCS file: /cvsroot/gstreamer/gst-player/libs/gst/player/gstmediaplay.h,v retrieving revision 1.32 retrieving revision 1.33 diff -u -d -r1.32 -r1.33 --- gstmediaplay.h 25 Jan 2003 17:31:06 -0000 1.32 +++ gstmediaplay.h 2 Feb 2003 12:05:14 -0000 1.33 @@ -54,6 +54,9 @@ GtkWidget *video_widget; GtkWidget *control; + + GtkWindow *control_fs_window; + GtkVBox *control_fs_vbox; GtkWidget *statusarea; Index: gstvideowidget.c =================================================================== RCS file: /cvsroot/gstreamer/gst-player/libs/gst/player/gstvideowidget.c,v retrieving revision 1.13 retrieving revision 1.14 diff -u -d -r1.13 -r1.14 --- gstvideowidget.c 29 Jan 2003 14:49:41 -0000 1.13 +++ gstvideowidget.c 2 Feb 2003 12:05:14 -0000 1.14 @@ -538,12 +538,15 @@ GtkWidget *widget = GTK_WIDGET (vw); gdk_threads_enter (); - - g_message ("got an xwindow"); display = gtk_widget_get_display (GTK_WIDGET(vw)); vw->logo_focused = FALSE; + + if (GDK_IS_WINDOW(vw->video_window)) { + gdk_window_destroy (vw->video_window); + vw->video_window = NULL; + } vw->video_window = gdk_window_foreign_new_for_display (display, xid); Index: main.c =================================================================== RCS file: /cvsroot/gstreamer/gst-player/src/main.c,v retrieving revision 1.30 retrieving revision 1.31 diff -u -d -r1.30 -r1.31 --- main.c 25 Jan 2003 20:34:09 -0000 1.30 +++ main.c 2 Feb 2003 12:05:15 -0000 1.31 @@ -318,6 +318,19 @@ gst_media_play_set_volume (mplay, gst_media_play_get_volume (mplay) - 0.1); } +static void +next_media (GtkWidget *widget) +{ + g_return_if_fail(GST_IS_MEDIA_PLAY(mplay)); + gst_media_play_next ( NULL, mplay); +} +static void +previous_media (GtkWidget *widget) +{ + g_return_if_fail(GST_IS_MEDIA_PLAY(mplay)); + gst_media_play_previous ( NULL, mplay); +} + static GnomeUIInfo file_menu [] = { GNOMEUIINFO_MENU_OPEN_ITEM (cb_open, NULL), @@ -356,6 +369,20 @@ GNOME_APP_PIXMAP_NONE, NULL, GDK_Down, (GdkModifierType) GDK_CONTROL_MASK, NULL }, + { + GNOME_APP_UI_ITEM, N_("_Next Media"), + NULL, + next_media, NULL, NULL, + GNOME_APP_PIXMAP_NONE, NULL, + GDK_Right, (GdkModifierType) GDK_CONTROL_MASK, NULL + }, + { + GNOME_APP_UI_ITEM, N_("_Previous Media"), + NULL, + previous_media, NULL, NULL, + GNOME_APP_PIXMAP_NONE, NULL, + GDK_Left, (GdkModifierType) GDK_CONTROL_MASK, NULL + }, GNOMEUIINFO_END }; @@ -429,6 +456,10 @@ char *file; options[0].arg = (void *) gst_init_get_popt_table (); + + /* Using opt as default scheduler */ + gst_scheduler_factory_set_default_name ("opt"); + if (! (p = gnome_program_init (PACKAGE, VERSION, LIBGNOMEUI_MODULE, argc, argv, GNOME_PARAM_POPT_TABLE, options, |