public ContainerMediaServer(ModelMediaServer aMediaServer, container aContainer) { iUpdateId = 0; iMetadata = aContainer; iMediaServer = aMediaServer; iLock = new object(); }
private void MediaServerAdded(object sender, Library.EventArgsMediaServer e) { ModelMediaServer mediaServer = null; try { mediaServer = new ModelMediaServer(e.MediaServer, iEventProvider); mediaServer.EventContainerUpdated += EventContainerUpdatedHandler; mediaServer.EventSystemUpdateIDStateChanged += EventContainerUpdatedHandler; mediaServer.Open(); } catch (Exception) { // failed to create the media server - a dodgy media server shouldn't crash the application UserLog.WriteLine(string.Format("{0}: Failed to create media server ({1}, {2})", DateTime.Now, e.MediaServer.Name, e.MediaServer.Device.Model)); } if (mediaServer != null) { lock (iLock) { iMediaServers.Remove(e.MediaServer); iMediaServers.Add(e.MediaServer, mediaServer); iMetadata.ChildCount = iMediaServers.Count; } if (EventContentAdded != null) { EventContentAdded(this, EventArgs.Empty); } } }
public ContainerMediaServer(ModelMediaServer aMediaServer, container aContainer) { iUpdateId = 0; iMetadata = aContainer; iMediaServer = aMediaServer; iLock = new object(); iReceivedInitial = false; }
public ContainerMediaServer(ModelMediaServer aMediaServer, container aContainer) { iUpdateId = 0; iMetadata = aContainer; iMediaServer = aMediaServer; iMutex = new Mutex(false); }
private void EventModelMediaServerInitial(object sender, EventArgs args) { ModelMediaServer ms = sender as ModelMediaServer; ContainerMediaServer rootContainer = null; lock (iLock) { iMediaServerRootContainers.TryGetValue(ms.Metadata.Id, out rootContainer); } if (rootContainer != null) { rootContainer.OnEventInitial(); } }
private void EventContainerUpdatedHandler(object sender, EventArgs args) { ModelMediaServer ms = sender as ModelMediaServer; ContainerMediaServer rootContainer = null; lock (iLock) { iMediaServerRootContainers.TryGetValue(ms.Metadata.Id, out rootContainer); } if (rootContainer != null) { ThreadPool.QueueUserWorkItem(delegate { rootContainer.OnEventTreeChanged(); }); } }
private void MediaServerAdded(object sender, Library.EventArgsMediaServer e) { try { ModelMediaServer mediaServer = new ModelMediaServer(e.MediaServer, iSupport.EventUpnpProvider); iMutex.WaitOne(); if (iSortedMediaServers.ContainsKey(e.MediaServer.Name)) { MediaServer matched = null; foreach (MediaServer m in iMediaServers.Keys) { if (m.Name.Equals(e.MediaServer.Name)) { matched = m; break; } } if (matched != null) { iMediaServers.Remove(matched); } iSortedMediaServers.Remove(e.MediaServer.Name); } iMediaServers.Add(e.MediaServer, mediaServer); iSortedMediaServers.Add(e.MediaServer.Name, mediaServer); Assert.Check(iMediaServers.Keys.Count == iSortedMediaServers.Count); iMutex.ReleaseMutex(); if (EventContentAdded != null) { EventContentAdded(this, EventArgs.Empty); } } catch (ServiceException) { } }