[banshee: 45/57] Check for all UPnP Devices and take those which implements any MediaServer. This shouldn't be needed



commit 5c911417fdd05bb0636a901ba88a750037dd3467
Author: Tobias Arrskog <topfs2 xbmc org>
Date:   Tue Jul 26 21:58:14 2011 +0200

    Check for all UPnP Devices and take those which implements any MediaServer. This shouldn't be needed but works around the gssdp bug on Rygel, and its safe to do as MediaServer spec is backward compatible

 .../Banshee.UPnPClient/UPnPServerSource.cs         |    4 ++--
 .../Banshee.UPnPClient/UPnPService.cs              |   13 ++++++++-----
 2 files changed, 10 insertions(+), 7 deletions(-)
---
diff --git a/src/Extensions/Banshee.UPnPClient/Banshee.UPnPClient/UPnPServerSource.cs b/src/Extensions/Banshee.UPnPClient/Banshee.UPnPClient/UPnPServerSource.cs
index b8f25cf..a1fc5e1 100644
--- a/src/Extensions/Banshee.UPnPClient/Banshee.UPnPClient/UPnPServerSource.cs
+++ b/src/Extensions/Banshee.UPnPClient/Banshee.UPnPClient/UPnPServerSource.cs
@@ -58,10 +58,10 @@ namespace Banshee.UPnPClient
             expanded_schema = new SchemaEntry<bool> ("plugins.upnp." + device.Udn, "expanded", true, "UPnP Share expanded", "UPnP Share expanded" );
 
             ContentDirectoryController contentDirectory = null;
-            
+
             foreach (Service service in device.Services) {
                 Hyena.Log.Debug ("UPnPService \"" + device.FriendlyName + "\" Implements " + service.Type);
-                if (service.Type.Equals (Mono.Upnp.Dcp.MediaServer1.ContentDirectory1.ContentDirectory.ServiceType))
+                if (service.Type.Type == "ContentDirectory")
                     contentDirectory = new ContentDirectoryController (service.GetController());
             }
 
diff --git a/src/Extensions/Banshee.UPnPClient/Banshee.UPnPClient/UPnPService.cs b/src/Extensions/Banshee.UPnPClient/Banshee.UPnPClient/UPnPService.cs
index 87a1590..8710631 100644
--- a/src/Extensions/Banshee.UPnPClient/Banshee.UPnPClient/UPnPService.cs
+++ b/src/Extensions/Banshee.UPnPClient/Banshee.UPnPClient/UPnPService.cs
@@ -57,7 +57,7 @@ namespace Banshee.UPnPClient
             client = new Mono.Upnp.Client ();
             client.DeviceAdded += DeviceAdded;
 
-            client.Browse(Mono.Upnp.Dcp.MediaServer1.MediaServer.DeviceType);
+            client.BrowseAll();
         }
     
         public void Dispose ()
@@ -74,11 +74,14 @@ namespace Banshee.UPnPClient
 
         void DeviceAdded (object sender, DeviceEventArgs e)
         {
-            Hyena.Log.Debug ("UPnPService.DeviceAdded (" + e.Device.ToString() + ") (" + e.Device.Type + ")");
+            Hyena.Log.Debug ("UPnPService.DeviceFound (" + e.Device.ToString() + ") (" + e.Device.Type + ")");
             Device device = e.Device.GetDevice();
-            
-            UPnPServerSource source = new UPnPServerSource(device);
-            container.AddChildSource (source);
+
+            if (device.Type.Type == "MediaServer") {
+                Hyena.Log.Debug ("UPnPService MediaServer Found");
+                UPnPServerSource source = new UPnPServerSource(device);
+                container.AddChildSource (source);
+            }
         }
 
         string IService.ServiceName {



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