[Xfce4-commits] [apps/parole] 01/01: Handle failed filename lookup, improve live stream support for streams reporting negative duration

noreply at xfce.org noreply at xfce.org
Sun Feb 26 15:20:27 CET 2017


This is an automated email from the git hooks/post-receive script.

bluesabre pushed a commit to branch master
in repository apps/parole.

commit 2922856a11821235e3e0aafe66f01483cf8d7d1d
Author: Sean Davis <smd.seandavis at gmail.com>
Date:   Sun Feb 26 09:20:22 2017 -0500

    Handle failed filename lookup, improve live stream support for streams reporting negative duration
---
 src/gst/parole-gst.c |  5 +++++
 src/parole-player.c  | 24 +++++++++++++++++++-----
 2 files changed, 24 insertions(+), 5 deletions(-)

diff --git a/src/gst/parole-gst.c b/src/gst/parole-gst.c
index 5b988a6..8151b03 100644
--- a/src/gst/parole-gst.c
+++ b/src/gst/parole-gst.c
@@ -592,6 +592,11 @@ parole_gst_query_duration (ParoleGst *gst)
 #endif
                                 &absolute_duration);
 
+    if (absolute_duration < 0)
+    {
+        absolute_duration = 0;
+    }
+
     if (gst_time == GST_FORMAT_TIME)
     {
         duration =  absolute_duration / GST_SECOND;
diff --git a/src/parole-player.c b/src/parole-player.c
index 03d0a3e..6baddb3 100644
--- a/src/parole-player.c
+++ b/src/parole-player.c
@@ -1436,12 +1436,14 @@ parole_player_playing (ParolePlayer *player, const ParoleStream *stream)
     {
         parole_player_change_range_value (player, 0);
         gtk_widget_set_visible( player->priv->label_duration, FALSE );
+        gtk_widget_set_visible( player->priv->label_divider, FALSE );
         gtk_widget_set_visible( player->priv->label_elapsed, FALSE );
     }
     else
     {
         gtk_range_set_range (GTK_RANGE (player->priv->range), 0, duration);
         gtk_widget_set_visible( player->priv->label_duration, TRUE );
+        gtk_widget_set_visible( player->priv->label_divider, TRUE );
         gtk_widget_set_visible( player->priv->label_elapsed, TRUE );
     }
 
@@ -1845,7 +1847,7 @@ parole_player_error_cb (ParoleGst *gst, const gchar *error, ParolePlayer *player
 static gchar *
 parole_player_get_filename_from_uri (gchar *uri)
 {
-    gchar *filename;
+    gchar *filename = NULL;
     gchar *scheme;
 
     scheme = g_uri_parse_scheme(uri);
@@ -1907,9 +1909,17 @@ parole_player_media_tag_cb (ParoleGst *gst, const ParoleStream *stream, ParolePl
         {
             /* No ID3, no problem! Show the filename instead */
             filename = parole_player_get_filename_from_uri (uri);
-            gtk_window_set_title (GTK_WINDOW (player->priv->window), filename);
-            gtk_label_set_markup(GTK_LABEL(player->priv->audiobox_title), g_strdup_printf("<span color='#F4F4F4'><b><big>%s</big></b></span>", filename));
-            g_free (filename);
+            if ( filename )
+            {
+                gtk_window_set_title (GTK_WINDOW (player->priv->window), filename);
+                gtk_label_set_markup(GTK_LABEL(player->priv->audiobox_title), g_strdup_printf("<span color='#F4F4F4'><b><big>%s</big></b></span>", filename));
+                g_free (filename);
+            }
+            else
+            {
+                gtk_window_set_title (GTK_WINDOW (player->priv->window), _("Parole Media Player"));
+                gtk_label_set_markup(GTK_LABEL(player->priv->audiobox_title), g_strdup_printf("<span color='#F4F4F4'><b><big>%s</big></b></span>", _("Unknown Song")));
+            }
         }
         g_free(uri);
 
@@ -1959,7 +1969,10 @@ parole_player_buffering_cb (ParoleGst *gst, const ParoleStream *stream, gint per
         parole_gst_resume (PAROLE_GST (player->priv->gst));
         gtk_widget_hide (player->priv->progressbar_buffering);
         gtk_widget_show (player->priv->label_duration);
-        gtk_widget_show (player->priv->range);
+        if ( player->priv->mini_mode )
+            gtk_widget_show (player->priv->label_divider);
+        else
+            gtk_widget_show (player->priv->range);
         gtk_widget_show (player->priv->label_elapsed);
     }
     else
@@ -1974,6 +1987,7 @@ parole_player_buffering_cb (ParoleGst *gst, const ParoleStream *stream, gint per
         gtk_progress_bar_set_text (GTK_PROGRESS_BAR (player->priv->progressbar_buffering), buff);
         gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR (player->priv->progressbar_buffering), (gdouble) percentage/100);
         gtk_widget_hide (player->priv->label_duration);
+        gtk_widget_hide (player->priv->label_divider);
         gtk_widget_hide (player->priv->range);
         gtk_widget_hide (player->priv->label_elapsed);
         gtk_widget_show (player->priv->progressbar_buffering);

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the Xfce4-commits mailing list