Пример #1
0
        /// <summary>
        /// Called when a play list operation is requested.
        /// </summary>
        /// <param name="e">The e.</param>
        private void OnPlayListOperation(PlayListOperationAggregatedEvent e)
        {
            TrackViewModel trackToPlay;

            switch (e.Operation)
            {
            case PlayListOperation.ClearAndPlay:
                ClearItems();

                // test lines below before uncommenting
                //_playbackService.ClearPlayQueue();
                //_playbackService.InsertTracksToQueue(e.Items.Select(o => o.TrackInfo), 0);
                if (e.Items.Count() > 0)
                {
                    _logService.Trace(string.Format("PlayQueueViewModel.OnPlayListOperation : Appending {0} tracks", e.Items.Count()));
                    AppendItems(e.Items, matchingGeneratedGuids =>
                    {
                        trackToPlay = e.Items.First();
                        _logService.Trace(string.Format("Play queue cleared : Starting playback of track {0}", trackToPlay.TrackInfo.Title));
                        OnPlay(matchingGeneratedGuids[trackToPlay.TrackInfo]);
                    });
                }
                break;

            case PlayListOperation.InsertAfterCurrent:
                break;

            case PlayListOperation.Append:
                _logService.Trace(string.Format("PlayQueueViewModel.OnPlayListOperation : Appending {0} tracks", e.Items.Count()));
                if (e.Items.Count() > 0)
                {
                    AppendItems(e.Items, matchingGeneratedGuids =>
                    {
                        _logService.Trace(string.Format("Items appended : Current playback service status : {0}", _playbackService.Status));
                        if (_playbackService.Status != PlayState.Playing)
                        {
                            trackToPlay = e.Items.First();
                            _logService.Trace(string.Format("PlaybackStatus stopped - Starting playback of track {0}", trackToPlay.TrackInfo.Title));
                            OnPlay(matchingGeneratedGuids[trackToPlay.TrackInfo]);
                        }
                    });
                }


                break;

            default:
                throw new ArgumentOutOfRangeException();
            }
        }
Пример #2
0
        /// <summary>
        /// Called when a play list operation is requested.
        /// </summary>
        /// <param name="e">The e.</param>
        private void OnPlayListOperation(PlayListOperationAggregatedEvent e)
        {
            TrackViewModel trackToPlay;

            switch (e.Operation)
            {
                case PlayListOperation.ClearAndPlay:
                    ClearItems();

                    // test lines below before uncommenting
                    //_playbackService.ClearPlayQueue();
                    //_playbackService.InsertTracksToQueue(e.Items.Select(o => o.TrackInfo), 0);
                    if (e.Items.Count() > 0)
                    {
                        _logService.Trace(string.Format("PlayQueueViewModel.OnPlayListOperation : Appending {0} tracks", e.Items.Count()));
                        AppendItems(e.Items, matchingGeneratedGuids =>
                        {
                            trackToPlay = e.Items.First();
                            _logService.Trace(string.Format("Play queue cleared : Starting playback of track {0}", trackToPlay.TrackInfo.Title));
                            OnPlay(matchingGeneratedGuids[trackToPlay.TrackInfo]);
                        });
                    }
                    break;
                case PlayListOperation.InsertAfterCurrent:
                    break;
                case PlayListOperation.Append:
                    _logService.Trace(string.Format("PlayQueueViewModel.OnPlayListOperation : Appending {0} tracks", e.Items.Count()));
                    if (e.Items.Count() > 0)
                    {
                        AppendItems(e.Items, matchingGeneratedGuids =>
                                                 {
                                                     _logService.Trace(string.Format("Items appended : Current playback service status : {0}", _playbackService.Status));
                                                     if (_playbackService.Status != PlayState.Playing)
                                                     {
                                                         trackToPlay = e.Items.First();
                                                         _logService.Trace(string.Format("PlaybackStatus stopped - Starting playback of track {0}", trackToPlay.TrackInfo.Title));
                                                         OnPlay(matchingGeneratedGuids[trackToPlay.TrackInfo]);
                                                     }
                                                 });
                    }

                    break;
                default:
                    throw new ArgumentOutOfRangeException();
            }
        }