public async Task <ArtistBrowse> FetchArtist(string linkStr)
        {
            var link   = Link.CreateFromString(linkStr);
            var artist = ArtistBrowse.Create(_session, link.AsArtist(), ArtistBrowseType.Full, ArtistBrowseCallBack, _session.UserData);

            await WaitForBool(artist.IsLoaded);

            return(artist);
        }
Example #2
0
        public int CmdBrowse(string[] args)
        {
            if (args.Length != 2)
            {
                Console.Error.WriteLine("Usage: browse <spotify-url>");
                return(-1);
            }
            var link = Link.CreateFromString(args[1]);

            if (link == null)
            {
                Console.Error.WriteLine("Not a spotify link");
                return(-1);
            }
            switch (link.Type())
            {
            default:
                Console.Error.WriteLine("Can not handle link");
                link.Release();
                return(-1);

            case LinkType.Album:
                AlbumBrowse.Create(iSession, link.AsAlbum(), BrowseAlbumCallback, null);
                break;

            case LinkType.Artist:
                ArtistBrowse.Create(iSession, link.AsArtist(), ArtistBrowseType.Full, BrowseArtistCallback, null);
                break;

            case LinkType.Localtrack:
            case LinkType.Track:
                iTrackBrowse = link.AsTrack();
                iMetadataWaiter.AddMetadataUpdatedCallback(TrackBrowseTry);
                iTrackBrowse.AddRef();
                TrackBrowseTry();
                break;

            case LinkType.Playlist:
                BrowsePlaylist(Playlist.Create(iSession, link));
                break;
            }
            link.Release();
            return(0);
        }