[rhythmbox] Grilo: quality column.
- From: Jonathan Matthew <jmatthew src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [rhythmbox] Grilo: quality column.
- Date: Sun, 9 Apr 2017 21:40:20 +0000 (UTC)
commit fb088da9c3f9aa5c043fae3d66634b1285642d15
Author: Ben Walsh <b wumpster com>
Date: Mon Nov 28 23:01:26 2016 +0000
Grilo: quality column.
https://bugzilla.gnome.org/show_bug.cgi?id=775447
plugins/grilo/rb-grilo-source.c | 37 ++++++++++++++++++++++++++++++++-----
1 files changed, 32 insertions(+), 5 deletions(-)
---
diff --git a/plugins/grilo/rb-grilo-source.c b/plugins/grilo/rb-grilo-source.c
index 443ef2c..d338c14 100644
--- a/plugins/grilo/rb-grilo-source.c
+++ b/plugins/grilo/rb-grilo-source.c
@@ -270,6 +270,7 @@ rb_grilo_source_constructed (GObject *object)
GtkWidget *vbox;
GtkWidget *mainbox;
GtkAdjustment *adjustment;
+ gboolean want_quality_column = FALSE;
RB_CHAIN_GOBJECT_METHOD (rb_grilo_source_parent_class, constructed, object);
source = RB_GRILO_SOURCE (object);
@@ -331,6 +332,19 @@ rb_grilo_source_constructed (GObject *object)
source->priv->grilo_keys = g_list_prepend (source->priv->grilo_keys,
GUINT_TO_POINTER(GRL_METADATA_KEY_DURATION));
}
+ if (g_list_find ((GList *)source_keys, GUINT_TO_POINTER(GRL_METADATA_KEY_BITRATE))) {
+ want_quality_column = TRUE;
+ source->priv->grilo_keys = g_list_prepend (source->priv->grilo_keys,
+ GUINT_TO_POINTER(GRL_METADATA_KEY_BITRATE));
+ }
+ if (g_list_find ((GList *)source_keys, GUINT_TO_POINTER(GRL_METADATA_KEY_MIME))) {
+ want_quality_column = TRUE;
+ source->priv->grilo_keys = g_list_prepend (source->priv->grilo_keys,
+ GUINT_TO_POINTER(GRL_METADATA_KEY_MIME));
+ }
+ if (want_quality_column) {
+ rb_entry_view_append_column (source->priv->entry_view, RB_ENTRY_VIEW_COL_QUALITY, FALSE);
+ }
source->priv->grilo_keys = g_list_prepend (source->priv->grilo_keys,
GUINT_TO_POINTER(GRL_METADATA_KEY_CHILDCOUNT));
source->priv->grilo_keys = g_list_prepend (source->priv->grilo_keys,
GUINT_TO_POINTER(GRL_METADATA_KEY_URL));
@@ -551,6 +565,7 @@ create_entry_for_media (RhythmDB *db, RhythmDBEntryType *entry_type, GrlData *da
{
RhythmDBEntry *entry;
RBGriloEntryData *entry_data;
+ gulong bitrate = 0;
const gchar *url;
url = grl_media_get_url (GRL_MEDIA (data));
@@ -582,11 +597,7 @@ create_entry_for_media (RhythmDB *db, RhythmDBEntryType *entry_type, GrlData *da
}
if (grl_data_has_key (data, GRL_METADATA_KEY_BITRATE)) {
- GValue v = {0,};
- g_value_init (&v, G_TYPE_ULONG);
- g_value_set_ulong (&v, grl_data_get_int (data, GRL_METADATA_KEY_BITRATE));
- rhythmdb_entry_set (db, entry, RHYTHMDB_PROP_BITRATE, &v);
- g_value_unset (&v);
+ bitrate = grl_data_get_int (data, GRL_METADATA_KEY_BITRATE);
}
if (grl_data_has_key (data, GRL_METADATA_KEY_DURATION)) {
@@ -602,6 +613,13 @@ create_entry_for_media (RhythmDB *db, RhythmDBEntryType *entry_type, GrlData *da
const char *media_type;
media_type = rb_gst_mime_type_to_media_type (grl_data_get_string (data,
GRL_METADATA_KEY_MIME));
if (media_type) {
+ if (rb_gst_media_type_is_lossless (media_type)) {
+ /* For lossless, rhythmdb_entry_is_lossless expects
+ * bitrate == 0/unset, but DLNA server may report
+ * actual bitrate. Unset bitrate to keep
+ * rhythmdb_entry_is_lossless happy. */
+ bitrate = 0;
+ }
GValue v = {0,};
g_value_init (&v, G_TYPE_STRING);
g_value_set_string (&v, media_type);
@@ -610,6 +628,15 @@ create_entry_for_media (RhythmDB *db, RhythmDBEntryType *entry_type, GrlData *da
}
}
+ if (bitrate != 0) {
+ GValue v = {0,};
+ g_value_init (&v, G_TYPE_ULONG);
+ /* Grilo uses kbps and so do we. */
+ g_value_set_ulong (&v, bitrate);
+ rhythmdb_entry_set (db, entry, RHYTHMDB_PROP_BITRATE, &v);
+ g_value_unset (&v);
+ }
+
if (grl_data_has_key (data, GRL_METADATA_KEY_TRACK_NUMBER)) {
GValue v = {0,};
g_value_init (&v, G_TYPE_ULONG);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]