/// <summary> /// initializes the query daemon, and loads favorite sources /// </summary> public void Initialize() { MediaApplicationSettings settings = new MediaApplicationSettings(); settings.LoadSettings(); _discoveryPlugins = new List <SourceDiscoveryPlugin>(); SourceDiscoveryManager discoveryManager = SourceDiscoveryManager.Instance; SourceDiscoveryConfiguration sourceDiscoveryConfiguration = SourceDiscoveryConfiguration.LoadFromFile(); foreach (SourceDiscoveryDefinition sourceDiscoveryDefinition in sourceDiscoveryConfiguration.Items) { try { SourceDiscoveryPlugin plugin = discoveryManager.GetPlugin(sourceDiscoveryDefinition); plugin.GroupChanged += new EventHandler <GroupEventArgs>(SourceDiscoveryPlugin_GroupChanged); plugin.GroupOnline += new EventHandler <GroupEventArgs>(SourceDiscoveryPlugin_GroupOnline); plugin.GroupOffline += new EventHandler <GroupEventArgs>(SourceDiscoveryPlugin_GroupOffline); plugin.Start(); _discoveryPlugins.Add(plugin); } catch (Exception e) { Debug.WriteLine("Exception encountered while attempting to load source discovery protocol " + sourceDiscoveryDefinition.Name); ErrorLogger.DumpToDebug(e); } } LoadFavorites(); this.DoubleBuffered = true; }
public SourceDiscoveryPlugin GetPlugin(FutureConcepts.Media.SourceDiscoveryDefinition sourceDiscovery) { SourceDiscoveryPlugin result = null; if (_plugins.ContainsKey(sourceDiscovery.Name) == false) { switch (sourceDiscovery.Type) { case "MasterSourceDiscovery": result = new MasterSourceDiscoveryPlugin(sourceDiscovery); break; case "WowzaSourceDiscovery": result = new WowzaSourceDiscoveryPlugin(sourceDiscovery); break; case "LocalSourceDiscovery": result = new LocalSourceDiscoveryPlugin(sourceDiscovery); break; case "NetMgrSourceDiscovery": result = new NetMgrSourceDiscoveryPlugin(sourceDiscovery); break; default: throw new NotImplementedException(sourceDiscovery.Type); } _plugins[sourceDiscovery.Name] = result; } else { result = _plugins[sourceDiscovery.Name]; } return(result); }