[rygel] media-export: Move id generation to MediaCache



commit 4a88cd8ab6896d947d219982e1a262caab871e6a
Author: Jens Georg <mail jensge org>
Date:   Fri Jul 30 11:11:47 2010 +0200

    media-export: Move id generation to MediaCache
    
    Also use it consistently everywhere

 .../rygel-media-export-db-container.vala           |    2 +-
 .../rygel-media-export-dummy-container.vala        |    2 +-
 .../rygel-media-export-harvesting-task.vala        |    6 +++---
 .../media-export/rygel-media-export-item.vala      |    9 ++-------
 .../rygel-media-export-media-cache.vala            |    5 +++++
 .../rygel-media-export-root-container.vala         |   15 ++++-----------
 6 files changed, 16 insertions(+), 23 deletions(-)
---
diff --git a/src/plugins/media-export/rygel-media-export-db-container.vala b/src/plugins/media-export/rygel-media-export-db-container.vala
index 6161a2d..5e3678d 100644
--- a/src/plugins/media-export/rygel-media-export-db-container.vala
+++ b/src/plugins/media-export/rygel-media-export-db-container.vala
@@ -92,7 +92,7 @@ public class Rygel.MediaExport.DBContainer : MediaContainer {
         yield base.add_item (item, cancellable);
 
         item.parent = this;
-        item.id = Item.get_id (File.new_for_uri (item.uris[0]));
+        item.id = MediaCache.get_id (File.new_for_uri (item.uris[0]));
         this.media_db.save_item (item);
     }
 
diff --git a/src/plugins/media-export/rygel-media-export-dummy-container.vala b/src/plugins/media-export/rygel-media-export-dummy-container.vala
index 249567d..7f07155 100644
--- a/src/plugins/media-export/rygel-media-export-dummy-container.vala
+++ b/src/plugins/media-export/rygel-media-export-dummy-container.vala
@@ -25,7 +25,7 @@ internal class Rygel.MediaExport.DummyContainer : NullContainer {
 
     public DummyContainer (File           file,
                            MediaContainer parent) {
-        this.id = Item.get_id (file);
+        this.id = MediaCache.get_id (file);
         this.title = file.get_basename ();
         this.parent_ref = parent;
         this.file = file;
diff --git a/src/plugins/media-export/rygel-media-export-harvesting-task.vala b/src/plugins/media-export/rygel-media-export-harvesting-task.vala
index c3567ee..7bbec41 100644
--- a/src/plugins/media-export/rygel-media-export-harvesting-task.vala
+++ b/src/plugins/media-export/rygel-media-export-harvesting-task.vala
@@ -124,7 +124,7 @@ public class Rygel.MediaExport.HarvestingTask : Rygel.StateMachine, GLib.Object
      */
     private bool push_if_changed_or_unknown (File       file,
                                              FileInfo   info) {
-        var id = Item.get_id (file);
+        var id = MediaCache.get_id (file);
         int64 timestamp;
         try {
             if (this.cache.exists (id, out timestamp)) {
@@ -204,7 +204,7 @@ public class Rygel.MediaExport.HarvestingTask : Rygel.StateMachine, GLib.Object
         foreach (var info in list) {
             var dir = parent_container.file;
             var file = dir.get_child (info.get_name ());
-            parent_container.seen (Item.get_id (file));
+            parent_container.seen (MediaCache.get_id (file));
             this.process_file (file, info, parent_container);
         }
 
@@ -265,7 +265,7 @@ public class Rygel.MediaExport.HarvestingTask : Rygel.StateMachine, GLib.Object
             // nothing to do
             if (this.flag != null) {
                 try {
-                    this.cache.flag_object (Item.get_id (this.origin),
+                    this.cache.flag_object (MediaCache.get_id (this.origin),
                                             this.flag);
                 } catch (Error error) {};
             }
diff --git a/src/plugins/media-export/rygel-media-export-item.vala b/src/plugins/media-export/rygel-media-export-item.vala
index c982bef..c3d6ea1 100644
--- a/src/plugins/media-export/rygel-media-export-item.vala
+++ b/src/plugins/media-export/rygel-media-export-item.vala
@@ -28,11 +28,6 @@ using Gst;
  * Represents MediaExport item.
  */
 public class Rygel.MediaExport.Item : Rygel.MediaItem {
-    public static string get_id (File file) {
-        return Checksum.compute_for_string (ChecksumType.MD5,
-                                            file.get_uri ());
-    }
-
     public Item.simple (MediaContainer parent,
                         File           file,
                         string         mime,
@@ -49,7 +44,7 @@ public class Rygel.MediaExport.Item : Rygel.MediaItem {
             upnp_class = MediaItem.AUDIO_CLASS;
         }
 
-        base (get_id (file), parent, title, upnp_class);
+        base (MediaCache.get_id (file), parent, title, upnp_class);
         this.mime_type = mime;
         this.size = (int64) size;
         this.modified = mtime;
@@ -62,7 +57,7 @@ public class Rygel.MediaExport.Item : Rygel.MediaItem {
                                           string                mime,
                                           uint64                size,
                                           uint64                mtime) {
-        string id = get_id (file);
+        string id = MediaCache.get_id (file);
         unowned StreamAudioInformation audio_info = null;
         unowned StreamVideoInformation video_info = null;
 
diff --git a/src/plugins/media-export/rygel-media-export-media-cache.vala b/src/plugins/media-export/rygel-media-export-media-cache.vala
index 934ae7e..8aedae7 100644
--- a/src/plugins/media-export/rygel-media-export-media-cache.vala
+++ b/src/plugins/media-export/rygel-media-export-media-cache.vala
@@ -49,6 +49,11 @@ public class Rygel.MediaExport.MediaCache : Object {
 
     private static MediaCache instance;
 
+    public static string get_id (File file) {
+        return Checksum.compute_for_string (ChecksumType.MD5,
+                                            file.get_uri ());
+    }
+
     public void remove_by_id (string id) throws DatabaseError {
         GLib.Value[] values = { id };
         this.db.exec (this.sql.make (SQLString.DELETE), values);
diff --git a/src/plugins/media-export/rygel-media-export-root-container.vala b/src/plugins/media-export/rygel-media-export-root-container.vala
index c0e074f..dd355bf 100644
--- a/src/plugins/media-export/rygel-media-export-root-container.vala
+++ b/src/plugins/media-export/rygel-media-export-root-container.vala
@@ -70,8 +70,7 @@ public class Rygel.MediaExport.RootContainer : Rygel.MediaExport.DBContainer {
 
     public void remove_uri (string uri) {
         var file = File.new_for_commandline_arg (uri);
-        var id = Checksum.compute_for_string (ChecksumType.MD5,
-                                              file.get_uri ());
+        var id = MediaCache.get_id (file);
 
         this.harvester.cancel (file);
         try {
@@ -288,9 +287,7 @@ public class Rygel.MediaExport.RootContainer : Rygel.MediaExport.DBContainer {
         foreach (var uri in uris) {
             var file = File.new_for_commandline_arg (uri);
             if (file.query_exists (null)) {
-                var id = Checksum.compute_for_string (ChecksumType.MD5,
-                                                      file.get_uri ());
-                ids.remove (id);
+                ids.remove (MediaCache.get_id (file));
                 this.harvester.schedule (file, this);
             }
         }
@@ -347,10 +344,8 @@ public class Rygel.MediaExport.RootContainer : Rygel.MediaExport.DBContainer {
                 debug (_("Trying to harvest %s because of %d"),
                        file.get_uri (),
                        event);
-                var parent = file.get_parent ();
-                var id = Checksum.compute_for_string (ChecksumType.MD5,
-                                                      parent.get_uri ());
                 try {
+                    var id = MediaCache.get_id (file.get_parent ());
                     var parent_container = this.media_db.get_object (id)
                                            as MediaContainer;
                     assert (parent_container != null);
@@ -363,14 +358,12 @@ public class Rygel.MediaExport.RootContainer : Rygel.MediaExport.DBContainer {
                 }
                 break;
             case FileMonitorEvent.DELETED:
-                var id = Checksum.compute_for_string (ChecksumType.MD5,
-                                                      file.get_uri ());
-
                 this.harvester.cancel (file);
                 try {
                     // the full object is fetched instead of simply calling
                     // exists because we need the parent to signalize the
                     // change
+                    var id = MediaCache.get_id (file);
                     var obj = this.media_db.get_object (id);
 
                     // it may be that files removed are files that are not



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