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); }
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); }