[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