Esempio n. 1
0
        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));
        }
Esempio n. 2
0
        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);
        }
Esempio n. 4
0
        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);
        }
Esempio n. 5
0
 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("> ");
 }
Esempio n. 6
0
 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();
 }
Esempio n. 7
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);
        }
Esempio n. 8
0
 private void AlbumBrowseCallBack(AlbumBrowse browse, object userdata)
 {
     //Implentation not required, but method must exist.
 }
Esempio n. 9
0
 void PrintAlbumBrowse(AlbumBrowse aAlbumBrowse)
 {
     Printing.PrintAlbumBrowse(iSession, aAlbumBrowse);
 }