* Tracker image item factory.
*/
public class Rygel.TrackerImageItemFactory : Rygel.TrackerItemFactory {
+ private enum ImageMetadata {
+ HEIGHT = Metadata.LAST_KEY,
+ WIDTH,
+
+ LAST_KEY
+ }
+
private const string CATEGORY = "nmm:Photo";
public TrackerImageItemFactory () {
throws GLib.Error {
var item = base.create (id, path, parent, metadata);
- if (metadata[Metadata.WIDTH] != "")
- item.width = metadata[Metadata.WIDTH].to_int ();
+ if (metadata[ImageMetadata.WIDTH] != "")
+ item.width = metadata[ImageMetadata.WIDTH].to_int ();
- if (metadata[Metadata.HEIGHT] != "")
- item.height = metadata[Metadata.HEIGHT].to_int ();
+ if (metadata[ImageMetadata.HEIGHT] != "")
+ item.height = metadata[ImageMetadata.HEIGHT].to_int ();
- if (metadata[Metadata.DATE] != "") {
- item.date = seconds_to_iso8601 (metadata[Metadata.DATE]);
+ return item;
+ }
+
+ public override string[] get_metadata_keys () {
+ var base_keys = base.get_metadata_keys ();
+
+ var keys = new string[ImageMetadata.LAST_KEY];
+ for (var i = 0; i < base_keys.length; i++) {
+ keys[i] = base_keys[i];
}
- return item;
+ keys[ImageMetadata.WIDTH] = "nfo:width";
+ keys[ImageMetadata.HEIGHT] = "nfo:height";
+
+ return keys;
}
}
SIZE,
DATE,
- // Image and Video
- HEIGHT,
- WIDTH,
-
- // Audio and Video
- DURATION,
-
- // Audio
- AUDIO_ALBUM,
- AUDIO_ARTIST,
- AUDIO_TRACK_NUM,
-
LAST_KEY
}
return item;
}
- public static string[] get_metadata_keys () {
+ public virtual string[] get_metadata_keys () {
string[] keys = new string[Metadata.LAST_KEY];
keys[Metadata.FILE_NAME] = "nfo:fileName";
keys[Metadata.TITLE] = "nie:title";
keys[Metadata.SIZE] = "nfo:fileSize";
keys[Metadata.DATE] = "dc:date";
- // Image and Video metadata
- keys[Metadata.WIDTH] = "nfo:width";
- keys[Metadata.HEIGHT] = "nfo:height";
-
- // Audio and Video metadata
- keys[Metadata.DURATION] = "nmm:length";
-
- // Audio metadata
- keys[Metadata.AUDIO_ARTIST] = "nmm:performer";
- keys[Metadata.AUDIO_ALBUM] = "nmm:musicAlbum";
- keys[Metadata.AUDIO_TRACK_NUM] = "nmm:trackNumber";
-
return keys;
}
* Tracker music item factory.
*/
public class Rygel.TrackerMusicItemFactory : Rygel.TrackerItemFactory {
+ private enum MusicMetadata {
+ DURATION = Metadata.LAST_KEY,
+ AUDIO_ALBUM,
+ AUDIO_ARTIST,
+ AUDIO_TRACK_NUM,
+
+ LAST_KEY
+ }
+
private const string CATEGORY = "nmm:MusicPiece";
public TrackerMusicItemFactory () {
throws GLib.Error {
var item = base.create (id, path, parent, metadata);
- if (metadata[Metadata.DURATION] != "")
- item.duration = metadata[Metadata.DURATION].to_int ();
+ if (metadata[MusicMetadata.DURATION] != "")
+ item.duration = metadata[MusicMetadata.DURATION].to_int ();
- if (metadata[Metadata.AUDIO_TRACK_NUM] != "")
- item.track_number = metadata[Metadata.AUDIO_TRACK_NUM].to_int ();
-
- if (metadata[Metadata.DATE] != "") {
- item.date = seconds_to_iso8601 (metadata[Metadata.DATE]);
+ if (metadata[MusicMetadata.AUDIO_TRACK_NUM] != "") {
+ var track_number = metadata[MusicMetadata.AUDIO_TRACK_NUM];
+ item.track_number = track_number.to_int ();
}
- item.author = metadata[Metadata.AUDIO_ARTIST];
- item.album = metadata[Metadata.AUDIO_ALBUM];
+ item.author = metadata[MusicMetadata.AUDIO_ARTIST];
+ item.album = metadata[MusicMetadata.AUDIO_ALBUM];
return item;
}
+
+ public override string[] get_metadata_keys () {
+ var base_keys = base.get_metadata_keys ();
+
+ var keys = new string[MusicMetadata.LAST_KEY];
+ for (var i = 0; i < base_keys.length; i++) {
+ keys[i] = base_keys[i];
+ }
+
+ keys[MusicMetadata.DURATION] = "nmm:length";
+ keys[MusicMetadata.AUDIO_ARTIST] = "nmm:performer";
+ keys[MusicMetadata.AUDIO_ALBUM] = "nmm:musicAlbum";
+ keys[MusicMetadata.AUDIO_TRACK_NUM] = "nmm:trackNumber";
+
+ return keys;
+ }
}
false));
var optional = new TrackerQueryTriplets ();
- foreach (var key in TrackerItemFactory.get_metadata_keys ()) {
+ foreach (var key in this.item_factory.get_metadata_keys ()) {
var variable = "?" + key.replace (":", "_");
variables.add (variable);
* Tracker video item factory.
*/
public class Rygel.TrackerVideoItemFactory : Rygel.TrackerItemFactory {
+ private enum VideoMetadata {
+ HEIGHT = Metadata.LAST_KEY,
+ WIDTH,
+ DURATION,
+
+ LAST_KEY
+ }
+
private const string CATEGORY = "nmm:Video";
public TrackerVideoItemFactory () {
throws GLib.Error {
var item = base.create (id, path, parent, metadata);
- if (metadata[Metadata.WIDTH] != "")
- item.width = metadata[Metadata.WIDTH].to_int ();
+ if (metadata[VideoMetadata.WIDTH] != "")
+ item.width = metadata[VideoMetadata.WIDTH].to_int ();
- if (metadata[Metadata.HEIGHT] != "")
- item.height = metadata[Metadata.HEIGHT].to_int ();
+ if (metadata[VideoMetadata.HEIGHT] != "")
+ item.height = metadata[VideoMetadata.HEIGHT].to_int ();
- if (metadata[Metadata.DURATION] != "")
- item.duration = metadata[Metadata.DURATION].to_int ();
+ if (metadata[VideoMetadata.DURATION] != "")
+ item.duration = metadata[VideoMetadata.DURATION].to_int ();
return item;
}
+
+ public override string[] get_metadata_keys () {
+ var base_keys = base.get_metadata_keys ();
+
+ var keys = new string[VideoMetadata.LAST_KEY];
+ for (var i = 0; i < base_keys.length; i++) {
+ keys[i] = base_keys[i];
+ }
+
+ keys[VideoMetadata.WIDTH] = "nfo:width";
+ keys[VideoMetadata.HEIGHT] = "nfo:height";
+ keys[VideoMetadata.DURATION] = "nmm:length";
+
+ return keys;
+ }
}