private static void playlist_OnTracksAdded(object sender, Spotify.PlaylistTracksAddedEventArgs e) { Spotify.Playlist playlist = (Spotify.Playlist)sender; if (!playlist.IsClone(_jukeboxList)) { return; } TryJukeboxStart(); }
private static void playlist_OnTracksMoved(object sender, Spotify.PlaylistTracksMovedEventArgs e) { Spotify.Playlist playlist = (Spotify.Playlist)sender; if (!playlist.IsClone(_jukeboxList)) { return; } Console.WriteLine("jukebox: {0} tracks were moved", e.Tracks.Count); TryJukeboxStart(); }
private static void playlistContainer_OnPlaylistAdded(object sender, Spotify.PlaylistAddedEventArgs e) { e.Playlist.TracksAdded += playlist_OnTracksAdded; e.Playlist.TracksRemoved += playlist_OnTracksRemoved; e.Playlist.TracksMoved += playlist_OnTracksMoved; e.Playlist.Renamed += playlist_OnRenamed; if (e.Playlist.Name.Equals(_listname)) { _jukeboxList = e.Playlist; TryJukeboxStart(); } }
private static void playlist_OnRenamed(object sender, EventArgs e) { Spotify.Playlist playlist = (Spotify.Playlist)sender; if (playlist.Name.Equals(_listname)) { _jukeboxList = playlist; _trackIndex = 0; TryJukeboxStart(); } else { Console.WriteLine("jukebox: current playlist renamed to: {0}", playlist.Name); _jukeboxList = null; _currentTrack = null; _session.PlayerUnload(); } }
private static void playlist_OnTracksRemoved(object sender, Spotify.PlaylistTracksRemovedEventArgs e) { Spotify.Playlist playlist = (Spotify.Playlist)sender; if (!playlist.IsClone(_jukeboxList)) { return; } int k = 0; for (int i = 0; i < e.Tracks.Count; ++i) { if (e.Tracks[i] < _trackIndex) { ++k; } } _trackIndex = k; TryJukeboxStart(); }
/// <summary> /// Names are not unique, so not use I can use this /// </summary> public Spotify.Playlist GetPlaylistByName(string name) { iTunesApp app = new iTunesApp(); IITSource library = app.Sources.ItemByName["Library"]; Spotify.Playlist toReturn = null; foreach (IITPlaylist item in library.Playlists) { if (item.Name == name) { toReturn = new Spotify.Playlist(name); foreach (IITTrack song in item.Tracks) { toReturn.AddSong(song.Name, song.Artist); } } } return(toReturn); }
private static void session_OnLoggedIn(object sender, Spotify.LoggedInEventArgs e) { Spotify.Session session = (Spotify.Session)sender; if (e.ErrorCode != Spotify.Error.Ok) { Console.WriteLine("jukebox: Login failed: {0}", e.Message); Environment.Exit(0); } Spotify.PlaylistContainer playlistContainer = session.CreatePlaylistContainer(); playlistContainer.PlaylistAdded += playlistContainer_OnPlaylistAdded; playlistContainer.PlaylistRemoved += playlistContainer_OnPlaylistRemoved; playlistContainer.Loaded += playlistContainer_OnLoaded; foreach (Spotify.Playlist playlist in playlistContainer.Playlists) { playlist.TracksAdded += playlist_OnTracksAdded; playlist.TracksRemoved += playlist_OnTracksRemoved; playlist.TracksMoved += playlist_OnTracksMoved; playlist.Renamed += playlist_OnRenamed; if (playlist.Name.Equals(_listname)) { _jukeboxList = playlist; TryJukeboxStart(); } else { playlist.Dispose(); } } if (_jukeboxList == null) { Console.WriteLine("jukebox: No such playlist. Waiting for one to pop up..."); } }
public static void Print(TextWriter writer, Spotify.Playlist playlist, Spotify.Session session = null) { // TODO }