internal void DoPlaylistManagerAdded(Device aDevice)
        {
            PlaylistManager manager = new PlaylistManager(this, aDevice);

            iPlaylistManagers.Add(aDevice, manager);
            if (EventPlaylistManagerAdded != null)
            {
                EventPlaylistManagerAdded(this, new EventArgsPlaylistManager(manager));
            }
        }
 internal void DoPlaylistManagerRemoved(Device aDevice)
 {
     if (iPlaylistManagers.ContainsKey(aDevice))
     {
         PlaylistManager manager = iPlaylistManagers[aDevice];
         iPlaylistManagers.Remove(aDevice);
         if (EventPlaylistManagerRemoved != null)
         {
             EventPlaylistManagerRemoved(this, new EventArgsPlaylistManager(manager));
         }
     }
 }
        public ModelPlaylistManager(PlaylistManager aPlaylistManager, IEventUpnpProvider aEventServer)
        {
            iPlaylistManager = aPlaylistManager;

            try
            {
                iServicePlaylistManager = new ServicePlaylistManager(iPlaylistManager.Device, aEventServer);
            }
            catch (ServiceException)
            {
                throw new ModelSourceException(301, "Service failure");
            }

            iActionPlaylistDeleteId = iServicePlaylistManager.CreateAsyncActionPlaylistDeleteId();

            iLock = new object();

            iModelPlaylistList = new Dictionary <uint, ModelPlaylist>();

            iIdArray = new ModelIdArray(new PlaylistsIdArray(iServicePlaylistManager, this));
            iIdArray.EventIdArrayChanged += EventIdArrayChanged;
        }
 internal EventArgsPlaylistManager(PlaylistManager aPlaylistManager)
 {
     PlaylistManager = aPlaylistManager;
 }