Example #1
0
        private async Task AddToQueueAsync(Song song)
        {
            if (QueueSongs.Any(p => p.SongId == song.Id))
            {
                return;
            }

            var prev = QueueSongs.LastOrDefault();

            // Create the new queue entry
            var newQueue = new QueueSong
            {
                SongId = song.Id,
                PrevId = prev == null ? 0 : prev.Id,
                Song   = song
            };

            using (var bg = _bgFunc())
            {
                await bg.InsertAsync(newQueue);

                if (prev != null)
                {
                    prev.NextId = newQueue.Id;
                    await bg.UpdateItemAsync(prev);
                }

                QueueSongsLookup.Add(newQueue.Id, newQueue);
                QueueSongs.Add(newQueue);
            }
        }
Example #2
0
        public bool Add(AllJoinedTable allJoinedTable)
        {
            if (!QueueSongs.Any(x => x == allJoinedTable))
            {
                QueueSongs.Add(allJoinedTable);
            }
            else
            {
                return(false);
            }

            return(true);
        }
Example #3
0
    // enables/disables the control buttons based on state of the GUI..
    private void lvQueues_SelectedIndexChanged(object sender, EventArgs e)
    {
        ListView lv = (ListView)sender;

        lbSongs.Items.Clear();

        lbSongs.Items.AddRange(QueueSongs.Select(f => f.ToString(false)).Cast <object>().ToArray());

        bOK.Enabled                 = lv.SelectedIndices.Count > 0;
        tsbRemove.Enabled           = lv.SelectedIndices.Count > 0;
        tsbModifySavedQueue.Enabled = lv.SelectedIndices.Count > 0;
        tsbCopyAllFlat.Enabled      = lv.SelectedIndices.Count > 0;
        tsbExportQueue.Enabled      = lv.SelectedIndices.Count > 0;
        btAppendQueue.Enabled       = lv.SelectedIndices.Count > 0;
    }
Example #4
0
        public void QueueSongRange(IEnumerable <AllJoinedTable> songs, int amount)
        {
            var filterCount = songs.Count() - 1;

            if (filterCount > 1)
            {
                _random = new Random();
                for (int i = 0; i < amount; i++)
                {
                    //Select random id from the fitlered count.
                    //Only add song if not already exisiting.
                    var id   = _random.Next(filterCount);
                    var song = songs.ElementAt(id);
                    if (!QueueSongs.Contains(song))
                    {
                        QueueSongs.Add(song);
                    }
                }
            }
        }
Example #5
0
 public void Shuffle()
 {
     QueueSongs.Shuffle();
 }