[rygel] tracker: MediaItem provides metadata keys
- From: Zeeshan Ali Khattak <zeeshanak src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [rygel] tracker: MediaItem provides metadata keys
- Date: Sun, 20 Sep 2009 23:27:57 +0000 (UTC)
commit f5a00335db8973204bf9c8277a5b19e3d18d90a8
Author: Zeeshan Ali (Khattak) <zeeshanak gnome org>
Date: Sat Sep 19 01:55:56 2009 +0300
tracker: MediaItem provides metadata keys
.../tracker/rygel-tracker-image-category.vala | 4 -
src/plugins/tracker/rygel-tracker-image-item.vala | 61 +++------------
src/plugins/tracker/rygel-tracker-item.vala | 79 +++++++++++++++++++-
.../tracker/rygel-tracker-music-category.vala | 4 -
src/plugins/tracker/rygel-tracker-music-item.vala | 65 +++-------------
.../tracker/rygel-tracker-search-container.vala | 6 +-
.../tracker/rygel-tracker-video-category.vala | 4 -
src/plugins/tracker/rygel-tracker-video-item.vala | 57 +++-----------
8 files changed, 113 insertions(+), 167 deletions(-)
---
diff --git a/src/plugins/tracker/rygel-tracker-image-category.vala b/src/plugins/tracker/rygel-tracker-image-category.vala
index 47ba965..0a84975 100644
--- a/src/plugins/tracker/rygel-tracker-image-category.vala
+++ b/src/plugins/tracker/rygel-tracker-image-category.vala
@@ -30,9 +30,5 @@ public class Rygel.TrackerImageCategory : Rygel.TrackerSearchContainer {
string title) {
base (id, parent, title, TrackerImageItem.SERVICE);
}
-
- protected override string[] get_metadata_keys () {
- return TrackerImageItem.get_metadata_keys ();
- }
}
diff --git a/src/plugins/tracker/rygel-tracker-image-item.vala b/src/plugins/tracker/rygel-tracker-image-item.vala
index 6c06628..361ca63 100644
--- a/src/plugins/tracker/rygel-tracker-image-item.vala
+++ b/src/plugins/tracker/rygel-tracker-image-item.vala
@@ -30,69 +30,30 @@ using DBus;
public class Rygel.TrackerImageItem : Rygel.TrackerItem {
public const string SERVICE = "Images";
- private enum Metadata {
- FILE_NAME,
- MIME,
- SIZE,
- TITLE,
- CREATOR,
- WIDTH,
- HEIGHT,
- ALBUM,
- IMAGE_DATE,
- DATE,
- LAST_KEY
- }
-
public TrackerImageItem (string id,
string path,
TrackerSearchContainer parent,
string[] metadata) {
base (id, path, parent, MediaItem.IMAGE_CLASS, metadata);
- }
-
- public static string[] get_metadata_keys () {
- string[] keys = new string[Metadata.LAST_KEY];
- keys[Metadata.FILE_NAME] = "File:Name";
- keys[Metadata.MIME] = "File:Mime";
- keys[Metadata.SIZE] = "File:Size";
- keys[Metadata.TITLE] = "Video:Title";
- keys[Metadata.CREATOR] = "Image:Creator";
- keys[Metadata.WIDTH] = "Image:Width";
- keys[Metadata.HEIGHT] = "Image:Height";
- keys[Metadata.ALBUM] = "Image:Album";
- keys[Metadata.IMAGE_DATE] = "Image:Date";
- keys[Metadata.DATE] = "DC:Date";
- return keys;
- }
-
- protected override void init_from_metadata (string[] values) {
- if (values[Metadata.TITLE] != "")
- this.title = values[Metadata.TITLE];
+ if (metadata[Metadata.IMAGE_TITLE] != "")
+ this.title = metadata[Metadata.IMAGE_TITLE];
else
/* If title wasn't provided, use filename instead */
- this.title = values[Metadata.FILE_NAME];
-
- if (values[Metadata.SIZE] != "")
- this.size = values[Metadata.SIZE].to_int ();
+ this.title = metadata[Metadata.FILE_NAME];
- if (values[Metadata.WIDTH] != "")
- this.width = values[Metadata.WIDTH].to_int ();
+ if (metadata[Metadata.IMAGE_WIDTH] != "")
+ this.width = metadata[Metadata.IMAGE_WIDTH].to_int ();
- if (values[Metadata.HEIGHT] != "")
- this.height = values[Metadata.HEIGHT].to_int ();
+ if (metadata[Metadata.IMAGE_HEIGHT] != "")
+ this.height = metadata[Metadata.IMAGE_HEIGHT].to_int ();
- if (values[Metadata.DATE] != "") {
- this.date = seconds_to_iso8601 (values[Metadata.DATE]);
- } else {
- this.date = seconds_to_iso8601 (values[Metadata.IMAGE_DATE]);
+ if (metadata[Metadata.IMAGE_DATE] != "") {
+ this.date = seconds_to_iso8601 (metadata[Metadata.IMAGE_DATE]);
}
- this.mime_type = values[Metadata.MIME];
- this.author = values[Metadata.CREATOR];
- this.album = values[Metadata.ALBUM];
- this.add_uri (Filename.to_uri (path, null), null);
+ this.author = metadata[Metadata.CREATOR];
+ this.album = metadata[Metadata.IMAGE_ALBUM];
}
}
diff --git a/src/plugins/tracker/rygel-tracker-item.vala b/src/plugins/tracker/rygel-tracker-item.vala
index 418b41a..7abd1c8 100644
--- a/src/plugins/tracker/rygel-tracker-item.vala
+++ b/src/plugins/tracker/rygel-tracker-item.vala
@@ -28,6 +28,39 @@ using DBus;
* Represents Tracker item.
*/
public abstract class Rygel.TrackerItem : Rygel.MediaItem {
+ protected enum Metadata {
+ FILE_NAME,
+ MIME,
+ SIZE,
+ DATE,
+
+ // Image
+ IMAGE_TITLE,
+ IMAGE_WIDTH,
+ IMAGE_HEIGHT,
+ IMAGE_ALBUM,
+ IMAGE_DATE,
+ CREATOR,
+
+ // Audio
+ AUDIO_TITLE,
+ AUDIO_DURATION,
+ AUDIO_ALBUM,
+ ARTIST,
+ TRACK_NUM,
+ RELEASE,
+ DATE_ADDED,
+
+ // Video
+ VIDEO_TITLE,
+ VIDEO_WIDTH,
+ VIDEO_HEIGHT,
+ VIDEO_DURATION,
+ AUTHOR,
+
+ LAST_KEY
+ }
+
protected string path;
public TrackerItem (string id,
@@ -39,7 +72,49 @@ public abstract class Rygel.TrackerItem : Rygel.MediaItem {
this.path = path;
- this.init_from_metadata (metadata);
+ if (metadata[Metadata.SIZE] != "")
+ this.size = metadata[Metadata.SIZE].to_int ();
+
+ if (metadata[Metadata.DATE] != "")
+ this.date = seconds_to_iso8601 (metadata[Metadata.DATE]);
+
+ this.mime_type = metadata[Metadata.MIME];
+
+ this.add_uri (Filename.to_uri (path, null), null);
+ }
+
+ public static string[] get_metadata_keys () {
+ string[] keys = new string[Metadata.LAST_KEY];
+ keys[Metadata.FILE_NAME] = "File:Name";
+ keys[Metadata.MIME] = "File:Mime";
+ keys[Metadata.SIZE] = "File:Size";
+ keys[Metadata.DATE] = "DC:Date";
+
+ // Image metadata
+ keys[Metadata.IMAGE_TITLE] = "Image:Title";
+ keys[Metadata.CREATOR] = "Image:Creator";
+ keys[Metadata.IMAGE_WIDTH] = "Image:Width";
+ keys[Metadata.IMAGE_HEIGHT] = "Image:Height";
+ keys[Metadata.IMAGE_ALBUM] = "Image:Album";
+ keys[Metadata.IMAGE_DATE] = "Image:Date";
+
+ // Audio metadata
+ keys[Metadata.AUDIO_TITLE] = "Audio:Title";
+ keys[Metadata.AUDIO_DURATION] = "Audio:Duration";
+ keys[Metadata.ARTIST] = "Audio:Artist";
+ keys[Metadata.AUDIO_ALBUM] = "Audio:Album";
+ keys[Metadata.TRACK_NUM] = "Audio:TrackNo";
+ keys[Metadata.RELEASE] = "Audio:ReleaseDate";
+ keys[Metadata.DATE_ADDED] = "Audio:DateAdded";
+
+ // Video metadata
+ keys[Metadata.VIDEO_DURATION] = "Video:Duration";
+ keys[Metadata.VIDEO_TITLE] = "Video:Title";
+ keys[Metadata.AUTHOR] = "Video:Author";
+ keys[Metadata.VIDEO_WIDTH] = "Video:Width";
+ keys[Metadata.VIDEO_HEIGHT] = "Video:Height";
+
+ return keys;
}
protected string seconds_to_iso8601 (string seconds) {
@@ -58,7 +133,5 @@ public abstract class Rygel.TrackerItem : Rygel.MediaItem {
return date;
}
-
- protected abstract void init_from_metadata (string[] values);
}
diff --git a/src/plugins/tracker/rygel-tracker-music-category.vala b/src/plugins/tracker/rygel-tracker-music-category.vala
index 66b02a1..9fde818 100644
--- a/src/plugins/tracker/rygel-tracker-music-category.vala
+++ b/src/plugins/tracker/rygel-tracker-music-category.vala
@@ -30,9 +30,5 @@ public class Rygel.TrackerMusicCategory : Rygel.TrackerSearchContainer {
string title) {
base (id, parent, title, TrackerMusicItem.SERVICE);
}
-
- protected override string[] get_metadata_keys () {
- return TrackerMusicItem.get_metadata_keys ();
- }
}
diff --git a/src/plugins/tracker/rygel-tracker-music-item.vala b/src/plugins/tracker/rygel-tracker-music-item.vala
index 2de1b9a..62ff7a5 100644
--- a/src/plugins/tracker/rygel-tracker-music-item.vala
+++ b/src/plugins/tracker/rygel-tracker-music-item.vala
@@ -30,73 +30,32 @@ using DBus;
public class Rygel.TrackerMusicItem : Rygel.TrackerItem {
public const string SERVICE = "Music";
- private enum Metadata {
- FILE_NAME,
- MIME,
- SIZE,
- DURATION,
- TITLE,
- ARTIST,
- TRACK_NUM,
- ALBUM,
- RELEASE,
- DATE_ADDED,
- DATE,
- LAST_KEY
- }
-
public TrackerMusicItem (string id,
string path,
TrackerSearchContainer parent,
string[] metadata) {
base (id, path, parent, MediaItem.MUSIC_CLASS, metadata);
- }
-
- public static string[] get_metadata_keys () {
- string[] keys = new string[Metadata.LAST_KEY];
- keys[Metadata.FILE_NAME] = "File:Name";
- keys[Metadata.MIME] = "File:Mime";
- keys[Metadata.SIZE] = "File:Size";
- keys[Metadata.DURATION] = "Audio:Duration";
- keys[Metadata.TITLE] = "Audio:Title";
- keys[Metadata.ARTIST] = "Audio:Artist";
- keys[Metadata.TRACK_NUM] = "Audio:TrackNo";
- keys[Metadata.ALBUM] = "Audio:Album";
- keys[Metadata.RELEASE] = "Audio:ReleaseDate";
- keys[Metadata.DATE_ADDED] = "Audio:DateAdded";
- keys[Metadata.DATE] = "DC:Date";
- return keys;
- }
-
- protected override void init_from_metadata (string[] values) {
- if (values[Metadata.TITLE] != "")
- this.title = values[Metadata.TITLE];
+ if (metadata[Metadata.AUDIO_TITLE] != "")
+ this.title = metadata[Metadata.AUDIO_TITLE];
else
/* If title wasn't provided, use filename instead */
- this.title = values[Metadata.FILE_NAME];
-
- if (values[Metadata.SIZE] != "")
- this.size = values[Metadata.SIZE].to_int ();
+ this.title = metadata[Metadata.FILE_NAME];
- if (values[Metadata.DURATION] != "")
- this.duration = values[Metadata.DURATION].to_int ();
+ if (metadata[Metadata.AUDIO_DURATION] != "")
+ this.duration = metadata[Metadata.AUDIO_DURATION].to_int ();
- if (values[Metadata.TRACK_NUM] != "")
- this.track_number = values[Metadata.TRACK_NUM].to_int ();
+ if (metadata[Metadata.TRACK_NUM] != "")
+ this.track_number = metadata[Metadata.TRACK_NUM].to_int ();
- if (values[Metadata.DATE] != "") {
- this.date = seconds_to_iso8601 (values[Metadata.DATE]);
- } else if (values[Metadata.RELEASE] != "") {
- this.date = seconds_to_iso8601 (values[Metadata.RELEASE]);
+ if (metadata[Metadata.RELEASE] != "") {
+ this.date = seconds_to_iso8601 (metadata[Metadata.RELEASE]);
} else {
- this.date = seconds_to_iso8601 (values[Metadata.DATE_ADDED]);
+ this.date = seconds_to_iso8601 (metadata[Metadata.DATE_ADDED]);
}
- this.mime_type = values[Metadata.MIME];
- this.author = values[Metadata.ARTIST];
- this.album = values[Metadata.ALBUM];
- this.add_uri (Filename.to_uri (path, null), null);
+ this.author = metadata[Metadata.ARTIST];
+ this.album = metadata[Metadata.AUDIO_ALBUM];
}
}
diff --git a/src/plugins/tracker/rygel-tracker-search-container.vala b/src/plugins/tracker/rygel-tracker-search-container.vala
index 5e7c8c4..19783c8 100644
--- a/src/plugins/tracker/rygel-tracker-search-container.vala
+++ b/src/plugins/tracker/rygel-tracker-search-container.vala
@@ -123,7 +123,7 @@ public abstract class Rygel.TrackerSearchContainer : Rygel.MediaContainer {
try {
this.search.Query (0,
this.service,
- this.get_metadata_keys (),
+ TrackerItem.get_metadata_keys (),
"",
new string[0],
this.query_condition,
@@ -172,7 +172,7 @@ public abstract class Rygel.TrackerSearchContainer : Rygel.MediaContainer {
"No such object");
}
- string[] keys = this.get_metadata_keys ();
+ string[] keys = TrackerItem.get_metadata_keys ();
this.metadata.Get (res.item_service,
res.item_path,
@@ -262,7 +262,5 @@ public abstract class Rygel.TrackerSearchContainer : Rygel.MediaContainer {
TRACKER_PATH,
TRACKER_IFACE);
}
-
- protected abstract string[] get_metadata_keys ();
}
diff --git a/src/plugins/tracker/rygel-tracker-video-category.vala b/src/plugins/tracker/rygel-tracker-video-category.vala
index a4b1723..39f3108 100644
--- a/src/plugins/tracker/rygel-tracker-video-category.vala
+++ b/src/plugins/tracker/rygel-tracker-video-category.vala
@@ -30,9 +30,5 @@ public class Rygel.TrackerVideoCategory : Rygel.TrackerSearchContainer {
string title) {
base (id, parent, title, TrackerVideoItem.SERVICE);
}
-
- protected override string[] get_metadata_keys () {
- return TrackerVideoItem.get_metadata_keys ();
- }
}
diff --git a/src/plugins/tracker/rygel-tracker-video-item.vala b/src/plugins/tracker/rygel-tracker-video-item.vala
index e20d799..8000bfd 100644
--- a/src/plugins/tracker/rygel-tracker-video-item.vala
+++ b/src/plugins/tracker/rygel-tracker-video-item.vala
@@ -30,64 +30,31 @@ using DBus;
public class Rygel.TrackerVideoItem : Rygel.TrackerItem {
public const string SERVICE = "Videos";
- private enum Metadata {
- FILE_NAME,
- MIME,
- SIZE,
- DURATION,
- TITLE,
- AUTHOR,
- WIDTH,
- HEIGHT,
- DATE,
- LAST_KEY
- }
-
public TrackerVideoItem (string id,
string path,
TrackerSearchContainer parent,
string[] metadata) {
base (id, path, parent, MediaItem.VIDEO_CLASS, metadata);
- }
-
- public static string[] get_metadata_keys () {
- string[] keys = new string[Metadata.LAST_KEY];
- keys[Metadata.FILE_NAME] = "File:Name";
- keys[Metadata.MIME] = "File:Mime";
- keys[Metadata.SIZE] = "File:Size";
- keys[Metadata.DURATION] = "Video:Duration";
- keys[Metadata.TITLE] = "Video:Title";
- keys[Metadata.AUTHOR] = "Video:Author";
- keys[Metadata.WIDTH] = "Video:Width";
- keys[Metadata.HEIGHT] = "Video:Height";
- keys[Metadata.DATE] = "DC:Date";
-
- return keys;
- }
- protected override void init_from_metadata (string[] values) {
- if (values[Metadata.TITLE] != "")
- this.title = values[Metadata.TITLE];
+ if (metadata[Metadata.VIDEO_TITLE] != "")
+ this.title = metadata[Metadata.VIDEO_TITLE];
else
/* If title wasn't provided, use filename instead */
- this.title = values[Metadata.FILE_NAME];
+ this.title = metadata[Metadata.FILE_NAME];
- if (values[Metadata.SIZE] != "")
- this.size = values[Metadata.SIZE].to_int ();
+ if (metadata[Metadata.VIDEO_WIDTH] != "")
+ this.width = metadata[Metadata.VIDEO_WIDTH].to_int ();
- if (values[Metadata.DURATION] != "")
- this.duration = values[Metadata.DURATION].to_int ();
+ if (metadata[Metadata.VIDEO_HEIGHT] != "")
+ this.height = metadata[Metadata.VIDEO_HEIGHT].to_int ();
- if (values[Metadata.WIDTH] != "")
- this.width = values[Metadata.WIDTH].to_int ();
+ if (metadata[Metadata.VIDEO_DURATION] != "")
+ this.duration = metadata[Metadata.VIDEO_DURATION].to_int ();
- if (values[Metadata.HEIGHT] != "")
- this.height = values[Metadata.HEIGHT].to_int ();
+ if (metadata[Metadata.VIDEO_DURATION] != "")
+ this.duration = metadata[Metadata.VIDEO_DURATION].to_int ();
- this.date = this.seconds_to_iso8601 (values[Metadata.DATE]);
- this.mime_type = values[Metadata.MIME];
- this.author = values[Metadata.AUTHOR];
- this.add_uri (Filename.to_uri (path, null), null);
+ this.author = metadata[Metadata.AUTHOR];
}
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]