Exemplo n.º 1
0
        internal static IPlaylistContainer Get(ISession session, IntPtr handle)
        {
            lock (_instanceLock)
            {
                NativePlaylistContainer instance;

                if (!_instances.TryGetValue(handle, out instance))
                {
                    instance = new NativePlaylistContainer(session, handle);
                    _instances.Add(handle, instance);
                    instance.Initialize();
                }

                return instance;
            }
        }
        public NativePlaylistContainerCallbacks(NativePlaylistContainer container)
        {
            _container = container;
            _playlistAdded = OnPlaylistAddedCallback;
            _playlistRemoved = OnPlaylistRemovedCallback;
            _playlistMoved = OnPlaylistMovedCallback;
            _containerLoaded = OnLoadedCallback;

            lock (Spotify.Mutex)
            {
                _callbacks = new PlaylistContainerCallbacks();
                _callbacks.container_loaded = Marshal.GetFunctionPointerForDelegate(_containerLoaded);
                _callbacks.playlist_added = Marshal.GetFunctionPointerForDelegate(_playlistAdded);
                _callbacks.playlist_moved = Marshal.GetFunctionPointerForDelegate(_playlistMoved);
                _callbacks.playlist_removed = Marshal.GetFunctionPointerForDelegate(_playlistRemoved);

                Spotify.sp_playlistcontainer_add_callbacks(container.Handle, ref _callbacks, IntPtr.Zero);
            }
        }
        public NativePlaylistContainerCallbacks(NativePlaylistContainer container)
        {
            _container       = container;
            _playlistAdded   = OnPlaylistAddedCallback;
            _playlistRemoved = OnPlaylistRemovedCallback;
            _playlistMoved   = OnPlaylistMovedCallback;
            _containerLoaded = OnLoadedCallback;

            lock (Spotify.Mutex)
            {
                _callbacks = new PlaylistContainerCallbacks();
                _callbacks.ContainerLoaded = Marshal.GetFunctionPointerForDelegate(_containerLoaded);
                _callbacks.PlaylistAdded   = Marshal.GetFunctionPointerForDelegate(_playlistAdded);
                _callbacks.PlaylistMoved   = Marshal.GetFunctionPointerForDelegate(_playlistMoved);
                _callbacks.PlaylistRemoved = Marshal.GetFunctionPointerForDelegate(_playlistRemoved);

                Spotify.sp_playlistcontainer_add_callbacks(container.Handle, ref _callbacks, IntPtr.Zero);
            }
        }