private async Task Init() { var disc = new DiscoveryRaw(); var server = await disc.GetMediaServer(); var discoveredXBMCs = new List <XbmcServer>(); foreach (var device in server) { if (device.FriendlyName.StartsWith("XBMC (")) { var discoveredXBMC = new XbmcServer(device.FriendlyName, device.ContentDirectoryControlUri); discoveredXBMCs.Add(discoveredXBMC); discoveredXBMC.CheckWebIf(); if (await IsXbmcHost(device.ContentDirectoryControlUri)) { discoveredXBMC.IsCurrent = true; _xbmcMediaServer = device; } } } DiscoveredXBMCs = discoveredXBMCs; IsAvailable = _xbmcMediaServer != null; if (IsAvailable) { var renderDevices = await disc.GetMediaRenderer(); var availableRenderDevices = new List <MediaRendererDevice>(); foreach (var renderer in renderDevices) { //#if !DEBUG if (!(renderer.FriendlyName.StartsWith("XBMC (") && await IsXbmcHost(renderer.AVTransportControlUrl))) //#endif { availableRenderDevices.Add(renderer); } } AvailableRenderDevices = availableRenderDevices.ToArray(); //MediaRendererDevice rendererUpnp = null; //foreach (var device in AvailableRenderDevices) //{ // if (device.AVTransportControlUrl == null) continue; // if (device.FriendlyName.StartsWith("WDTV")) // { // rendererUpnp = device; // break; // } //} } }
/// <summary> /// Stops the UPnP server. /// </summary> public static void Stop() { Log.Info("Stopping UPnP/DLNA server..."); IsRunning = false; _ms.Stop(); _ms.Dispose(); _ms = null; _dw = null; }
/// <summary> /// Starts the UPnP server. /// </summary> public static void Start() { if (IsRunning) { Log.Info("An UPnP/DLNA server start was requested, but it is already running."); Stop(); } if (!Signature.IsActivated) { Log.Error("An UPnP/DLNA server start was requested, but the software is not activated."); return; } Log.Info("Starting UPnP/DLNA server..."); _ms = new MediaServerDevice(_di, null, true, "http-get:*:*:*", ""); _dw = new UPnPDeviceWatcher(_ms._Device); var dv = _ms.GetUPnPDevice(); if (_favicon == null) { _favicon = new Icon(Application.GetResourceStream(new Uri("pack://application:,,,/RSTVShowTracker;component/tv.ico")).Stream); _icon = new Bitmap(Application.GetResourceStream(new Uri("pack://application:,,,/RSTVShowTracker;component/Images/tv48.png")).Stream); _icon2 = new Bitmap(Application.GetResourceStream(new Uri("pack://application:,,,/RSTVShowTracker;component/Images/tv64.png")).Stream); } dv.favicon = _favicon; dv.Icon = _icon; dv.Icon2 = _icon2; _ms.Start(); IsRunning = true; _mimes = new HashSet <string>(); RebuildList(); }