Пример #1
0
        //Removes current playing song then adds to play history.
        private Song DequeueToHistory(PlayOperation operationType)
        {
            if (_playlist.Count > 0)
            {
                var song = _playlist.Dequeue();
                _history.AddSong(song, operationType);

                if (_playlist.Count == 1)
                {
                    PlaylistRequest request = new PlaylistRequest(
                        _status, _history, PlayOperation.PlayingLast,
                        CurrentChannel, CurrentSong);

                    var resp = request.GetResponse();

                    ExtractPlaylist(resp, false);
                }

                return(song);
            }
            else
            {
                return(null);
            }
        }
Пример #2
0
        internal static string ToTypeCode(PlayOperation operation)
        {
            switch (operation)
            {
            case PlayOperation.NewList:
                return("n");

            case PlayOperation.Skip:
                return("s");

            case PlayOperation.Bin:
                return("b");

            case PlayOperation.PlaysToEnd:
                return("e");

            case PlayOperation.PlayingLast:
                return("p");

            case PlayOperation.Like:
                return("r");

            case PlayOperation.Unlike:
                return("u");

            default:
                return(String.Empty);
            }
        }
Пример #3
0
 public PlaylistRequest(UserStatus userStatus, PlayHistory history,
                        PlayOperation operation, Channel channel, Song lastPlay)
 {
     UserStatus     = userStatus;
     History        = history;
     Operation      = operation;
     RequestChannel = channel;
     LastPlay       = lastPlay;
 }
Пример #4
0
 public PlaylistRequest(UserStatus userStatus, PlayHistory history,
     PlayOperation operation, Channel channel, Song lastPlay)
 {
     UserStatus     = userStatus;
     History        = history;
     Operation      = operation;
     RequestChannel = channel;
     LastPlay       = lastPlay;
 }
Пример #5
0
        public void AddSong(Song song, PlayOperation operation)
        {
            _history.Enqueue(new HistoryItem()
            {
                SongID = song.SongID,
                TypeCode = DataConvert.ToTypeCode(operation)
            });

            if (_history.Count > 20)
                _history.Dequeue();
        }
Пример #6
0
        public void AddSong(Song song, PlayOperation operation)
        {
            _history.Enqueue(new HistoryItem()
            {
                SongID   = song.SongID,
                TypeCode = DataConvert.ToTypeCode(operation)
            });

            if (_history.Count > 20)
            {
                _history.Dequeue();
            }
        }
Пример #7
0
 internal static string ToTypeCode(PlayOperation operation)
 {
     switch (operation)
     {
     case PlayOperation.NewList:
         return "n";
     case PlayOperation.Skip:
         return "s";
     case PlayOperation.Bin:
         return "b";
     case PlayOperation.PlaysToEnd:
         return "e";
     case PlayOperation.PlayingLast:
         return "p";
     case PlayOperation.Like:
         return "r";
     case PlayOperation.Unlike:
         return "u";
     default:
         return String.Empty;
     }
 }
Пример #8
0
        //Removes current playing song then adds to play history.
        private Song DequeueToHistory(PlayOperation operationType)
        {
            if (_playlist.Count > 0)
            {
                var song = _playlist.Dequeue();
                _history.AddSong(song, operationType);

                if (_playlist.Count == 1)
                {
                    PlaylistRequest request = new PlaylistRequest(
                        _status, _history, PlayOperation.PlayingLast,
                        CurrentChannel, CurrentSong);

                    var resp = request.GetResponse();

                    ExtractPlaylist(resp, false);
                }

                return song;
            }
            else
            {
                return null;
            }
        }