public async Task <string> QueueUpAlbum(Album album) { AlbumBrowse albumBrowse = await album.Browse(); albumBrowse.Tracks.ForEach(t => AddToQueue(t)); await SaveQueue(); return(string.Format("Queued up {0} tracks from album {1} by {2}", albumBrowse.Tracks.Count, albumBrowse.Album.Name, albumBrowse.Artist.Name)); }
public async Task <string> PlayAlbum(Album album) { AlbumBrowse albumBrowse = await album.Browse(); await Play(albumBrowse.Tracks[0]); await PrependToQueue(albumBrowse.Tracks.Skip(1)); await SaveQueue(); return(string.Format("Queued up {0} tracks from album {1} by {2}", albumBrowse.Tracks.Count, albumBrowse.Album.Name, albumBrowse.Artist.Name)); }
public async Task <AlbumBrowse> FetchAlbum(Album albumRef) { var album = AlbumBrowse.Create(_session, albumRef, AlbumBrowseCallBack, _session.UserData); await WaitForBool(album.IsLoaded); for (int i = 0; i < album.NumTracks(); i++) { await WaitForBool(album.Track(i).IsLoaded); } return(album); }
public async Task <AlbumBrowse> FetchAlbum(string linkStr) { var link = Link.CreateFromString(linkStr); var album = AlbumBrowse.Create(session, link.AsAlbum(), AlbumBrowseCallBack, session.UserData); await WaitForBool(album.IsLoaded); for (int i = 0; i < album.NumTracks(); i++) { await WaitForBool(album.Track(i).IsLoaded); } return(album); }
void BrowseAlbumCallback(AlbumBrowse aResult, object aUserdata) { try { aResult.Error(); PrintAlbumBrowse(aResult); } catch (SpotifyException e) { Console.Error.WriteLine("Failed to browse album: {0}", e.Message); } aResult.Dispose(); iConsoleReader.RequestInput("> "); }
public static void PrintAlbumBrowse(SpotifySession aSession, AlbumBrowse aResult) { Console.WriteLine("Album browse of \"{0}\" ({1})", aResult.Album().Name(), aResult.Album().Year()); for (int i = 0; i != aResult.NumCopyrights(); ++i) { Console.WriteLine(" Copyright: {0}", aResult.Copyright(i)); } Console.WriteLine(" Tracks: {0}", aResult.NumTracks()); Console.WriteLine(" Review: {0}", Truncate(aResult.Review(), 60)); Console.WriteLine(); for (int i = 0; i != aResult.NumTracks(); ++i) { PrintTrack(aSession, aResult.Track(i)); } Console.WriteLine(); }
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); }
private void AlbumBrowseCallBack(AlbumBrowse browse, object userdata) { //Implentation not required, but method must exist. }
void PrintAlbumBrowse(AlbumBrowse aAlbumBrowse) { Printing.PrintAlbumBrowse(iSession, aAlbumBrowse); }