Example #1
0
 public void ClearQueue()
 {
     if (trackQueue != null)
     {
         trackQueue.Clear();
         trackQueue = null;
         ClearPlayerCache();
     }
 }
Example #2
0
        public TrackInfo GetTrack(Guid listGUID, int selIdx, PlaybackMode mode)
        {
            if (trackQueue == null)
            {
                Playlist pl = PlaylistCollection.GetDatabase().TrackLists.Find(x => x.GUID == listGUID);
                if (pl == null || pl.TrackAmount == 0)
                {
                    throw new InvalidPlaylistException(string.Format("Given playlist \"{0}\" is invalid.", listGUID));
                }
                trackQueue = new TrackQueue(pl, selIdx, mode);
                Properties.Settings.Default.TaskPlaylistGUID = listGUID;
                Properties.Settings.Default.Save();
            }

            TrackInfo nextTrack;
            int       nextTrackIdx = trackQueue.Next(out nextTrack);

            return(nextTrack);
        }
Example #3
0
        public void UpdateQueue(UpdatePlaylistEventArgs e)
        {
            if (this.PlayerStatus == PlaybackState.Stopped)
            {
                return;
            }
            // If given playlist to be updated is not played currently, there is no need to update.
            if (this.CurrentPlaylistGUID != e.UpdatedPlaylist.GUID)
            {
                return;
            }

            trackQueue = new TrackQueue(e.UpdatedPlaylist, e.IndexOfPlayingTrack, (PlaybackMode)Properties.Settings.Default.TaskPlaybackMode);

            if (trackQueue.Count != 0)
            {
                TrackInfo nextTrack;
                trackQueue.Next(out nextTrack);
            }
        }
Example #4
0
        // Called by PagePlaylist. Because it needs to know the index of playing track to set playing sign.
        public PlayTrackEventArgs GetNextTrack(Guid listGUID, int selectedIdx, PlaybackMode mode, out int trackIdx)
        {
            if (trackQueue == null)
            {
                Playlist pl = PlaylistCollection.GetDatabase().TrackLists.Find(x => x.GUID == listGUID);
                if (pl == null || pl.TrackAmount == 0)
                {
                    throw new InvalidPlaylistException(string.Format("Given playlist \"{0}\" is invalid.", listGUID));
                }
                trackQueue = new TrackQueue(pl, selectedIdx, mode);
            }

            TrackInfo currentTrack;
            int       currentTrackIdx = trackQueue.Current(out currentTrack);
            TrackInfo nextTrack;

            trackIdx = trackQueue.Next(out nextTrack);

            PlayTrackEventArgs e = new PlayTrackEventArgs(trackQueue.ListGUID, currentTrackIdx, currentTrack, trackQueue.Mode, this.CurrentTrackStatus);

            e.SetNextTrack(nextTrack, trackIdx);

            return(e);
        }