Ejemplo n.º 1
0
        private void MediaServerRemoved(object sender, Library.EventArgsMediaServer e)
        {
            bool             removed = false;
            ModelMediaServer ms;

            lock (iLock)
            {
                if (iMediaServers.TryGetValue(e.MediaServer, out ms))
                {
                    ms.EventContainerUpdated            -= EventContainerUpdatedHandler;
                    ms.EventSystemUpdateIDStateChanged  -= EventContainerUpdatedHandler;
                    ms.EventContentDirectoryInitialised -= EventModelMediaServerInitial;
                    ms.Close();

                    iMediaServers.Remove(e.MediaServer);
                    iMetadata.ChildCount = iMediaServers.Count;

                    iMediaServerRootContainers.Remove(ms.Metadata.Id);

                    removed = true;
                }
            }

            if (removed && EventContentRemoved != null)
            {
                EventContentRemoved(this, new EventArgsContentRemoved(ms.Metadata.Id));
            }
        }
Ejemplo n.º 2
0
        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);
                }
            }
        }
Ejemplo n.º 3
0
        private void MediaServerRemoved(object sender, Library.EventArgsMediaServer e)
        {
            iMutex.WaitOne();

            ModelMediaServer ms;

            if (iMediaServers.TryGetValue(e.MediaServer, out ms))
            {
                iMediaServers.Remove(e.MediaServer);
                iSortedMediaServers.Remove(e.MediaServer.Name);
                Assert.Check(iMediaServers.Keys.Count == iSortedMediaServers.Count);
                iMutex.ReleaseMutex();

                if (EventContentRemoved != null)
                {
                    EventContentRemoved(this, new EventArgsContentRemoved(ms.Metadata.Id));
                }
            }
            else
            {
                iMutex.ReleaseMutex();
            }
        }
Ejemplo n.º 4
0
        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) { }
        }
Ejemplo n.º 5
0
 private void LibraryRemoved(object sender, Library.EventArgsMediaServer e)
 {
     iLibraryModel.RemoveMediaServer(e.MediaServer);
 }
Ejemplo n.º 6
0
 private void LibraryAdded(object sender, Library.EventArgsMediaServer e)
 {
     iLibraryModel.AddMediaServer(e.MediaServer);
 }
Ejemplo n.º 7
0
 public void LibraryRemoved(object sender, Library.EventArgsMediaServer e)
 {
     RemoveListViewLibraries(e.MediaServer);
 }
Ejemplo n.º 8
0
 public void LibraryAdded(object sender, Library.EventArgsMediaServer e)
 {
     AddListViewLibraries(e.MediaServer);
 }