Пример #1
0
 protected ContainerPlaylist(Session session, PlaylistContainer container, IntPtr playlistPtr, IntPtr folderId, sp_playlist_type type)
     : base(session, playlistPtr, true)
 {
     this.folderId  = folderId;
     this.container = container;
     this.type      = type;
 }
Пример #2
0
 public PlaylistContainerWrapper(PlaylistContainer pc)
 {
     this.pc             = pc;
     pc.Loaded          += new PlaylistContainerHandler(pc_Loaded);
     pc.PlaylistAdded   += new PlaylistContainerHandler <PlaylistEventArgs>(pc_PlaylistAdded);
     pc.PlaylistMoved   += new PlaylistContainerHandler <PlaylistMovedEventArgs>(pc_PlaylistMoved);
     pc.PlaylistRemoved += new PlaylistContainerHandler <PlaylistEventArgs>(pc_PlaylistRemoved);
 }
Пример #3
0
 protected override void OnDispose()
 {
     pc.Loaded          -= new PlaylistContainerHandler(pc_Loaded);
     pc.PlaylistAdded   -= new PlaylistContainerHandler <PlaylistEventArgs>(pc_PlaylistAdded);
     pc.PlaylistMoved   -= new PlaylistContainerHandler <PlaylistMovedEventArgs>(pc_PlaylistMoved);
     pc.PlaylistRemoved -= new PlaylistContainerHandler <PlaylistEventArgs>(pc_PlaylistRemoved);
     PlaylistContainer.Delete(pc.pcPtr);
     pc = null;
 }
Пример #4
0
 internal static void Delete(IntPtr pcPtr)
 {
     lock (pcsLock)
     {
         PlaylistContainer pc = pcs[pcPtr];
         int count            = pc.RemRef();
         if (count == 0)
         {
             pcs.Remove(pcPtr);
         }
     }
 }
Пример #5
0
        internal static IContainerPlaylist Get(Session session, PlaylistContainer container, IntPtr playlistPtr, IntPtr folderId, sp_playlist_type type)
        {
            KeyGen            key = new KeyGen(playlistPtr, folderId, type);
            ContainerPlaylist playlist;

            lock (playlistsLock)
            {
                if (!playlists.ContainsKey(key))
                {
                    playlists.Add(key, new ContainerPlaylist(session, container, playlistPtr, folderId, type));
                }
                playlist = playlists[key];
                playlist.AddRef();
            }
            return(new ContainerPlaylistWrapper(playlist));
        }
Пример #6
0
 private static Delegate CreateDelegate <T>(Expression <Func <PlaylistContainer, Action <T> > > expr, PlaylistContainer s) where T : EventArgs
 {
     return(expr.Compile().Invoke(s));
 }