Remove redundant names in playlist functions

Fix handling of playlist IDs
This commit is contained in:
Flamefire committed 2014-08-08 23:49:01 +02:00
1 parent 10e5312579
commit 75ff5a0291
10 files changed
+249 -272

No files matched your search

+33 -28
View File
@@ -865,29 +865,34 @@ namespace Vocaluxe.Base
class CBplaylist : IPlaylist
{
public void SetPlaylistName(int playlistID, string name)
public void SetName(int playlistID, string name)
{
CPlaylists.SetPlaylistName(playlistID, name);
CPlaylists.SetName(playlistID, name);
}
public List<string> GetPlaylistNames()
public List<string> GetNames()
{
return CPlaylists.PlaylistNames;
return CPlaylists.Names;
}
public string GetPlaylistName(int playlistID)
public bool Exists(int playlistID)
{
return CPlaylists.GetPlaylistName(playlistID);
return CPlaylists.Get(playlistID) != null;
}
public void DeletePlaylist(int playlistID)
public string GetName(int playlistID)
{
CPlaylists.DeletePlaylist(playlistID);
return CPlaylists.GetName(playlistID);
}
public void SavePlaylist(int playlistID)
public void Delete(int playlistID)
{
CPlaylists.SavePlaylist(playlistID);
CPlaylists.Delete(playlistID);
}
public void Save(int playlistID)
{
CPlaylists.Save(playlistID);
}
public int GetNumPlaylists()
@@ -895,49 +900,49 @@ namespace Vocaluxe.Base
return CPlaylists.NumPlaylists;
}
public void AddPlaylistSong(int playlistID, int songID)
public void AddSong(int playlistID, int songID)
{
CPlaylists.AddPlaylistSong(playlistID, songID);
CPlaylists.AddSong(playlistID, songID);
}
public void AddPlaylistSong(int playlistID, int songID, EGameMode gameMode)
public void AddSong(int playlistID, int songID, EGameMode gameMode)
{
CPlaylists.AddPlaylistSong(playlistID, songID, gameMode);
CPlaylists.AddSong(playlistID, songID, gameMode);
}
public void InsertPlaylistSong(int playlistID, int positionIndex, int songID, EGameMode gameMode)
public void InsertSong(int playlistID, int positionIndex, int songID, EGameMode gameMode)
{
CPlaylists.InsertPlaylistSong(playlistID, positionIndex, songID, gameMode);
CPlaylists.InsertSong(playlistID, positionIndex, songID, gameMode);
}
public void MovePlaylistSong(int playlistID, int sourceIndex, int destIndex)
public void MoveSong(int playlistID, int sourceIndex, int destIndex)
{
CPlaylists.MovePlaylistSong(playlistID, sourceIndex, destIndex);
CPlaylists.MoveSong(playlistID, sourceIndex, destIndex);
}
public void MovePlaylistSongDown(int playlistID, int songIndex)
public void MoveSongDown(int playlistID, int songIndex)
{
CPlaylists.MovePlaylistSongDown(playlistID, songIndex);
CPlaylists.MovePSongDown(playlistID, songIndex);
}
public void MovePlaylistSongUp(int playlistID, int songIndex)
public void MoveSongUp(int playlistID, int songIndex)
{
CPlaylists.MovePlaylistSongUp(playlistID, songIndex);
CPlaylists.MoveSongUp(playlistID, songIndex);
}
public void DeletePlaylistSong(int playlistID, int songIndex)
public void DeleteSong(int playlistID, int songIndex)
{
CPlaylists.DeletePlaylistSong(playlistID, songIndex);
CPlaylists.DeleteSong(playlistID, songIndex);
}
public int GetPlaylistSongCount(int playlistID)
public int GetSongCount(int playlistID)
{
return CPlaylists.GetPlaylistSongCount(playlistID);
return CPlaylists.GetSongCount(playlistID);
}
public CPlaylistSong GetPlaylistSong(int playlistID, int songIndex)
public CPlaylistSong GetSong(int playlistID, int songIndex)
{
return CPlaylists.GetPlaylistSong(playlistID, songIndex);
return CPlaylists.GetSong(playlistID, songIndex);
}
}
}
+80 -93
View File
@@ -31,13 +31,14 @@ namespace Vocaluxe.Base
static class CPlaylists
{
private static List<CPlaylistFile> _Playlists;
private static int _NextID;
public static CPlaylistFile[] Playlists
public static IEnumerable<CPlaylistFile> Playlists
{
get { return _Playlists.ToArray(); }
get { return _Playlists.AsReadOnly(); }
}
public static List<string> PlaylistNames
public static List<string> Names
{
get { return _Playlists.Select(t => t.Name).ToList(); }
}
@@ -49,10 +50,10 @@ namespace Vocaluxe.Base
public static void Init()
{
LoadPlaylists();
Load();
_ConvertUSDXPlaylists();
_SortPlaylistsByName();
_SortByName();
}
private static void _ConvertUSDXPlaylists()
@@ -63,12 +64,12 @@ namespace Vocaluxe.Base
foreach (string file in files)
{
CPlaylistFile playlist = _ConvertUSDXPlaylist(file);
playlist.SavePlaylist();
playlist.Save();
_Playlists.Add(playlist);
}
}
public static void LoadPlaylists()
public static void Load()
{
_Playlists = new List<CPlaylistFile>();
@@ -77,148 +78,141 @@ namespace Vocaluxe.Base
foreach (string file in files)
{
CPlaylistFile playlist = new CPlaylistFile(file, files.IndexOf(file));
CPlaylistFile playlist = new CPlaylistFile(files.IndexOf(file), file);
_Playlists.Add(playlist);
}
}
public static string GetPlaylistName(int playlistID)
public static CPlaylistFile Get(int playlistID)
{
if (playlistID >= _Playlists.Count || playlistID < 0)
return "Error: Can't find Playlist";
return _Playlists[playlistID].Name;
return _Playlists.FirstOrDefault(pl => pl.Id == playlistID);
}
public static void SetPlaylistName(int playlistID, string name)
public static string GetName(int playlistID)
{
if (playlistID >= _Playlists.Count || playlistID < 0)
return;
_Playlists[playlistID].Name = name;
CPlaylistFile pl = Get(playlistID);
return pl == null ? "Error: Can't find Playlist" : pl.Name;
}
public static void DeletePlaylist(int playlistID)
public static void SetName(int playlistID, string name)
{
if (playlistID < 0 || playlistID >= _Playlists.Count)
CPlaylistFile pl = Get(playlistID);
if (pl != null)
pl.Name = name;
}
public static void Delete(int playlistID)
{
CPlaylistFile pl = Get(playlistID);
if (pl == null)
return;
if (_Playlists[playlistID].File != "")
if (pl.File != "" && File.Exists(pl.File))
{
try
{
File.Delete(_Playlists[playlistID].File);
File.Delete(pl.File);
}
catch (Exception)
{
CLog.LogError("Can't delete Playlist File " + _Playlists[playlistID].File + ".xml");
}
}
_Playlists.RemoveAt(playlistID);
_Playlists.Remove(pl);
}
public static void SavePlaylist(int playlistID)
public static void Save(int playlistID)
{
if (playlistID < 0 || playlistID >= _Playlists.Count)
return;
_Playlists[playlistID].SavePlaylist();
CPlaylistFile pl = Get(playlistID);
if (pl != null)
pl.Save();
}
public static int NewPlaylist()
public static int NewPlaylist(string name = "New Playlist")
{
CPlaylistFile pl = new CPlaylistFile {Name = "New Playlist", Id = _Playlists.Count};
CPlaylistFile pl = new CPlaylistFile(_NextID++) {Name = name};
_Playlists.Add(pl);
return _Playlists.Count - 1;
return pl.Id;
}
public static void AddPlaylistSong(int playlistID, int songID)
public static void AddSong(int playlistID, int songID)
{
if (playlistID >= _Playlists.Count || playlistID < 0)
return;
_Playlists[playlistID].AddSong(songID);
CPlaylistFile pl = Get(playlistID);
if (pl != null)
pl.AddSong(songID);
}
public static void AddPlaylistSong(int playlistID, int songID, EGameMode gameMode)
public static void AddSong(int playlistID, int songID, EGameMode gameMode)
{
if (playlistID >= _Playlists.Count || playlistID < 0)
return;
_Playlists[playlistID].AddSong(songID, gameMode);
CPlaylistFile pl = Get(playlistID);
if (pl != null)
pl.AddSong(songID, gameMode);
}
public static void InsertPlaylistSong(int playlistID, int positionIndex, int songID, EGameMode gameMode)
public static void InsertSong(int playlistID, int positionIndex, int songID, EGameMode gameMode)
{
if (playlistID >= _Playlists.Count || playlistID < 0)
return;
_Playlists[playlistID].SongInsert(positionIndex, songID, gameMode);
CPlaylistFile pl = Get(playlistID);
if (pl != null)
pl.InsertSong(positionIndex, songID, gameMode);
}
public static void MovePlaylistSong(int playlistID, int sourceIndex, int destIndex)
public static void MoveSong(int playlistID, int sourceIndex, int destIndex)
{
if (playlistID >= _Playlists.Count || playlistID < 0)
return;
_Playlists[playlistID].SongMove(sourceIndex, destIndex);
CPlaylistFile pl = Get(playlistID);
if (pl != null)
pl.MoveSong(sourceIndex, destIndex);
}
public static void MovePlaylistSongDown(int playlistID, int songIndex)
public static void MovePSongDown(int playlistID, int songIndex)
{
if (playlistID >= _Playlists.Count || playlistID < 0)
return;
_Playlists[playlistID].SongDown(songIndex);
CPlaylistFile pl = Get(playlistID);
if (pl != null)
pl.MoveSongDown(songIndex);
}
public static void MovePlaylistSongUp(int playlistID, int songIndex)
public static void MoveSongUp(int playlistID, int songIndex)
{
if (playlistID >= _Playlists.Count || playlistID < 0)
return;
_Playlists[playlistID].SongUp(songIndex);
CPlaylistFile pl = Get(playlistID);
if (pl != null)
pl.MoveSongUp(songIndex);
}
public static void DeletePlaylistSong(int playlistID, int songIndex)
public static void DeleteSong(int playlistID, int songIndex)
{
if (playlistID >= _Playlists.Count || playlistID < 0)
return;
_Playlists[playlistID].DeleteSong(songIndex);
CPlaylistFile pl = Get(playlistID);
if (pl != null)
pl.DeleteSong(songIndex);
}
public static int GetPlaylistSongCount(int playlistID)
public static int GetSongCount(int playlistID)
{
if (playlistID >= _Playlists.Count || playlistID < 0)
return 0;
return _Playlists[playlistID].Songs.Count;
CPlaylistFile pl = Get(playlistID);
return pl != null ? pl.Songs.Count : -1;
}
public static CPlaylistSong GetPlaylistSong(int playlistID, int songIndex)
public static CPlaylistSong GetSong(int playlistID, int songIndex)
{
if (playlistID >= _Playlists.Count || playlistID < 0)
CPlaylistFile pl = Get(playlistID);
if (pl == null || songIndex >= pl.Songs.Count)
return null;
if (songIndex >= _Playlists[playlistID].Songs.Count)
return null;
return _Playlists[playlistID].Songs[songIndex];
return pl.Songs[songIndex];
}
#region private methods
private static void _SortPlaylistsByName()
private static void _SortByName()
{
_Playlists.Sort(_CompareByPlaylistName);
_Playlists.Sort(_CompareByName);
}
private static int _CompareByPlaylistName(CPlaylistFile a, CPlaylistFile b)
private static int _CompareByName(CPlaylistFile a, CPlaylistFile b)
{
return String.CompareOrdinal(a.Name, b.Name);
}
private static CPlaylistFile _ConvertUSDXPlaylist(string file)
{
var pl = new CPlaylistFile();
var pl = new CPlaylistFile(_NextID++);
ReadOnlyCollection<CSong> allSongs = CSongs.AllSongs;
if (!File.Exists(file))
@@ -234,30 +228,23 @@ namespace Vocaluxe.Base
int pos = line.IndexOf(":", StringComparison.Ordinal);
if (pos <= 0)
continue;
//Name or comment
if (line[0] == '#')
{
//Name or comment
string identifier = line.Substring(1, pos - 1).Trim();
string value = line.Substring(pos + 1, line.Length - pos - 1).Trim();
if (identifier.ToUpper() == "NAME")
pl.Name = value;
}
//Song
else
{
//Song
string artist = line.Substring(0, pos - 1).Trim();
string title = line.Substring(pos + 1, line.Length - pos - 1).Trim();
bool found = false;
foreach (CSong song in allSongs)
{
if (song.Artist == artist && song.Title == title)
{
pl.AddSong(song.ID);
found = true;
break;
}
}
if (!found)
CSong plSong = allSongs.FirstOrDefault(song => song.Artist == artist && song.Title == title);
if (plSong != null)
pl.AddSong(plSong.ID);
else
CLog.LogError("Can't find song '" + title + "' from '" + artist + "' in playlist file: " + file);
}
}
+27 -24
View File
@@ -461,20 +461,20 @@ namespace Vocaluxe.Base.Server
private static SPlaylistInfo _GetPlaylist(int playlistId)
{
if (CPlaylists.Playlists.Length <= playlistId || playlistId < 0)
if (CPlaylists.Get(playlistId) == null)
throw new ArgumentException("invalid playlistId");
return _GetPlaylistInfo(CPlaylists.Playlists[playlistId]);
return _GetPlaylistInfo(CPlaylists.Get(playlistId));
}
private static void _AddSongToPlaylist(int songId, int playlistId, bool allowDuplicates)
{
if (CPlaylists.Playlists.Length <= playlistId || playlistId < 0)
if (CPlaylists.Get(playlistId) == null)
throw new ArgumentException("invalid playlistId");
if (allowDuplicates || !_PlaylistContainsSong(songId, playlistId))
{
CPlaylists.AddPlaylistSong(playlistId, songId);
CPlaylists.SavePlaylist(playlistId);
CPlaylists.AddSong(playlistId, songId);
CPlaylists.Save(playlistId);
}
else
throw new ArgumentException("song exists in this playlist");
@@ -482,45 +482,49 @@ namespace Vocaluxe.Base.Server
private static void _RemoveSongFromPlaylist(int position, int playlistId, int songId)
{
if (CPlaylists.Playlists.Length <= playlistId || playlistId < 0)
CPlaylistFile pl = CPlaylists.Get(playlistId);
if (pl == null)
throw new ArgumentException("invalid playlistId");
if (!_PlaylistContainsSong(songId, playlistId))
throw new ArgumentException("invalid songId");
if (position < 0 || CPlaylists.Playlists[playlistId].Songs.Count <= position
|| CPlaylists.Playlists[playlistId].Songs[position].SongID != songId)
if (position < 0 || pl.Songs.Count <= position
|| pl.Songs[position].SongID != songId)
throw new ArgumentException("invalid position");
CPlaylists.Playlists[playlistId].DeleteSong(position);
CPlaylists.SavePlaylist(playlistId);
pl.DeleteSong(position);
pl.Save();
}
private static void _MoveSongInPlaylist(int newPosition, int playlistId, int songId)
{
if (CPlaylists.Playlists.Length <= playlistId || playlistId < 0)
CPlaylistFile pl = CPlaylists.Get(playlistId);
if (pl == null)
throw new ArgumentException("invalid playlistId");
if (!_PlaylistContainsSong(songId, playlistId))
throw new ArgumentException("invalid songId");
if (CPlaylists.Playlists[playlistId].Songs.Count < newPosition)
if (pl.Songs.Count < newPosition)
throw new ArgumentException("invalid newPosition");
int oldPosition = CPlaylists.Playlists[playlistId].Songs.FindIndex(s => s.SongID == songId);
CPlaylists.MovePlaylistSong(playlistId, oldPosition, newPosition);
CPlaylists.SavePlaylist(playlistId);
int oldPosition = pl.Songs.FindIndex(s => s.SongID == songId);
pl.MoveSong(oldPosition, newPosition);
pl.Save();
}
private static bool _PlaylistContainsSong(int songId, int playlistId)
{
if (CPlaylists.Playlists.Length <= playlistId || playlistId < 0)
CPlaylistFile pl = CPlaylists.Get(playlistId);
if (pl == null)
throw new ArgumentException("invalid playlistId");
return CPlaylists.Playlists[playlistId].Songs.Any(s => s.SongID == songId);
return pl.Songs.Any(s => s.SongID == songId);
}
private static SPlaylistSongInfo[] _GetPlaylistSongs(int playlistId)
{
if (CPlaylists.Playlists.Length <= playlistId || playlistId < 0)
CPlaylistFile pl = CPlaylists.Get(playlistId);
if (pl == null)
throw new ArgumentException("invalid playlistId");
return _GetPlaylistSongInfos(CPlaylists.Playlists[playlistId]);
return _GetPlaylistSongInfos(pl);
}
private static SPlaylistSongInfo _GetPlaylistSongInfo(CPlaylistSong playlistSong, int playlistId, int playlistPos)
@@ -557,16 +561,15 @@ namespace Vocaluxe.Base.Server
private static void _RemovePlaylist(int playlistId)
{
if (CPlaylists.Playlists.Length <= playlistId || playlistId < 0)
if (CPlaylists.Get(playlistId) == null)
throw new ArgumentException("invalid playlistId");
CPlaylists.DeletePlaylist(playlistId);
CPlaylists.Delete(playlistId);
}
private static int _AddPlaylist(string playlistName)
{
int newPlaylistId = CPlaylists.NewPlaylist();
CPlaylists.Playlists[newPlaylistId].Name = playlistName;
CPlaylists.SavePlaylist(newPlaylistId);
int newPlaylistId = CPlaylists.NewPlaylist(playlistName);
CPlaylists.Save(newPlaylistId);
return newPlaylistId;
}
+28 -41
View File
@@ -18,6 +18,7 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Xml;
using Vocaluxe.Base;
using VocaluxeLib;
@@ -28,25 +29,20 @@ namespace Vocaluxe.Lib.Playlist
{
public class CPlaylistFile
{
public string Name;
public string Name = "";
public string File;
public int Id = -1;
public readonly int Id = -1;
public List<CPlaylistSong> Songs = new List<CPlaylistSong>();
public CPlaylistFile()
{
Name = string.Empty;
File = string.Empty;
}
public CPlaylistFile(string file, int id)
public CPlaylistFile(int id, string file = "")
{
Id = id;
File = file;
_LoadPlaylist();
if (File != "")
_Load();
}
public void SavePlaylist()
public void Save()
{
if (File == "")
{
@@ -113,43 +109,34 @@ namespace Vocaluxe.Lib.Playlist
}
}
private void _LoadPlaylist()
private void _Load()
{
CXMLReader xmlReader = CXMLReader.OpenFile(File);
if (xmlReader == null)
return;
string value = String.Empty;
if (xmlReader.GetValue("//root/Info/PlaylistName", out value, value))
string value;
if (xmlReader.GetValue("//root/Info/PlaylistName", out value, ""))
{
Name = value;
Songs = new List<CPlaylistSong>();
List<string> songs = xmlReader.GetValues("Songs");
var gm = EGameMode.TR_GAMEMODE_NORMAL;
foreach (string song in songs)
foreach (string songEntry in songs)
{
string artist;
string title;
xmlReader.GetValue("//root/Songs/" + song + "/Artist", out artist, String.Empty);
xmlReader.GetValue("//root/Songs/" + song + "/Title", out title, String.Empty);
xmlReader.TryGetEnumValue("//root/Songs/" + song + "/GameMode", ref gm);
xmlReader.GetValue("//root/Songs/" + songEntry + "/Artist", out artist, String.Empty);
xmlReader.GetValue("//root/Songs/" + songEntry + "/Title", out title, String.Empty);
EGameMode gm = EGameMode.TR_GAMEMODE_NORMAL;
xmlReader.TryGetEnumValue("//root/Songs/" + songEntry + "/GameMode", ref gm);
var playlistSong = new CPlaylistSong {SongID = -1};
foreach (CSong curSong in CSongs.AllSongs)
CSong plSong = CSongs.AllSongs.FirstOrDefault(song => song.Artist == artist && song.Title == title);
if (plSong != null)
{
if (curSong.Artist != artist || curSong.Title != title)
continue;
playlistSong.SongID = curSong.ID;
break;
}
if (playlistSong.SongID != -1)
{
playlistSong.GameMode = gm;
var playlistSong = new CPlaylistSong(plSong.ID, gm);
Songs.Add(playlistSong);
}
else
@@ -173,7 +160,7 @@ namespace Vocaluxe.Lib.Playlist
public void AddSong(int songID, EGameMode gm)
{
var song = new CPlaylistSong {SongID = songID, GameMode = gm};
var song = new CPlaylistSong(songID, gm);
Songs.Add(song);
}
@@ -183,31 +170,31 @@ namespace Vocaluxe.Lib.Playlist
Songs.RemoveAt(songNr);
}
public void SongUp(int songNr)
public void MoveSongUp(int songNr)
{
if (songNr < Songs.Count - 1 && songNr > 0)
if (songNr < Songs.Count && songNr > 0)
Songs.Reverse(songNr - 1, 2);
}
public void SongDown(int songNr)
public void MoveSongDown(int songNr)
{
if (songNr < Songs.Count - 1 && songNr >= 0)
Songs.Reverse(songNr, 2);
}
public void SongMove(int sourceNr, int destNr)
public void MoveSong(int sourceNr, int destNr)
{
if (sourceNr < 0 || destNr < 0 || sourceNr == destNr || sourceNr > Songs.Count - 1 || destNr > Songs.Count - 1)
if (sourceNr < 0 || destNr < 0 || sourceNr == destNr || sourceNr >= Songs.Count || destNr >= Songs.Count)
return;
var ps = new CPlaylistSong(Songs[sourceNr]);
CPlaylistSong song = Songs[sourceNr];
Songs.RemoveAt(sourceNr);
Songs.Insert(destNr, ps);
Songs.Insert(destNr, song);
}
public void SongInsert(int destNr, int songID, EGameMode gm)
public void InsertSong(int destNr, int songID, EGameMode gm)
{
if (destNr < 0 || destNr > Songs.Count - 1)
if (destNr < 0 || destNr >= Songs.Count)
return;
CPlaylistSong ps = new CPlaylistSong(songID, gm);
+11 -12
View File
@@ -1265,9 +1265,8 @@ namespace Vocaluxe.Screens
private void _OpenPlaylist(int playlistID)
{
if (CPlaylists.Playlists.Length > playlistID && playlistID >= 0)
if (_Playlist.LoadPlaylist(playlistID))
{
_Playlist.LoadPlaylist(playlistID);
_SongMenu.SmallView = true;
_Playlist.Visible = true;
}
@@ -1289,17 +1288,17 @@ namespace Vocaluxe.Screens
{
_SelectSlides[_SelectSlideOptionsPlaylistAdd].Clear();
_SelectSlides[_SelectSlideOptionsPlaylistAdd].AddValue("TR_SCREENSONG_NEWPLAYLIST");
_SelectSlides[_SelectSlideOptionsPlaylistAdd].AddValues(CPlaylists.PlaylistNames);
_SelectSlides[_SelectSlideOptionsPlaylistAdd].AddValues(CPlaylists.Names);
_SelectSlides[_SelectSlideOptionsPlaylistOpen].Clear();
_SelectSlides[_SelectSlideOptionsPlaylistOpen].AddValues(CPlaylists.PlaylistNames);
_SelectSlides[_SelectSlideOptionsPlaylistOpen].AddValues(CPlaylists.Names);
}
private void _OpenAndAddPlaylistAction()
{
//Open an existing playlist and add song
if (_Playlist.ActivePlaylistID != (_SelectSlides[_SelectSlideOptionsPlaylistAdd].Selection - 1) &&
(_SelectSlides[_SelectSlideOptionsPlaylistAdd].Selection - 1) != -1)
{
//Open an existing playlist and add song
//Check selected game-mode
EGameMode gm;
if (_AvailableGameModes.Count >= _SelectSlides[_SelectSlideOptionsMode].Selection)
@@ -1315,7 +1314,7 @@ namespace Vocaluxe.Screens
_Playlist.ActivePlaylistID = _SelectSlides[_SelectSlideOptionsPlaylistAdd].Selection - 1;
//Add song to playlist
CPlaylists.Playlists[_Playlist.ActivePlaylistID].AddSong(CSongs.VisibleSongs[_SongMenu.GetPreviewSongNr()].ID, gm);
CPlaylists.AddSong(_Playlist.ActivePlaylistID, CSongs.VisibleSongs[_SongMenu.GetPreviewSongNr()].ID, gm);
//Open playlist
_OpenPlaylist(_Playlist.ActivePlaylistID);
@@ -1323,9 +1322,9 @@ namespace Vocaluxe.Screens
_Playlist.ScrollToBottom();
}
}
//Create a new playlist and add song
else if ((_SelectSlides[_SelectSlideOptionsPlaylistAdd].Selection - 1) == -1)
{
//Create a new playlist and add song
//Check selected game-mode
EGameMode gm;
if (_AvailableGameModes.Count >= _SelectSlides[_SelectSlideOptionsMode].Selection)
@@ -1339,18 +1338,18 @@ namespace Vocaluxe.Screens
_Playlist.ActivePlaylistID = CPlaylists.NewPlaylist();
//Add song to playlist
CPlaylists.Playlists[_Playlist.ActivePlaylistID].AddSong(CSongs.VisibleSongs[_SongMenu.GetPreviewSongNr()].ID, gm);
CPlaylists.AddSong(_Playlist.ActivePlaylistID, CSongs.VisibleSongs[_SongMenu.GetPreviewSongNr()].ID, gm);
//Open playlist
_OpenPlaylist(_Playlist.ActivePlaylistID);
//Add new playlist to select-slide
_SelectSlides[_SelectSlideOptionsPlaylistAdd].AddValue(CPlaylists.Playlists[_Playlist.ActivePlaylistID].Name);
_SelectSlides[_SelectSlideOptionsPlaylistOpen].AddValue(CPlaylists.Playlists[_Playlist.ActivePlaylistID].Name);
_SelectSlides[_SelectSlideOptionsPlaylistAdd].AddValue(CPlaylists.GetName(_Playlist.ActivePlaylistID));
_SelectSlides[_SelectSlideOptionsPlaylistOpen].AddValue(CPlaylists.GetName(_Playlist.ActivePlaylistID));
}
//Add song to loaded playlist
else
{
//Add song to loaded playlist
//Check selected game-mode
EGameMode gm;
if (_AvailableGameModes.Count >= _SelectSlides[_SelectSlideOptionsMode].Selection)
@@ -1359,7 +1358,7 @@ namespace Vocaluxe.Screens
gm = EGameMode.TR_GAMEMODE_DUET;
else
gm = EGameMode.TR_GAMEMODE_NORMAL;
CPlaylists.Playlists[_Playlist.ActivePlaylistID].AddSong(CSongs.VisibleSongs[_SongMenu.GetPreviewSongNr()].ID, gm);
CPlaylists.AddSong(_Playlist.ActivePlaylistID, CSongs.VisibleSongs[_SongMenu.GetPreviewSongNr()].ID, gm);
_Playlist.UpdatePlaylist();
_Playlist.ScrollToBottom();
}