void spotify_SongStarted(ISession sender, EventArgs e) { playing = true; ITrack track = playQueue.Current; IPlaylistTrack pt = track as IPlaylistTrack; if (pt != null) { int index = playlist.playlist.Tracks.IndexOf(pt); if (index != -1) { MessageClients(c => c.SongStarted(new Track(track), playlist.Id, index)); return; } } MessageClients(c => c.SongStarted(new Track(track), Guid.Empty, 0)); }
private void AddTrack(IPlaylistTrack track, int index) { AddNewTrack(track, index); }
public void RemoveTrack(IPlaylistTrack track) { }
private void AddTrack(IPlaylistTrack track, int index) { IntPtr[] ptrArray = new IntPtr[1]; IntPtr trackArrayPtr = Marshal.AllocHGlobal(Marshal.SizeOf(ptrArray)); Marshal.Copy(ptrArray, 0, trackArrayPtr, 1); AssertHandle(); lock (Spotify.Mutex) { Spotify.sp_playlist_add_tracks(Handle, trackArrayPtr, 1, index, Session.GetHandle()); } Marshal.FreeHGlobal(trackArrayPtr); }
private void ExecuteRemoveItem(IPlaylistTrack track) { Playlist.RemoveTrack(track); }
private bool CanExecuteRemoveItem(IPlaylistTrack track) { return track != null && Playlist.Tracks.Contains(track); }
public PlaylistTrack(ITorshifyPlaylist parentPlaylist, IPlaylistTrack track, Dispatcher dispatcher) : base(track, dispatcher) { Playlist = parentPlaylist; }
private void InsertAt(int index, IPlaylistTrack track) { if (_dispatcher.CheckAccess()) { lock (_lockObject) { _tracks.Insert(index, new PlaylistTrack(this, track, _dispatcher)); } } else { _dispatcher.BeginInvoke((Action<int, IPlaylistTrack>)InsertAt, index, track); } }
private void Add(IPlaylistTrack track) { if (_dispatcher.CheckAccess()) { lock (_lockObject) { _tracks.Add(new PlaylistTrack(this, track, _dispatcher)); } } else { _dispatcher.BeginInvoke((Action<IPlaylistTrack>)Add, track); } }