[grilo-plugins/tracker-notification] tracker: support metadata request with NULL media



commit 0aa8b1714bdfa0f1331b2b9082fba5ae086ae12a
Author: Lionel Landwerlin <lionel g landwerlin linux intel com>
Date:   Fri Feb 25 15:13:38 2011 +0000

    tracker: support metadata request with NULL media
    
    Only with per source device
    
    Signed-off-by: Lionel Landwerlin <lionel g landwerlin linux intel com>

 src/tracker/grl-tracker-api.c |   24 +++++++++++++++++-------
 1 files changed, 17 insertions(+), 7 deletions(-)
---
diff --git a/src/tracker/grl-tracker-api.c b/src/tracker/grl-tracker-api.c
index e007cc8..08a618f 100644
--- a/src/tracker/grl-tracker-api.c
+++ b/src/tracker/grl-tracker-api.c
@@ -523,18 +523,26 @@ grl_tracker_source_metadata (GrlMediaSource *source,
                              GrlMediaSourceMetadataSpec *ms)
 {
   GrlTrackerSourcePriv *priv = GRL_TRACKER_SOURCE_GET_PRIVATE (source);
-  gchar                *sparql_select, *sparql_final;
+  gchar                *constraint = NULL, *sparql_select, *sparql_final;
 
   GRL_DEBUG ("%s: id=%i", __FUNCTION__, ms->metadata_id);
 
-  if (grl_media_get_id (ms->media) == NULL) {
-    ms->callback (ms->source, ms->media, ms->user_data, NULL);
-    return;
+  if (grl_tracker_per_device_source) {
+    constraint = grl_tracker_source_get_device_constraint (priv);
+    sparql_select = grl_tracker_source_get_select_string (source, ms->keys);
+    sparql_final = g_strdup_printf (TRACKER_BROWSE_FILESYSTEM_ROOT_REQUEST,
+                                    sparql_select, constraint, 0, 1);
+  } else {
+    if (grl_media_get_id (ms->media) == NULL) {
+      ms->callback (ms->source, ms->media, ms->user_data, NULL);
+      return;
+    }
+    sparql_select = grl_tracker_source_get_select_string (source, ms->keys);
+    sparql_final = g_strdup_printf (TRACKER_METADATA_REQUEST, sparql_select,
+                                    grl_media_get_id (ms->media));
   }
 
-  sparql_select = grl_tracker_source_get_select_string (source, ms->keys);
-  sparql_final = g_strdup_printf (TRACKER_METADATA_REQUEST, sparql_select,
-                                  grl_media_get_id (ms->media));
+
 
   GRL_DEBUG ("\tselect: '%s'", sparql_final);
 
@@ -544,6 +552,8 @@ grl_tracker_source_metadata (GrlMediaSource *source,
                                          (GAsyncReadyCallback) tracker_metadata_cb,
                                          ms);
 
+  if (constraint != NULL)
+    g_free (constraint);
   if (sparql_select != NULL)
     g_free (sparql_select);
   if (sparql_final != NULL)



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