[rygel/wip/track-changes: 122/128] WIP



commit 210d34f50a785ac64aa5ef77ec596a3d8a23dd2e
Author: Jens Georg <jensg openismus com>
Date:   Tue Oct 9 19:17:52 2012 +0200

    WIP

 data/xml/ContentDirectory.xml.in                   |    5 +++++
 data/xml/MediaServer2.xml.in                       |    2 +-
 src/librygel-server/rygel-content-directory.vala   |    4 +++-
 src/librygel-server/rygel-simple-container.vala    |    9 ++++-----
 src/plugins/external/rygel-external-container.vala |   18 +++++++++---------
 .../external/rygel-external-interfaces.vala        |    4 ++--
 .../rygel-media-export-db-container.vala           |    2 +-
 .../media-export/rygel-media-export-harvester.vala |    2 +-
 .../rygel-media-export-harvesting-task.vala        |    4 ++--
 .../rygel-media-export-root-container.vala         |   10 +++++-----
 .../mediathek/rygel-mediathek-rss-container.vala   |    2 +-
 .../tracker/rygel-tracker-metadata-container.vala  |    2 +-
 12 files changed, 35 insertions(+), 29 deletions(-)
---
diff --git a/data/xml/ContentDirectory.xml.in b/data/xml/ContentDirectory.xml.in
index 8460158..1d8ba50 100644
--- a/data/xml/ContentDirectory.xml.in
+++ b/data/xml/ContentDirectory.xml.in
@@ -25,6 +25,11 @@
          <dataType>string</dataType>
       </stateVariable>
 
+      <stateVariable sendEvents="yes">
+          <name>LastChange</name>
+          <dataType>string</dataType>
+      </stateVariable>
+
       <stateVariable sendEvents="no">
          <name>FeatureList</name>
          <dataType>string</dataType>
diff --git a/data/xml/MediaServer2.xml.in b/data/xml/MediaServer2.xml.in
index b341e13..636f9f5 100644
--- a/data/xml/MediaServer2.xml.in
+++ b/data/xml/MediaServer2.xml.in
@@ -5,7 +5,7 @@
 <minor>0</minor>
 </specVersion>
 <device>
-<deviceType>urn:schemas-upnp-org:device:MediaServer:2</deviceType>
+<deviceType>urn:schemas-upnp-org:device:MediaServer:3</deviceType>
 <UDN></UDN>
 <friendlyName></friendlyName>
 <manufacturer>Rygel Developers.</manufacturer>
diff --git a/src/librygel-server/rygel-content-directory.vala b/src/librygel-server/rygel-content-directory.vala
index cc93fd4..c6e1ffe 100644
--- a/src/librygel-server/rygel-content-directory.vala
+++ b/src/librygel-server/rygel-content-directory.vala
@@ -48,7 +48,7 @@ internal errordomain Rygel.ContentDirectoryError {
 internal class Rygel.ContentDirectory: Service {
     public const string UPNP_ID = "urn:upnp-org:serviceId:ContentDirectory";
     public const string UPNP_TYPE =
-                    "urn:schemas-upnp-org:service:ContentDirectory:2";
+                    "urn:schemas-upnp-org:service:ContentDirectory:3";
     public const string UPNP_TYPE_V1 =
                     "urn:schemas-upnp-org:service:ContentDirectory:1";
     public const string DESCRIPTION_PATH = "xml/ContentDirectory.xml";
@@ -88,6 +88,8 @@ internal class Rygel.ContentDirectory: Service {
         this.root_container.sub_tree_updates_finished.connect
                                         (on_sub_tree_updates_finished);
 
+        this.last_change = new LastChange ();
+
         this.feature_list =
             "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" +
             "<Features xmlns=\"urn:schemas-upnp-org:av:avs\" " +
diff --git a/src/librygel-server/rygel-simple-container.vala b/src/librygel-server/rygel-simple-container.vala
index b945f12..706d8a0 100644
--- a/src/librygel-server/rygel-simple-container.vala
+++ b/src/librygel-server/rygel-simple-container.vala
@@ -106,11 +106,11 @@ public class Rygel.SimpleContainer : Rygel.MediaContainer,
         if (child.child_count > 0) {
             this.add_child (child);
             this.updated (child, ObjectEventType.ADDED, false);
-            var grand_children = child.get_children (0, UINT_MAX, "", null);
+/*            var grand_children = child.get_children (0, uint.MAX, "", null);
 
             foreach (var grand_child in grand_children) {
                 updated.updated (grand_child, ObjectEventType.ADDED, false);
-            }
+            } */
         } else {
             debug ("Container '%s' empty, refusing to add to hierarchy " +
                    "until it has any children to offer.",
@@ -127,13 +127,13 @@ public class Rygel.SimpleContainer : Rygel.MediaContainer,
         this.children.remove (child);
 
         this.child_count--;
-        if (child is MediaContainer) {
+/*        if (child is MediaContainer) {
             var grand_children = child.get_children (0, UINT_MAX, "", null);
 
             foreach (var grand_child in grand_children) {
                 updated.updated (grand_child, ObjectEventType.DELETED, false);
             }
-        }
+        } */
         this.updated (child, ObjectEventType.DELETED, false);
         this.updated (this, ObjectEventType.MODIFIED, false);
     }
@@ -145,7 +145,6 @@ public class Rygel.SimpleContainer : Rygel.MediaContainer,
     public void clear () {
         // TODO: this will have to emit sub-tree events of object being deleted.
         this.children.clear ();
-        foreach (var child
 
         this.child_count = 0;
     }
diff --git a/src/plugins/external/rygel-external-container.vala b/src/plugins/external/rygel-external-container.vala
index 5b8bb03..1d05eb8 100644
--- a/src/plugins/external/rygel-external-container.vala
+++ b/src/plugins/external/rygel-external-container.vala
@@ -62,7 +62,7 @@ public class Rygel.External.Container : Rygel.MediaContainer,
                                          path,
                                          DBusProxyFlags.DO_NOT_LOAD_PROPERTIES);
 
-        this.update_container.begin (this, ObjectEventType.ADD, false, true);
+//        this.update_container.begin (this, ObjectEventType.ADD, false, true);
         if (parent != null) {
             parent.add_weak_pointer (&this.parent);
         }
@@ -286,7 +286,7 @@ public class Rygel.External.Container : Rygel.MediaContainer,
         return media_objects;
     }
 
-    private async void refresh_child_containers () throws GLib.Error {
+/*    private async void refresh_child_containers () throws GLib.Error {
         string[] filter = {};
 
         foreach (var object_prop in MediaObjectProxy.PROPERTIES) {
@@ -316,9 +316,9 @@ public class Rygel.External.Container : Rygel.MediaContainer,
                                            this);
             this.containers.add (container);
         }
-    }
+    } */
 
-    private async void update_container (MediaObject object,
+   /* private async void update_container (MediaObject object,
                                          ObjectEventType event_type,
                                          bool sub_tree_update,
                                          bool connect_signal = false) {
@@ -358,16 +358,16 @@ public class Rygel.External.Container : Rygel.MediaContainer,
         this.updated (object, event_type, sub_tree_update);
 
         if (connect_signal) {
-            this.actual_container.updated.connect (this.on_updated);
+            //this.actual_container.updated.connect (this.on_updated);
         }
     }
-
-    private void on_updated (MediaContainerProxy actual_container,
+*/
+/*    private void on_updated (MediaContainerProxy actual_container,
                              MediaObject object,
-                             ObjectUpdateEvent event_type,
+                             ObjectEventType event_type,
                              bool sub_tree_update) {
         this.update_container.begin (object, event_type, sub_tree_update);
-    }
+    } */
 
     private MediaContainer find_container_by_id (string id) {
         MediaContainer target = null;
diff --git a/src/plugins/external/rygel-external-interfaces.vala b/src/plugins/external/rygel-external-interfaces.vala
index 64ba6ad..6f548a3 100644
--- a/src/plugins/external/rygel-external-interfaces.vala
+++ b/src/plugins/external/rygel-external-interfaces.vala
@@ -41,9 +41,9 @@ public interface Rygel.External.MediaContainerProxy : DBusProxy,
     public static const string IFACE = "org.gnome.UPnP.MediaContainer2";
     public static const string[] PROPERTIES = { "ChildCount", "Searchable" };
 
-    public abstract signal void updated (MediaObject object,
+/*    public abstract signal void updated (MediaObject object,
                                          ObjectEventType event_type,
-                                         bool sub_tree_update);
+                                         bool sub_tree_update); */
 
     public abstract uint child_count { get; set; }
     public abstract uint item_count { get; set; }
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 f78a236..e069895 100644
--- a/src/plugins/media-export/rygel-media-export-db-container.vala
+++ b/src/plugins/media-export/rygel-media-export-db-container.vala
@@ -32,7 +32,7 @@ public class Rygel.MediaExport.DBContainer : MediaContainer,
 
         this.media_db = media_db;
         this.search_classes = new ArrayList<string> ();
-        this.container_updated.connect (on_db_container_updated);
+//        this.container_updated.connect (on_db_container_updated);
         this.on_db_container_updated (this, this);
     }
 
diff --git a/src/plugins/media-export/rygel-media-export-harvester.vala b/src/plugins/media-export/rygel-media-export-harvester.vala
index 7c9a06c..15b06af 100644
--- a/src/plugins/media-export/rygel-media-export-harvester.vala
+++ b/src/plugins/media-export/rygel-media-export-harvester.vala
@@ -225,7 +225,7 @@ internal class Rygel.MediaExport.Harvester : GLib.Object {
             }
 
             if (parent != null) {
-                parent.updated ();
+                //parent.updated ();
             }
         } catch (Error error) {
             warning (_("Error removing object from database: %s"),
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 d8d89b3..5b77165 100644
--- a/src/plugins/media-export/rygel-media-export-harvesting-task.vala
+++ b/src/plugins/media-export/rygel-media-export-harvesting-task.vala
@@ -273,7 +273,7 @@ public class Rygel.MediaExport.HarvestingTask : Rygel.StateMachine,
                                             this.flag);
                 } catch (Error error) {};
             }
-            parent.updated ();
+//            parent.updated ();
 
             this.completed ();
         }
@@ -352,7 +352,7 @@ public class Rygel.MediaExport.HarvestingTask : Rygel.StateMachine,
             try {
                 var cache = MediaCache.get_default ();
                 if (cache.get_child_count (container.id) > 0) {
-                    this.containers.peek_head ().updated ();
+                    //this.containers.peek_head ().updated ();
                 } else {
                     cache.remove_by_id (container.id);
                 }
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 235d3e7..77661d1 100644
--- a/src/plugins/media-export/rygel-media-export-root-container.vala
+++ b/src/plugins/media-export/rygel-media-export-root-container.vala
@@ -402,19 +402,19 @@ public class Rygel.MediaExport.RootContainer : Rygel.MediaExport.DBContainer {
             }
         }
 
-        this.updated ();
+        //this.updated ();
     }
 
     private void on_initial_harvesting_done () {
         this.harvester.disconnect (this.harvester_signal_id);
         this.media_db.debug_statistics ();
         this.add_default_virtual_folders ();
-        this.updated ();
+        //this.updated ();
 
-        this.filesystem_container.container_updated.connect( () => {
+/*        this.filesystem_container.container_updated.connect( () => {
             this.add_default_virtual_folders ();
             this.updated ();
-        });
+        }); */
     }
 
     private void add_default_virtual_folders () {
@@ -478,7 +478,7 @@ public class Rygel.MediaExport.RootContainer : Rygel.MediaExport.DBContainer {
         if (this.media_db.get_child_count (container.id) == 0) {
             this.media_db.remove_by_id (container.id);
         } else {
-            container.updated ();
+            //container.updated ();
         }
     }
 }
diff --git a/src/plugins/mediathek/rygel-mediathek-rss-container.vala b/src/plugins/mediathek/rygel-mediathek-rss-container.vala
index ff9905a..8bc5b65 100644
--- a/src/plugins/mediathek/rygel-mediathek-rss-container.vala
+++ b/src/plugins/mediathek/rygel-mediathek-rss-container.vala
@@ -119,7 +119,7 @@ public class Rygel.Mediathek.RssContainer : Rygel.SimpleContainer {
         }
 
         xpath_free_object (xpath_object);
-        this.updated ();
+        //this.updated ();
 
         return this.child_count > 0;
     }
diff --git a/src/plugins/tracker/rygel-tracker-metadata-container.vala b/src/plugins/tracker/rygel-tracker-metadata-container.vala
index b7cbc17..5f0db5f 100644
--- a/src/plugins/tracker/rygel-tracker-metadata-container.vala
+++ b/src/plugins/tracker/rygel-tracker-metadata-container.vala
@@ -116,7 +116,7 @@ public abstract class Rygel.Tracker.MetadataContainer : Rygel.SimpleContainer {
             return;
         }
 
-        this.updated (container, ObjectEventType.ADDED, false);
+//        this.updated (container, ObjectEventType.ADDED, false);
         this.update_in_progress = false;
     }
 



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