[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