private void loadSong(bool nextSong)
{
stopSong();
if (songPos >= 0)
{
int tempScore = score;
SongParameters tempSong = backlog[songPos];
UserToken tempUser = currentUser;
int tempGenre = curGenre;
new Thread(() => sendScore(tempScore, tempSong, tempUser, tempGenre)).Start();
}
resetPlayBar();
if (nextSong) songPos++;
else if(songPos > 0) songPos--;
if (songPos < 0 || songPos > backlog.Count)
return;
foreach (Setting setting in settings)
if (setting.isChecked())
setting.randomize();
if (songPos >= backlog.Count)
{
backlog.Add(new SongParameters(seed.getIntValue(), tempo.getIntValue(), genre.getStringValue()));
if(backlog.Count > Properties.Settings.Default.maxSongs)
{
backlog.RemoveAt(0);
songPos--;
}
}
else
{
genre.setValue(backlog[songPos].genre);
tempo.setValue(backlog[songPos].tempo + "");
seed.setValue(backlog[songPos].seed + "");
}
player.Open("");
songLen = generator.generate(backlog[songPos]);
player.Open("temp.mid");
playSong();
}