[Xfce4-commits] <parole:master> Added fix for subtitle loading with preference enabled.

Sean Davis noreply at xfce.org
Mon Jul 23 01:26:25 CEST 2012


Updating branch refs/heads/master
         to 9b7eea393abb365040c0f82871919bc6dbcb2afb (commit)
       from eab663695a3e2b6954e3d11873025e314c204f52 (commit)

commit 9b7eea393abb365040c0f82871919bc6dbcb2afb
Author: Sean Davis <smd.seandavis at gmail.com>
Date:   Thu Jul 19 20:32:43 2012 -0400

    Added fix for subtitle loading with preference enabled.

 src/gst/parole-gst.c |   37 +++++++++++++++++++++++++++++++++----
 src/parole-player.c  |   17 +++++++++++++++--
 2 files changed, 48 insertions(+), 6 deletions(-)

diff --git a/src/gst/parole-gst.c b/src/gst/parole-gst.c
index 35e4895..2227313 100644
--- a/src/gst/parole-gst.c
+++ b/src/gst/parole-gst.c
@@ -2287,10 +2287,39 @@ gst_set_current_audio_track( ParoleGst *gst, gint track_no )
 void
 gst_set_current_subtitle_track( ParoleGst *gst, gint track_no )
 {
-	if (track_no >= 0)
-	g_object_set (G_OBJECT (gst->priv->playbin), "current-text", (track_no-1), NULL);
-	else
-	g_object_set (G_OBJECT (gst->priv->playbin), "current-text", (NULL), NULL);
+	
+	gchar *uri, *sub;
+	
+	g_object_get (G_OBJECT (gst->priv->stream),
+		  "uri", &uri,
+		  NULL);
+		  
+	sub = parole_get_subtitle_path(uri);
+	
+	GstTagList *tags;
+	gint flags;
+
+	g_object_get (gst->priv->playbin, "flags", &flags, NULL);
+	
+	track_no = track_no -1;
+
+	if (track_no <= -1) {
+		flags &= ~GST_PLAY_FLAG_TEXT;
+		track_no = -1;
+	} else {
+		flags |= GST_PLAY_FLAG_TEXT;
+	}
+	
+	if (track_no == -1)
+	sub = NULL;
+
+	g_object_set (gst->priv->playbin, "flags", flags, "suburi", sub, "current-text", track_no, NULL);
+
+	if (flags & GST_PLAY_FLAG_TEXT) {
+		g_object_get (gst->priv->playbin, "current-text", &track_no, NULL);
+	}
+	
+	parole_gst_load_subtitle( gst );
 }
 
 const ParoleStream     *parole_gst_get_stream 		(ParoleGst *gst)
diff --git a/src/parole-player.c b/src/parole-player.c
index 27242f9..6e8736b 100644
--- a/src/parole-player.c
+++ b/src/parole-player.c
@@ -499,6 +499,7 @@ static void
 parole_player_reset (ParolePlayer *player)
 {
 	player->priv->update_languages = TRUE;
+	gtk_window_set_title (GTK_WINDOW (player->priv->window), "Parole Media Player");
 	gtk_widget_hide(GTK_WIDGET(player->priv->infobar));
     parole_player_change_range_value (player, 0);
 
@@ -584,6 +585,18 @@ parole_player_update_subtitles (ParolePlayer *player, ParoleGst *gst)
 	GList *l;
 	gchar* language;
 	
+	guint64 index;
+	index = 0;
+	
+	gboolean sub_enabled;
+	
+	g_object_get (G_OBJECT (player->priv->conf),
+		  "enable-subtitle", &sub_enabled,
+		  NULL);
+		  
+	if (sub_enabled)
+	index = 1;
+	
 	if (parole_sublang_equal_lists (player->priv->subtitle_list, list) == TRUE)
 	{
 		if (g_list_length (list) == 0)
@@ -615,7 +628,7 @@ parole_player_update_subtitles (ParolePlayer *player, ParoleGst *gst)
 		g_free (language);
 	}
 	
-	gtk_combo_box_set_active( GTK_COMBO_BOX(player->priv->combobox_subtitles), 0 );
+	gtk_combo_box_set_active( GTK_COMBO_BOX(player->priv->combobox_subtitles), index );
 	
 	if (g_list_length (list) != 1) {
     	gtk_widget_show(player->priv->infobar);
@@ -679,7 +692,7 @@ parole_player_media_activated_cb (ParoleMediaList *list, GtkTreeRowReference *ro
 				 sub);
 	    g_free (sub);
 	    
-	    //gtk_window_set_title (GTK_WINDOW (player->priv->window), parole_file_get_display_name(file));
+	    gtk_window_set_title (GTK_WINDOW (player->priv->window), parole_file_get_display_name(file));
 		
 
 	    g_object_unref (file);


More information about the Xfce4-commits mailing list