rygel r380 - trunk/src/plugins/dvb



Author: zeeshanak
Date: Thu Dec 25 12:00:48 2008
New Revision: 380
URL: http://svn.gnome.org/viewvc/rygel?rev=380&view=rev

Log:
Let DVBContentDir create the ChannelList proxy.

Modified:
   trunk/src/plugins/dvb/rygel-dvb-channel-group.vala
   trunk/src/plugins/dvb/rygel-dvb-content-dir.vala

Modified: trunk/src/plugins/dvb/rygel-dvb-channel-group.vala
==============================================================================
--- trunk/src/plugins/dvb/rygel-dvb-channel-group.vala	(original)
+++ trunk/src/plugins/dvb/rygel-dvb-channel-group.vala	Thu Dec 25 12:00:48 2008
@@ -35,8 +35,6 @@
 public class Rygel.DVBChannelGroup : MediaContainer {
     /* class-wide constants */
     private const string DVB_SERVICE = "org.gnome.DVB";
-    private const string CHANNEL_LIST_PATH_ROOT = "/org/gnome/DVB/ChannelList/";
-    private const string CHANNEL_LIST_IFACE = "org.gnome.DVB.ChannelList";
 
     private const string GID_PREFIX = "GroupID:";
     private const string TITLE_PREFIX = "Group ";
@@ -50,15 +48,17 @@
 
     private uint gid; /* The DVB Daemon Device Group ID */
 
-    public DVBChannelGroup (uint     gid,
-                            string   parent_id,
-                            Streamer streamer) {
+    public DVBChannelGroup (uint                gid,
+                            string              parent_id,
+                            dynamic DBus.Object channel_list,
+                            Streamer            streamer) {
         base (GID_PREFIX + gid.to_string (), // UPnP ID
               parent_id,
               TITLE_PREFIX + gid.to_string (),
               0);
         this.gid = gid;
         //this.upnp_class = "object.container.channelGroup";
+        this.channel_list = channel_list;
         this.streamer = streamer;
 
         channels = new HashMap<string, DVBChannel> (str_hash, str_equal);
@@ -72,14 +72,6 @@
             return;
         }
 
-        string channel_list_path = DVBChannelGroup.CHANNEL_LIST_PATH_ROOT +
-                                   gid.to_string ();
-
-        // Get a proxy to DVB ChannelList object
-        this.channel_list = connection.get_object
-                                    (DVBChannelGroup.DVB_SERVICE,
-                                     channel_list_path,
-                                     DVBChannelGroup.CHANNEL_LIST_IFACE);
         uint[] channel_ids = null;
 
         try {

Modified: trunk/src/plugins/dvb/rygel-dvb-content-dir.vala
==============================================================================
--- trunk/src/plugins/dvb/rygel-dvb-content-dir.vala	(original)
+++ trunk/src/plugins/dvb/rygel-dvb-content-dir.vala	Thu Dec 25 12:00:48 2008
@@ -36,6 +36,7 @@
     private const string DVB_SERVICE = "org.gnome.DVB";
     private const string MANAGER_PATH = "/org/gnome/DVB/Manager";
     private const string MANAGER_IFACE = "org.gnome.DVB.Manager";
+    private const string CHANNEL_LIST_IFACE = "org.gnome.DVB.ChannelList";
 
     public dynamic DBus.Object manager;
 
@@ -72,9 +73,24 @@
 
         this.groups = new List<DVBChannelGroup> ();
         foreach (uint group_id in dev_groups) {
+            string channel_list_path = null;
+            try {
+                channel_list_path = manager.GetChannelList (group_id);
+            } catch (GLib.Error error) {
+                critical ("error: %s", error.message);
+                return;
+            }
+
+            // Get a proxy to DVB ChannelList object
+            dynamic DBus.Object channel_list = connection.get_object
+                                        (DVBContentDir.DVB_SERVICE,
+                                         channel_list_path,
+                                         DVBContentDir.CHANNEL_LIST_IFACE);
+
             // Create ChannelGroup for each registered device group
             this.groups.append (new DVBChannelGroup (group_id,
                                                      this.root_container.id,
+                                                     channel_list,
                                                      streamer));
         }
     }



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