Remove redundant names in playlist functions
Fix handling of playlist IDs
This commit is contained in:
1 parent
10e5312579
commit
75ff5a0291
10 files changed
+249
-272
No files matched your search
@@ -655,9 +655,9 @@ namespace VocaluxeLib.PartyModes.TicTacToe
|
||||
switch (_GameData.SongSource)
|
||||
{
|
||||
case ESongSource.TR_PLAYLIST:
|
||||
for (int i = 0; i < CBase.Playlist.GetPlaylistSongCount(_GameData.PlaylistID); i++)
|
||||
for (int i = 0; i < CBase.Playlist.GetSongCount(_GameData.PlaylistID); i++)
|
||||
{
|
||||
int id = CBase.Playlist.GetPlaylistSong(_GameData.PlaylistID, i).SongID;
|
||||
int id = CBase.Playlist.GetSong(_GameData.PlaylistID, i).SongID;
|
||||
// ReSharper disable LoopCanBeConvertedToQuery
|
||||
foreach (EGameMode mode in CBase.Songs.GetSongByID(id).AvailableGameModes)
|
||||
// ReSharper restore LoopCanBeConvertedToQuery
|
||||
|
||||
@@ -180,11 +180,11 @@ namespace VocaluxeLib.PartyModes.TicTacToe
|
||||
_SelectSlides[_SelectSlideSongSource].Clear();
|
||||
_SelectSlides[_SelectSlideSongSource].SetValues<ESongSource>((int)_Data.ScreenConfig.SongSource);
|
||||
|
||||
List<string> playlists = CBase.Playlist.GetPlaylistNames();
|
||||
List<string> playlists = CBase.Playlist.GetNames();
|
||||
_SelectSlides[_SelectSlidePlaylist].Clear();
|
||||
for (int i = 0; i < playlists.Count; i++)
|
||||
{
|
||||
string value = playlists[i] + " (" + CBase.Playlist.GetPlaylistSongCount(i) + " " + CBase.Language.Translate("TR_SONGS", _PartyModeID) + ")";
|
||||
string value = playlists[i] + " (" + CBase.Playlist.GetSongCount(i) + " " + CBase.Language.Translate("TR_SONGS", _PartyModeID) + ")";
|
||||
_SelectSlides[_SelectSlidePlaylist].AddValue(value);
|
||||
}
|
||||
_SelectSlides[_SelectSlidePlaylist].Selection = _Data.ScreenConfig.PlaylistID;
|
||||
@@ -241,12 +241,12 @@ namespace VocaluxeLib.PartyModes.TicTacToe
|
||||
{
|
||||
if (CBase.Playlist.GetNumPlaylists() > 0)
|
||||
{
|
||||
if (CBase.Playlist.GetPlaylistSongCount(_Data.ScreenConfig.PlaylistID) > 0)
|
||||
if (CBase.Playlist.GetSongCount(_Data.ScreenConfig.PlaylistID) > 0)
|
||||
{
|
||||
_ConfigOk = false;
|
||||
for (int i = 0; i < CBase.Playlist.GetPlaylistSongCount(_Data.ScreenConfig.PlaylistID); i++)
|
||||
for (int i = 0; i < CBase.Playlist.GetSongCount(_Data.ScreenConfig.PlaylistID); i++)
|
||||
{
|
||||
int id = CBase.Playlist.GetPlaylistSong(_Data.ScreenConfig.PlaylistID, i).SongID;
|
||||
int id = CBase.Playlist.GetSong(_Data.ScreenConfig.PlaylistID, i).SongID;
|
||||
_ConfigOk = CBase.Songs.GetSongByID(id).AvailableGameModes.Any(mode => mode == gm);
|
||||
if (_ConfigOk)
|
||||
break;
|
||||
|
||||
+33
-28
@@ -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
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
@@ -62,10 +62,7 @@ namespace VocaluxeLib
|
||||
{
|
||||
string val;
|
||||
if (GetValue(cast, out val, Enum.GetName(typeof(T), value)))
|
||||
{
|
||||
CHelper.TryParse(val, out value, true);
|
||||
return true;
|
||||
}
|
||||
return CHelper.TryParse(val, out value, true);
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
+15
-14
@@ -290,24 +290,25 @@ namespace VocaluxeLib
|
||||
|
||||
public interface IPlaylist
|
||||
{
|
||||
string GetPlaylistName(int playlistID);
|
||||
List<string> GetPlaylistNames();
|
||||
bool Exists(int playlistID);
|
||||
string GetName(int playlistID);
|
||||
List<string> GetNames();
|
||||
|
||||
void SetPlaylistName(int playlistID, string name);
|
||||
void DeletePlaylist(int playlistID);
|
||||
void SavePlaylist(int playlistID);
|
||||
void SetName(int playlistID, string name);
|
||||
void Delete(int playlistID);
|
||||
void Save(int playlistID);
|
||||
int GetNumPlaylists();
|
||||
|
||||
void AddPlaylistSong(int playlistID, int songID);
|
||||
void AddPlaylistSong(int playlistID, int songID, EGameMode gameMode);
|
||||
void InsertPlaylistSong(int playlistID, int positionIndex, int songID, EGameMode gameMode);
|
||||
void AddSong(int playlistID, int songID);
|
||||
void AddSong(int playlistID, int songID, EGameMode gameMode);
|
||||
void InsertSong(int playlistID, int positionIndex, int songID, EGameMode gameMode);
|
||||
|
||||
void MovePlaylistSong(int playlistID, int sourceIndex, int destIndex);
|
||||
void MovePlaylistSongDown(int playlistID, int songIndex);
|
||||
void MovePlaylistSongUp(int playlistID, int songIndex);
|
||||
void DeletePlaylistSong(int playlistID, int songIndex);
|
||||
void MoveSong(int playlistID, int sourceIndex, int destIndex);
|
||||
void MoveSongDown(int playlistID, int songIndex);
|
||||
void MoveSongUp(int playlistID, int songIndex);
|
||||
void DeleteSong(int playlistID, int songIndex);
|
||||
|
||||
int GetPlaylistSongCount(int playlistID);
|
||||
CPlaylistSong GetPlaylistSong(int playlistID, int songIndex);
|
||||
int GetSongCount(int playlistID);
|
||||
CPlaylistSong GetSong(int playlistID, int songIndex);
|
||||
}
|
||||
}
|
||||
@@ -176,7 +176,7 @@ namespace VocaluxeLib.Menu
|
||||
{
|
||||
if (EditMode == EEditMode.ChangeOrder && _ChangeOrderSource != -1 && _PlaylistElements.Count > _ChangeOrderSource)
|
||||
{
|
||||
CBase.Playlist.DeletePlaylistSong(ActivePlaylistID, _PlaylistElements[_ChangeOrderSource].Content);
|
||||
CBase.Playlist.DeleteSong(ActivePlaylistID, _PlaylistElements[_ChangeOrderSource].Content);
|
||||
UpdatePlaylist();
|
||||
}
|
||||
_ChangeOrderSource = -1;
|
||||
@@ -503,13 +503,13 @@ namespace VocaluxeLib.Menu
|
||||
switch (keyEvent.Key)
|
||||
{
|
||||
case Keys.Enter:
|
||||
CBase.Playlist.SetPlaylistName(ActivePlaylistID, _Theme.ButtonPlaylistName.Text.Text);
|
||||
CBase.Playlist.SavePlaylist(ActivePlaylistID);
|
||||
CBase.Playlist.SetName(ActivePlaylistID, _Theme.ButtonPlaylistName.Text.Text);
|
||||
CBase.Playlist.Save(ActivePlaylistID);
|
||||
EditMode = EEditMode.None;
|
||||
_Theme.ButtonPlaylistName.EditMode = false;
|
||||
break;
|
||||
case Keys.Escape:
|
||||
_Theme.ButtonPlaylistName.Text.Text = CBase.Playlist.GetPlaylistName(ActivePlaylistID);
|
||||
_Theme.ButtonPlaylistName.Text.Text = CBase.Playlist.GetName(ActivePlaylistID);
|
||||
EditMode = EEditMode.None;
|
||||
_Theme.ButtonPlaylistName.EditMode = false;
|
||||
break;
|
||||
@@ -600,7 +600,7 @@ namespace VocaluxeLib.Menu
|
||||
break;
|
||||
|
||||
case Keys.Delete:
|
||||
CBase.Playlist.DeletePlaylistSong(ActivePlaylistID, _PlaylistElements[CurrentPlaylistElement].Content);
|
||||
CBase.Playlist.DeleteSong(ActivePlaylistID, _PlaylistElements[CurrentPlaylistElement].Content);
|
||||
UpdatePlaylist();
|
||||
|
||||
if (Offset > 0)
|
||||
@@ -626,7 +626,7 @@ namespace VocaluxeLib.Menu
|
||||
case Keys.Add: //move the selected song up
|
||||
if (_PlaylistElementContents.Count > 1 && (CurrentPlaylistElement > 0 || Offset > 0))
|
||||
{
|
||||
CBase.Playlist.MovePlaylistSongUp(ActivePlaylistID, CurrentPlaylistElement + Offset);
|
||||
CBase.Playlist.MoveSongUp(ActivePlaylistID, CurrentPlaylistElement + Offset);
|
||||
UpdatePlaylist();
|
||||
|
||||
var key = new SKeyEvent {Key = Keys.Up};
|
||||
@@ -655,7 +655,7 @@ namespace VocaluxeLib.Menu
|
||||
case Keys.Subtract: //move the selected song down
|
||||
if (_PlaylistElementContents.Count > 1 && CurrentPlaylistElement + Offset < _PlaylistElementContents.Count - 1)
|
||||
{
|
||||
CBase.Playlist.MovePlaylistSongDown(ActivePlaylistID, CurrentPlaylistElement + Offset);
|
||||
CBase.Playlist.MoveSongDown(ActivePlaylistID, CurrentPlaylistElement + Offset);
|
||||
UpdatePlaylist();
|
||||
|
||||
var key = new SKeyEvent {Key = Keys.Down};
|
||||
@@ -724,7 +724,7 @@ namespace VocaluxeLib.Menu
|
||||
|
||||
if (CurrentPlaylistElement != -1)
|
||||
{
|
||||
CBase.Playlist.GetPlaylistSong(ActivePlaylistID, CurrentPlaylistElement + Offset).GameMode =
|
||||
CBase.Playlist.GetSong(ActivePlaylistID, CurrentPlaylistElement + Offset).GameMode =
|
||||
_PlaylistElementContents[CurrentPlaylistElement + Offset].Modes[_PlaylistElements[CurrentPlaylistElement].SelectSlide.Selection];
|
||||
UpdatePlaylist();
|
||||
}
|
||||
@@ -736,7 +736,7 @@ namespace VocaluxeLib.Menu
|
||||
|
||||
if (CurrentPlaylistElement != -1)
|
||||
{
|
||||
CBase.Playlist.GetPlaylistSong(ActivePlaylistID, CurrentPlaylistElement + Offset).GameMode =
|
||||
CBase.Playlist.GetSong(ActivePlaylistID, CurrentPlaylistElement + Offset).GameMode =
|
||||
_PlaylistElementContents[CurrentPlaylistElement + Offset].Modes[_PlaylistElements[CurrentPlaylistElement].SelectSlide.Selection];
|
||||
UpdatePlaylist();
|
||||
}
|
||||
@@ -764,10 +764,10 @@ namespace VocaluxeLib.Menu
|
||||
else if (_Theme.ButtonPlaylistSing.Selected)
|
||||
_StartPlaylistSongs();
|
||||
else if (_Theme.ButtonPlaylistSave.Selected)
|
||||
CBase.Playlist.SavePlaylist(ActivePlaylistID);
|
||||
CBase.Playlist.Save(ActivePlaylistID);
|
||||
else if (_Theme.ButtonPlaylistDelete.Selected)
|
||||
{
|
||||
CBase.Playlist.DeletePlaylist(ActivePlaylistID);
|
||||
CBase.Playlist.Delete(ActivePlaylistID);
|
||||
ClosePlaylist();
|
||||
}
|
||||
else if (_Theme.ButtonPlaylistName.Selected)
|
||||
@@ -888,7 +888,7 @@ namespace VocaluxeLib.Menu
|
||||
//Delete Entry with RB
|
||||
if (CHelper.IsInBounds(_PlaylistElements[i].Background.Rect, mouseEvent) && mouseEvent.RB && _PlaylistElements[i].Content != -1)
|
||||
{
|
||||
CBase.Playlist.DeletePlaylistSong(ActivePlaylistID, _PlaylistElements[i].Content);
|
||||
CBase.Playlist.DeleteSong(ActivePlaylistID, _PlaylistElements[i].Content);
|
||||
UpdatePlaylist();
|
||||
return true;
|
||||
}
|
||||
@@ -906,7 +906,7 @@ namespace VocaluxeLib.Menu
|
||||
{
|
||||
if (CurrentPlaylistElement != -1)
|
||||
{
|
||||
CBase.Playlist.GetPlaylistSong(ActivePlaylistID, CurrentPlaylistElement + Offset).GameMode =
|
||||
CBase.Playlist.GetSong(ActivePlaylistID, CurrentPlaylistElement + Offset).GameMode =
|
||||
_PlaylistElementContents[CurrentPlaylistElement + Offset].Modes[_PlaylistElements[CurrentPlaylistElement].SelectSlide.Selection];
|
||||
UpdatePlaylist();
|
||||
}
|
||||
@@ -922,12 +922,12 @@ namespace VocaluxeLib.Menu
|
||||
}
|
||||
if (_Theme.ButtonPlaylistSave.Selected)
|
||||
{
|
||||
CBase.Playlist.SavePlaylist(ActivePlaylistID);
|
||||
CBase.Playlist.Save(ActivePlaylistID);
|
||||
return true;
|
||||
}
|
||||
if (_Theme.ButtonPlaylistDelete.Selected)
|
||||
{
|
||||
CBase.Playlist.DeletePlaylist(ActivePlaylistID);
|
||||
CBase.Playlist.Delete(ActivePlaylistID);
|
||||
ClosePlaylist();
|
||||
return true;
|
||||
}
|
||||
@@ -981,14 +981,14 @@ namespace VocaluxeLib.Menu
|
||||
|
||||
if (CurrentPlaylistElement != -1)
|
||||
{
|
||||
CBase.Playlist.InsertPlaylistSong(ActivePlaylistID, CurrentPlaylistElement + Offset, DragAndDropSongID, gm);
|
||||
CBase.Playlist.InsertSong(ActivePlaylistID, CurrentPlaylistElement + Offset, DragAndDropSongID, gm);
|
||||
UpdatePlaylist();
|
||||
}
|
||||
else
|
||||
{
|
||||
if (mouseEvent.Y < _PlaylistElements[0].Background.Rect.Y && Offset == 0)
|
||||
{
|
||||
CBase.Playlist.InsertPlaylistSong(ActivePlaylistID, 0, DragAndDropSongID, gm);
|
||||
CBase.Playlist.InsertSong(ActivePlaylistID, 0, DragAndDropSongID, gm);
|
||||
UpdatePlaylist();
|
||||
}
|
||||
else
|
||||
@@ -1007,7 +1007,7 @@ namespace VocaluxeLib.Menu
|
||||
|
||||
if (mouseEvent.Y > min)
|
||||
{
|
||||
CBase.Playlist.AddPlaylistSong(ActivePlaylistID, DragAndDropSongID, gm);
|
||||
CBase.Playlist.AddSong(ActivePlaylistID, DragAndDropSongID, gm);
|
||||
UpdatePlaylist();
|
||||
ScrollToBottom();
|
||||
}
|
||||
@@ -1028,8 +1028,8 @@ namespace VocaluxeLib.Menu
|
||||
{
|
||||
if (_Theme.ButtonPlaylistName.Selected)
|
||||
{
|
||||
CBase.Playlist.SetPlaylistName(ActivePlaylistID, _Theme.ButtonPlaylistName.Text.Text);
|
||||
CBase.Playlist.SavePlaylist(ActivePlaylistID);
|
||||
CBase.Playlist.SetName(ActivePlaylistID, _Theme.ButtonPlaylistName.Text.Text);
|
||||
CBase.Playlist.Save(ActivePlaylistID);
|
||||
EditMode = EEditMode.None;
|
||||
return true;
|
||||
}
|
||||
@@ -1038,7 +1038,7 @@ namespace VocaluxeLib.Menu
|
||||
{
|
||||
if (_Theme.ButtonPlaylistName.Selected)
|
||||
{
|
||||
_Theme.ButtonPlaylistName.Text.Text = CBase.Playlist.GetPlaylistName(ActivePlaylistID);
|
||||
_Theme.ButtonPlaylistName.Text.Text = CBase.Playlist.GetName(ActivePlaylistID);
|
||||
EditMode = EEditMode.None;
|
||||
_Theme.ButtonPlaylistName.EditMode = false;
|
||||
return true;
|
||||
@@ -1058,13 +1058,13 @@ namespace VocaluxeLib.Menu
|
||||
{
|
||||
if (CurrentPlaylistElement != -1 && CurrentPlaylistElement + Offset != _ChangeOrderSource)
|
||||
{
|
||||
CBase.Playlist.MovePlaylistSong(ActivePlaylistID, _ChangeOrderSource, CurrentPlaylistElement + Offset);
|
||||
CBase.Playlist.MoveSong(ActivePlaylistID, _ChangeOrderSource, CurrentPlaylistElement + Offset);
|
||||
UpdatePlaylist();
|
||||
}
|
||||
else if (CurrentPlaylistElement == -1)
|
||||
{
|
||||
if (mouseEvent.Y < _PlaylistElements[0].Background.Rect.Y && Offset == 0)
|
||||
CBase.Playlist.MovePlaylistSong(ActivePlaylistID, _ChangeOrderSource, 0);
|
||||
CBase.Playlist.MoveSong(ActivePlaylistID, _ChangeOrderSource, 0);
|
||||
else
|
||||
{
|
||||
if (_PlaylistElements.Count + Offset >= _PlaylistElementContents.Count)
|
||||
@@ -1080,7 +1080,7 @@ namespace VocaluxeLib.Menu
|
||||
}
|
||||
|
||||
if (mouseEvent.Y > min)
|
||||
CBase.Playlist.MovePlaylistSong(ActivePlaylistID, _ChangeOrderSource, _PlaylistElementContents.Count - 1);
|
||||
CBase.Playlist.MoveSong(ActivePlaylistID, _ChangeOrderSource, _PlaylistElementContents.Count - 1);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1134,35 +1134,33 @@ namespace VocaluxeLib.Menu
|
||||
|
||||
public bool LoadPlaylist(int playlistID)
|
||||
{
|
||||
if (playlistID > -1 && playlistID < CBase.Playlist.GetNumPlaylists())
|
||||
if (!CBase.Playlist.Exists(playlistID))
|
||||
return false;
|
||||
ActivePlaylistID = playlistID;
|
||||
_Theme.ButtonPlaylistName.Text.Text = CBase.Playlist.GetName(ActivePlaylistID);
|
||||
_PlaylistElementContents.Clear();
|
||||
for (int i = 0; i < CBase.Playlist.GetSongCount(ActivePlaylistID); i++)
|
||||
{
|
||||
ActivePlaylistID = playlistID;
|
||||
_Theme.ButtonPlaylistName.Text.Text = CBase.Playlist.GetPlaylistName(ActivePlaylistID);
|
||||
_PlaylistElementContents.Clear();
|
||||
for (int i = 0; i < CBase.Playlist.GetPlaylistSongCount(ActivePlaylistID); i++)
|
||||
{
|
||||
var pec = new CPlaylistElementContent
|
||||
{
|
||||
SongID = CBase.Playlist.GetPlaylistSong(ActivePlaylistID, i).SongID,
|
||||
Modes = CBase.Songs.GetSongByID(CBase.Playlist.GetPlaylistSong(ActivePlaylistID, i).SongID).AvailableGameModes,
|
||||
Mode = CBase.Playlist.GetPlaylistSong(ActivePlaylistID, i).GameMode
|
||||
};
|
||||
_PlaylistElementContents.Add(pec);
|
||||
}
|
||||
Update();
|
||||
return true;
|
||||
var pec = new CPlaylistElementContent
|
||||
{
|
||||
SongID = CBase.Playlist.GetSong(ActivePlaylistID, i).SongID,
|
||||
Modes = CBase.Songs.GetSongByID(CBase.Playlist.GetSong(ActivePlaylistID, i).SongID).AvailableGameModes,
|
||||
Mode = CBase.Playlist.GetSong(ActivePlaylistID, i).GameMode
|
||||
};
|
||||
_PlaylistElementContents.Add(pec);
|
||||
}
|
||||
return false;
|
||||
Update();
|
||||
return true;
|
||||
}
|
||||
|
||||
public void UpdatePlaylist()
|
||||
{
|
||||
_PlaylistElementContents.Clear();
|
||||
for (int i = 0; i < CBase.Playlist.GetPlaylistSongCount(ActivePlaylistID); i++)
|
||||
for (int i = 0; i < CBase.Playlist.GetSongCount(ActivePlaylistID); i++)
|
||||
{
|
||||
var pec = new CPlaylistElementContent {SongID = CBase.Playlist.GetPlaylistSong(ActivePlaylistID, i).SongID};
|
||||
var pec = new CPlaylistElementContent {SongID = CBase.Playlist.GetSong(ActivePlaylistID, i).SongID};
|
||||
pec.Modes = CBase.Songs.GetSongByID(pec.SongID).AvailableGameModes;
|
||||
pec.Mode = CBase.Playlist.GetPlaylistSong(ActivePlaylistID, i).GameMode;
|
||||
pec.Mode = CBase.Playlist.GetSong(ActivePlaylistID, i).GameMode;
|
||||
_PlaylistElementContents.Add(pec);
|
||||
}
|
||||
|
||||
@@ -1181,10 +1179,10 @@ namespace VocaluxeLib.Menu
|
||||
CBase.Game.Reset();
|
||||
CBase.Game.ClearSongs();
|
||||
|
||||
if (ActivePlaylistID > -1 && ActivePlaylistID < CBase.Playlist.GetNumPlaylists())
|
||||
if (CBase.Playlist.Exists(ActivePlaylistID))
|
||||
{
|
||||
for (int i = 0; i < CBase.Playlist.GetPlaylistSongCount(ActivePlaylistID); i++)
|
||||
CBase.Game.AddSong(CBase.Playlist.GetPlaylistSong(ActivePlaylistID, i).SongID, CBase.Playlist.GetPlaylistSong(ActivePlaylistID, i).GameMode);
|
||||
for (int i = 0; i < CBase.Playlist.GetSongCount(ActivePlaylistID); i++)
|
||||
CBase.Game.AddSong(CBase.Playlist.GetSong(ActivePlaylistID, i).SongID, CBase.Playlist.GetSong(ActivePlaylistID, i).GameMode);
|
||||
if (CBase.Game.GetNumSongs() > 0)
|
||||
CBase.Graphics.FadeTo(EScreens.ScreenNames); //TODO: What is if someone uses that in PartyMode?
|
||||
}
|
||||
@@ -1195,7 +1193,7 @@ namespace VocaluxeLib.Menu
|
||||
CBase.Game.Reset();
|
||||
CBase.Game.ClearSongs();
|
||||
|
||||
CBase.Game.AddSong(CBase.Playlist.GetPlaylistSong(ActivePlaylistID, selected).SongID, CBase.Playlist.GetPlaylistSong(ActivePlaylistID, selected).GameMode);
|
||||
CBase.Game.AddSong(CBase.Playlist.GetSong(ActivePlaylistID, selected).SongID, CBase.Playlist.GetSong(ActivePlaylistID, selected).GameMode);
|
||||
|
||||
if (CBase.Game.GetNumSongs() > 0)
|
||||
CBase.Graphics.FadeTo(EScreens.ScreenNames);
|
||||
@@ -1203,7 +1201,7 @@ namespace VocaluxeLib.Menu
|
||||
|
||||
public void Update()
|
||||
{
|
||||
if (ActivePlaylistID > -1 && ActivePlaylistID < CBase.Playlist.GetNumPlaylists())
|
||||
if (CBase.Playlist.Exists(ActivePlaylistID))
|
||||
{
|
||||
for (int i = 0; i < _PlaylistElements.Count; i++)
|
||||
{
|
||||
|
||||
Reference in new issue
Block a user