[Xfce4-commits] <parole:master> Add bitrate

Sean Davis noreply at xfce.org
Thu Dec 12 00:18:23 CET 2013


Updating branch refs/heads/master
         to 5a131b68acad5f22e0e56f1c8814a8747c6d54ac (commit)
       from 01c98b546a494d63225b8101ff17b3f01df62277 (commit)

commit 5a131b68acad5f22e0e56f1c8814a8747c6d54ac
Author: Sean Davis <smd.seandavis at gmail.com>
Date:   Sun Nov 17 15:19:44 2013 -0500

    Add bitrate

 src/gst/parole-gst.c                 |    8 ++++++++
 src/misc/parole-stream.c             |   25 +++++++++++++++++++++++++
 src/plugins/mpris2/mpris2-provider.c |    8 +++++---
 3 files changed, 38 insertions(+), 3 deletions(-)

diff --git a/src/gst/parole-gst.c b/src/gst/parole-gst.c
index e6528b0..b18f425 100644
--- a/src/gst/parole-gst.c
+++ b/src/gst/parole-gst.c
@@ -1367,6 +1367,14 @@ parole_gst_get_meta_data_local_file (ParoleGst *gst, GstTagList *tag)
                       NULL);
     }
     
+    if ( gst_tag_list_get_uint (tag, GST_TAG_BITRATE, &integer) )
+    {
+        TRACE ("bitrate:%i", integer);
+        g_object_set (G_OBJECT (gst->priv->stream),
+                      "bitrate", integer,
+                      NULL);
+    }
+    
     pixbuf = parole_gst_tag_list_get_cover (gst, tag);
     if (pixbuf)
     {
diff --git a/src/misc/parole-stream.c b/src/misc/parole-stream.c
index 2744f06..82d8e32 100644
--- a/src/misc/parole-stream.c
+++ b/src/misc/parole-stream.c
@@ -72,6 +72,7 @@ struct _ParoleStreamPrivate
     gchar      *album;
     gchar      *comment;
     gchar      *genre;
+    guint       bitrate;
     GdkPixbuf  *image;
     gchar      *image_uri, *previous_image;
     
@@ -103,6 +104,7 @@ enum
     PROP_ALBUM,
     PROP_COMMENT,
     PROP_GENRE,
+    PROP_BITRATE,
     PROP_IMAGE_URI
 };
 
@@ -230,6 +232,9 @@ static void parole_stream_set_property (GObject *object,
         case PROP_GENRE:
             PAROLE_STREAM_DUP_GVALUE_STRING (PAROLE_STREAM_GET_PRIVATE (stream)->genre, value);
             break;
+        case PROP_BITRATE:
+            PAROLE_STREAM_GET_PRIVATE (stream)->bitrate = g_value_get_uint (value);
+            break;
         default:
             G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
             break;
@@ -315,6 +320,9 @@ static void parole_stream_get_property (GObject *object,
         case PROP_GENRE:
             g_value_set_string (value, PAROLE_STREAM_GET_PRIVATE (stream)->genre);
             break;
+        case PROP_BITRATE:
+            g_value_set_uint (value, PAROLE_STREAM_GET_PRIVATE (stream)->bitrate);
+            break;
         default:
             G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
             break;
@@ -749,6 +757,22 @@ parole_stream_class_init (ParoleStreamClass *klass)
                                              "URI for the album artwork",
                                              NULL,
                                              G_PARAM_READWRITE));
+                                             
+    /**
+     * ParoleStream:bitrate:
+     * 
+     * Current bitrate in bits/s.
+     * 
+     * Since: 0.6
+     **/
+    g_object_class_install_property (object_class,
+                                     PROP_BITRATE,
+                                     g_param_spec_uint   ("bitrate",
+                                             "Bitrate", 
+                                             "Bitrate",
+                                             0, 2147483647,
+                                             0,
+                                             G_PARAM_READWRITE));
                               
     g_type_class_add_private (klass, sizeof (ParoleStreamPrivate));
 }
@@ -787,6 +811,7 @@ void parole_stream_init_properties (ParoleStream *stream)
     priv->track = 1;
     priv->disp_par_n = 1;
     priv->disp_par_d = 1;
+    priv->bitrate = 0;
     
     PAROLE_STREAM_FREE_STR_PROP (priv->title);
     PAROLE_STREAM_FREE_STR_PROP (priv->uri);
diff --git a/src/plugins/mpris2/mpris2-provider.c b/src/plugins/mpris2/mpris2-provider.c
index 2d6709e..01c0bea 100644
--- a/src/plugins/mpris2/mpris2-provider.c
+++ b/src/plugins/mpris2/mpris2-provider.c
@@ -442,7 +442,7 @@ static void handle_strings_request(GVariantBuilder *b, const gchar *tag, const g
 static void handle_get_metadata (const ParoleStream *stream, GVariantBuilder *b)
 {
     gchar *title, *album, *artist, *year, *comment, *stream_uri, *genre, *image_uri;
-    gint track_id;
+    gint track_id, bitrate;
     gint64 duration;
 
     g_object_get (G_OBJECT (stream),
@@ -456,6 +456,7 @@ static void handle_get_metadata (const ParoleStream *stream, GVariantBuilder *b)
                   "genre", &genre,
                   "image_uri", &image_uri,
                   "track", &track_id,
+                  "bitrate", &bitrate,
                   NULL);
 
     g_variant_builder_add (b, "{sv}", "mpris:trackid",
@@ -477,8 +478,8 @@ static void handle_get_metadata (const ParoleStream *stream, GVariantBuilder *b)
     handle_strings_request(b, "xesam:comment", comment);
     g_variant_builder_add (b, "{sv}", "mpris:length",
         g_variant_new_int64((gint64)duration * 1000000));
-    g_variant_builder_add (b, "{sv}", "audio-bitrate",          // GST_TAG_BITRATE
-        g_variant_new_int32(0));
+    g_variant_builder_add (b, "{sv}", "audio-bitrate",
+        g_variant_new_int32(bitrate));
     g_variant_builder_add (b, "{sv}", "audio-channels",         // No GST_TAG
         g_variant_new_int32(0));
     g_variant_builder_add (b, "{sv}", "audio-samplerate",       // No GST_TAG
@@ -490,6 +491,7 @@ static void handle_get_metadata (const ParoleStream *stream, GVariantBuilder *b)
     g_free(year);
     g_free(comment);
     g_free(stream_uri);
+    g_free(image_uri);
 }
 
 static GVariant* mpris_Player_get_Metadata (GError **error, Mpris2Provider *provider)


More information about the Xfce4-commits mailing list