[grilo-plugins] grl-tracker-utils: Add setters for new writable keys



commit a636a51acb145c520b9e4c0806a914c2f88323cf
Author: Sumaid Syed <sumaidsyed gmail com>
Date:   Fri Jul 26 15:35:14 2019 +0530

    grl-tracker-utils: Add setters for new writable keys
    
    https://gitlab.gnome.org/GNOME/gnome-music/issues/293

 src/tracker/grl-tracker-utils.c | 47 ++++++++++++++++++++++++++++++-----------
 1 file changed, 35 insertions(+), 12 deletions(-)
---
diff --git a/src/tracker/grl-tracker-utils.c b/src/tracker/grl-tracker-utils.c
index dece73f0..74b790dc 100644
--- a/src/tracker/grl-tracker-utils.c
+++ b/src/tracker/grl-tracker-utils.c
@@ -131,6 +131,26 @@ set_title (TrackerSparqlCursor *cursor,
   grl_media_set_title (media, str);
 }
 
+static void
+set_string_metadata_keys (TrackerSparqlCursor *cursor,
+                          gint                 column,
+                          GrlMedia            *media,
+                          GrlKeyID             key)
+{
+  const gchar *str = tracker_sparql_cursor_get_string (cursor, column, NULL);
+  grl_data_set_string (GRL_DATA (media), key, str);
+}
+
+static void
+set_int_metadata_keys (TrackerSparqlCursor *cursor,
+                       gint                 column,
+                       GrlMedia            *media,
+                       GrlKeyID             key)
+{
+  const gint64 value = tracker_sparql_cursor_get_integer (cursor, column);
+  grl_data_set_int (GRL_DATA (media), key, value);
+}
+
 static tracker_grl_sparql_t *
 insert_key_mapping (GrlKeyID     grl_key,
                     const gchar *sparql_key_attr,
@@ -276,20 +296,22 @@ grl_tracker_setup_key_mappings (void)
                       "nfo:duration(?urn)",
                       "audio");
 
-  insert_key_mapping (GRL_METADATA_KEY_MB_TRACK_ID,
-                      "nmm:mbTrackID",
-                      "nmm:mbTrackID(?urn)",
-                      "audio");
+  insert_key_mapping_with_setter (GRL_METADATA_KEY_MB_TRACK_ID,
+                                  "nmm:mbTrackID",
+                                  "nmm:mbTrackID(?urn)",
+                                  "audio",
+                                  set_string_metadata_keys);
 
   insert_key_mapping (GRL_METADATA_KEY_MB_ARTIST_ID,
                       "nmm:mbArtistID",
                       "nmm:mbArtistID(?urn)",
                       "audio");
 
-  insert_key_mapping (GRL_METADATA_KEY_MB_RECORDING_ID,
-                      "nmm:mbRecordingID",
-                      "nmm:mbRecordingID(?urn)",
-                      "audio");
+  insert_key_mapping_with_setter (GRL_METADATA_KEY_MB_RECORDING_ID,
+                                  "nmm:mbRecordingID",
+                                  "nmm:mbRecordingID(?urn)",
+                                  "audio",
+                                  set_string_metadata_keys);
 
   insert_key_mapping (GRL_METADATA_KEY_MB_RELEASE_ID,
                       "nmm:mbReleaseID",
@@ -424,10 +446,11 @@ grl_tracker_setup_key_mappings (void)
                         "media");
   }
 
-  insert_key_mapping (GRL_METADATA_KEY_TRACK_NUMBER,
-                      "nmm:trackNumber",
-                      "nmm:trackNumber(?urn)",
-                      "audio");
+  insert_key_mapping_with_setter (GRL_METADATA_KEY_TRACK_NUMBER,
+                                  "nmm:trackNumber",
+                                  "nmm:trackNumber(?urn)",
+                                  "audio",
+                                  set_int_metadata_keys);
 
   insert_key_mapping_with_setter (GRL_METADATA_KEY_FAVOURITE,
                                   "nao:hasTag",


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]