[rygel] tracker: Adapt to Tracker API changes
- From: Zeeshan Ali Khattak <zeeshanak src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [rygel] tracker: Adapt to Tracker API changes
- Date: Wed, 17 Feb 2010 13:42:10 +0000 (UTC)
commit 13b1229ee2aa9c9738d9239f67d134591c371bef
Author: Zeeshan Ali (Khattak) <zeeshanak gnome org>
Date: Mon Feb 15 15:46:44 2010 +0200
tracker: Adapt to Tracker API changes
- URLs are not necessarily the same as item IDs (URN) anymore.
- "nmm:length" has been replaced by "nfo:duration".
.../tracker/rygel-tracker-music-item-factory.vala | 2 +-
.../tracker/rygel-tracker-search-container.vala | 21 +++++++++++++------
.../tracker/rygel-tracker-video-item-factory.vala | 2 +-
3 files changed, 16 insertions(+), 9 deletions(-)
---
diff --git a/src/plugins/tracker/rygel-tracker-music-item-factory.vala b/src/plugins/tracker/rygel-tracker-music-item-factory.vala
index 7de4e93..b630fd7 100644
--- a/src/plugins/tracker/rygel-tracker-music-item-factory.vala
+++ b/src/plugins/tracker/rygel-tracker-music-item-factory.vala
@@ -48,7 +48,7 @@ public class Rygel.TrackerMusicItemFactory : Rygel.TrackerItemFactory {
this.key_chains.add (new ArrayList<string> ());
}
- this.key_chains[MusicMetadata.DURATION].add ("nmm:length");
+ this.key_chains[MusicMetadata.DURATION].add ("nfo:duration");
this.key_chains[MusicMetadata.AUDIO_ARTIST].add ("nmm:performer");
this.key_chains[MusicMetadata.AUDIO_ARTIST].add ("nmm:artistName");
this.key_chains[MusicMetadata.AUDIO_ALBUM].add ("nmm:musicAlbum");
diff --git a/src/plugins/tracker/rygel-tracker-search-container.vala b/src/plugins/tracker/rygel-tracker-search-container.vala
index b9dc6ef..8767f72 100644
--- a/src/plugins/tracker/rygel-tracker-search-container.vala
+++ b/src/plugins/tracker/rygel-tracker-search-container.vala
@@ -36,6 +36,8 @@ public class Rygel.TrackerSearchContainer : Rygel.MediaContainer {
private const string ITEM_VARIABLE = "?item";
private const string MODIFIED_PREDICATE = "nfo:fileLastModified";
private const string MODIFIED_VARIABLE = "?modified";
+ private const string URL_PREDICATE = "nie:url";
+ private const string URL_VARIABLE = "?url";
public TrackerSelectionQuery query;
public TrackerItemFactory item_factory;
@@ -54,6 +56,7 @@ public class Rygel.TrackerSearchContainer : Rygel.MediaContainer {
var variables = new ArrayList<string> ();
variables.add (ITEM_VARIABLE);
+ variables.add (URL_VARIABLE);
TrackerQueryTriplets our_mandatory;
if (mandatory != null) {
@@ -70,6 +73,10 @@ public class Rygel.TrackerSearchContainer : Rygel.MediaContainer {
MODIFIED_PREDICATE,
MODIFIED_VARIABLE,
false));
+ our_mandatory.add (new TrackerQueryTriplet (ITEM_VARIABLE,
+ URL_PREDICATE,
+ URL_VARIABLE,
+ false));
var optional = new TrackerQueryTriplets ();
foreach (var chain in this.item_factory.key_chains) {
@@ -146,9 +153,9 @@ public class Rygel.TrackerSearchContainer : Rygel.MediaContainer {
/* Iterate through all items */
for (uint i = 0; i < query.result.length[0]; i++) {
- string uri = query.result[i, 0];
- string[] metadata = this.slice_strvv_tail (query.result, i, 1);
- var id = this.id + ":" + uri;
+ var id = this.id + ":" + query.result[i, 0];
+ var uri = query.result[i, 1];
+ string[] metadata = this.slice_strvv_tail (query.result, i, 2);
var item = this.item_factory.create (id, uri, this, metadata);
results.add (item);
@@ -240,13 +247,13 @@ public class Rygel.TrackerSearchContainer : Rygel.MediaContainer {
case SearchCriteriaOp.EQ:
string parent_id;
- var uri = this.get_item_info (expression.operand2,
+ var urn = this.get_item_info (expression.operand2,
out parent_id);
- if (uri == null || parent_id == null || parent_id != this.id) {
+ if (urn == null || parent_id == null || parent_id != this.id) {
break;
}
- filter = ITEM_VARIABLE + " = <" + uri + ">";
+ filter = ITEM_VARIABLE + " = <" + urn + ">";
break;
case SearchCriteriaOp.CONTAINS:
filter = "regex(" + ITEM_VARIABLE + ", " +
@@ -258,7 +265,7 @@ public class Rygel.TrackerSearchContainer : Rygel.MediaContainer {
return filter;
}
- // Returns the URI and the ID of the parent this item belongs to, or null
+ // Returns the URN and the ID of the parent this item belongs to, or null
// if item_id is invalid
private string? get_item_info (string item_id,
out string parent_id) {
diff --git a/src/plugins/tracker/rygel-tracker-video-item-factory.vala b/src/plugins/tracker/rygel-tracker-video-item-factory.vala
index 0c15907..cd115b7 100644
--- a/src/plugins/tracker/rygel-tracker-video-item-factory.vala
+++ b/src/plugins/tracker/rygel-tracker-video-item-factory.vala
@@ -49,7 +49,7 @@ public class Rygel.TrackerVideoItemFactory : Rygel.TrackerItemFactory {
this.key_chains[VideoMetadata.WIDTH].add ("nfo:width");
this.key_chains[VideoMetadata.HEIGHT].add ("nfo:height");
- this.key_chains[VideoMetadata.DURATION].add ("nmm:length");
+ this.key_chains[VideoMetadata.DURATION].add ("nfo:duration");
}
public override MediaItem create (string id,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]