diff --git a/Output/Themes/Ambient/Random.png b/Output/Themes/Ambient/Random.png new file mode 100644 index 00000000..f19c9dc3 Binary files /dev/null and b/Output/Themes/Ambient/Random.png differ diff --git a/Output/Themes/Ambient/Screens/ScreenSong.xml b/Output/Themes/Ambient/Screens/ScreenSong.xml index 7cc7cfd0..6e94ebeb 100644 --- a/Output/Themes/Ambient/Screens/ScreenSong.xml +++ b/Output/Themes/Ambient/Screens/ScreenSong.xml @@ -228,6 +228,186 @@ + + + 1070 + 65 + + -2,11 + + 50 + + 350 + + + Player1 + + + Player1 + + Left + + Center + + + + Outline + + + + + + + + + 1070 + 135 + + -2,11 + + 50 + + 350 + + + Player2 + + + Player2 + + Left + + Center + + + + Outline + + + + + + + + + 1070 + 205 + + -2,11 + + 50 + + 350 + + + Player3 + + + Player3 + + Left + + Center + + + + Outline + + + + + + + + + 1070 + 275 + + -2,11 + + 50 + + 350 + + + Player4 + + + Player4 + + Left + + Center + + + + Outline + + + + + + + + + 1070 + 345 + + -2,11 + + 50 + + 350 + + + Player5 + + + Player5 + + Left + + Center + + + + Outline + + + + + + + + + 1070 + 415 + + -2,11 + + 50 + + 350 + + + Player6 + + + Player6 + + Left + + Center + + + + Outline + + + + + + Button @@ -669,6 +849,357 @@ + + + Random + + Random + + 980 + 50 + -1,01 + 80 + 80 + + + Player1Dim + + + Player1 + + + 40 + 20 + + 40 + + 60 + + + ButtonTextColor + + + ButtonTextSColor + + Center + + Center + + + + Outline + + + + + + + + + + + + + Random + + Random + + 980 + 120 + -1,01 + 80 + 80 + + + Player2Dim + + + Player2 + + + 40 + 20 + + 40 + + 60 + + + ButtonTextColor + + + ButtonTextSColor + + Center + + Center + + + + Outline + + + + + + + + + + + + + Random + + Random + + 980 + 190 + -1,01 + 80 + 80 + + + Player3Dim + + + Player3 + + + 40 + 20 + + 40 + + 60 + + + ButtonTextColor + + + ButtonTextSColor + + Center + + Center + + + + Outline + + + + + + + + + + + + + Random + + Random + + 980 + 260 + -1,01 + 80 + 80 + + + Player4Dim + + + Player4 + + + 40 + 20 + + 40 + + 60 + + + ButtonTextColor + + + ButtonTextSColor + + Center + + Center + + + + Outline + + + + + + + + + + + + + Random + + Random + + 980 + 330 + -1,01 + 80 + 80 + + + Player5Dim + + + Player5 + + + 40 + 20 + + 40 + + 60 + + + ButtonTextColor + + + ButtonTextSColor + + Center + + Center + + + + Outline + + + + + + + + + + + + + Random + + Random + + 980 + 400 + -1,01 + 80 + 80 + + + Player6Dim + + + Player6 + + + 40 + 20 + + 40 + + 60 + + + ButtonTextColor + + + ButtonTextSColor + + Center + + Center + + + + Outline + + + + + + + + + + + + + Button + + Button + + 985 + 500 + 0,00 + 150 + 50 + + + ButtonColor + + + ButtonSColor + + + 75 + 10 + + 32 + + 142 + + + ButtonTextColor + + + ButtonTextSColor + + Center + + Center + + + + Outline + + TR_BUTTON_START + + + + + + 10 + 26 + + + + + + 10 + 26 + + Button diff --git a/Output/Themes/Ambient/Skin Blue.xml b/Output/Themes/Ambient/Skin Blue.xml index f4549af2..eb483724 100644 --- a/Output/Themes/Ambient/Skin Blue.xml +++ b/Output/Themes/Ambient/Skin Blue.xml @@ -335,6 +335,7 @@ Sing.png Minus.png Plus.png + Random.png [Blue]BG_Video.mp4 diff --git a/Output/Themes/Ambient/Skin Green.xml b/Output/Themes/Ambient/Skin Green.xml index 994705cd..a1865f81 100644 --- a/Output/Themes/Ambient/Skin Green.xml +++ b/Output/Themes/Ambient/Skin Green.xml @@ -329,6 +329,7 @@ Sing.png Minus.png Plus.png + Random.png [Green]BG_Video.mp4 diff --git a/Output/Themes/Ambient/Skin Red.xml b/Output/Themes/Ambient/Skin Red.xml index b669bfd0..cdbaebd4 100644 --- a/Output/Themes/Ambient/Skin Red.xml +++ b/Output/Themes/Ambient/Skin Red.xml @@ -329,6 +329,7 @@ Sing.png Minus.png Plus.png + Random.png [Red]BG_Video.mp4 diff --git a/Output/Themes/Ambient/Skin Yellow.xml b/Output/Themes/Ambient/Skin Yellow.xml index 6e3d562e..22bb6061 100644 --- a/Output/Themes/Ambient/Skin Yellow.xml +++ b/Output/Themes/Ambient/Skin Yellow.xml @@ -329,6 +329,7 @@ Sing.png Minus.png Plus.png + Random.png [Yellow]BG_Video.mp4 diff --git a/Vocaluxe/Screens/CScreenSong.cs b/Vocaluxe/Screens/CScreenSong.cs index 1c6432c1..36e4d9fa 100644 --- a/Vocaluxe/Screens/CScreenSong.cs +++ b/Vocaluxe/Screens/CScreenSong.cs @@ -42,6 +42,7 @@ namespace Vocaluxe.Screens private const string ButtonOptionsSingAll = "ButtonOptionsSingAll"; private const string ButtonOptionsSingAllVisible = "ButtonOptionsSingAllVisible"; private const string ButtonOptionsOpenPlaylist = "ButtonOptionsOpenPlaylist"; + private const string ButtonStart = "ButtonStart"; private const string SelectSlideOptionsMode = "SelectSlideOptionsMode"; private const string SelectSlideOptionsPlaylistAdd = "SelectSlideOptionsPlaylistAdd"; @@ -55,6 +56,8 @@ namespace Vocaluxe.Screens private string _SearchText = String.Empty; private bool _SearchActive = false; + private List ButtonsJoker = new List(); + private List TextsPlayer = new List(); private bool _SongOptionsActive = false; private bool _PlaylistActive = false; private List _AvailableGameModes; @@ -74,11 +77,40 @@ namespace Vocaluxe.Screens { base.Init(); + for (int i = 0; i < _Base.Settings.GetMaxNumPlayer(); i++) + { + ButtonsJoker.Add("ButtonJoker" + (i + 1)); + } + List blist = new List(); + blist.AddRange(ButtonsJoker); + blist.Add(ButtonOptionsClose); + blist.Add(ButtonOptionsPlaylist); + blist.Add(ButtonOptionsSing); + blist.Add(ButtonOptionsRandom); + blist.Add(ButtonOptionsRandomCategory); + blist.Add(ButtonOptionsSingAll); + blist.Add(ButtonOptionsSingAllVisible); + blist.Add(ButtonOptionsOpenPlaylist); + blist.Add(ButtonOpenOptions); + blist.Add(ButtonStart); + + for (int i = 0; i < _Base.Settings.GetMaxNumPlayer(); i++) + { + TextsPlayer.Add("TextPlayer" + (i + 1)); + } + List tlist = new List(); + tlist.AddRange(TextsPlayer); + tlist.Add(TextCategory); + tlist.Add(TextSelection); + tlist.Add(TextSearchBarTitle); + tlist.Add(TextSearchBar); + tlist.Add(TextOptionsTitle); + _ThemeName = "ScreenSong"; _ScreenVersion = ScreenVersion; _ThemeStatics = new string[] { StaticSearchBar, StaticOptionsBG }; - _ThemeTexts = new string[] { TextCategory, TextSelection, TextSearchBarTitle, TextSearchBar, TextOptionsTitle }; - _ThemeButtons = new string[] { ButtonOptionsClose, ButtonOptionsPlaylist, ButtonOptionsSing, ButtonOptionsRandom, ButtonOptionsRandomCategory, ButtonOptionsSingAll, ButtonOptionsSingAllVisible, ButtonOptionsOpenPlaylist, ButtonOpenOptions }; + _ThemeTexts = tlist.ToArray(); + _ThemeButtons = blist.ToArray(); _ThemeSelectSlides = new string[] { SelectSlideOptionsMode, SelectSlideOptionsPlaylistAdd, SelectSlideOptionsPlaylistOpen }; _ThemeSongMenus = new string[] { SongMenu }; _ThemePlaylists = new string[] { Playlist }; @@ -162,6 +194,24 @@ namespace Vocaluxe.Screens break; case Keys.Enter: + if (_sso.Selection.RandomOnly && _sso.Selection.NumJokers != null) + { + for (int i = 0; i < ButtonsJoker.Count; i++) + { + if (i < _sso.Selection.NumJokers.Length) + { + if (Buttons[htButtons(ButtonsJoker[i])].Selected) + { + SelectNextRandom(i); + return true; + } + } + } + if (Buttons[htButtons(ButtonStart)].Selected) + { + HandlePartySongSelection(SongMenus[htSongMenus(SongMenu)].GetSelectedSong()); + } + } if (CSongs.NumVisibleSongs > 0) { if (SongMenus[htSongMenus(SongMenu)].GetSelectedSong() != -1 && !_SongOptionsActive) @@ -169,6 +219,7 @@ namespace Vocaluxe.Screens if (!_sso.Selection.PartyMode) ToggleSongOptions(ESongOptionsView.Song); else + //Is this still needed? HandlePartySongSelection(SongMenus[htSongMenus(SongMenu)].GetSelectedSong()); } } @@ -498,6 +549,27 @@ namespace Vocaluxe.Screens OpenPlaylistAction(); return true; } + + if (_sso.Selection.RandomOnly && _sso.Selection.NumJokers != null) + { + if (Buttons[htButtons(ButtonOptionsOpenPlaylist)].Selected) + { + HandlePartySongSelection(SongMenus[htSongMenus(SongMenu)].GetSelectedSong()); + return true; + } + + for (int i = 0; i < ButtonsJoker.Count; i++) + { + if (i < _sso.Selection.NumJokers.Length) + { + if (Buttons[htButtons(ButtonsJoker[i])].Selected) + { + SelectNextRandom(i); + return true; + } + } + } + } } if (CSongs.NumVisibleSongs > 0 && SongMenus[htSongMenus(SongMenu)].GetActualSelection() != -1) @@ -507,6 +579,7 @@ namespace Vocaluxe.Screens if (!_sso.Selection.PartyMode) ToggleSongOptions(ESongOptionsView.Song); else + //Is this still needed? HandlePartySongSelection(SongMenus[htSongMenus(SongMenu)].GetSelectedSong()); return true; } @@ -612,6 +685,39 @@ namespace Vocaluxe.Screens Statics[htStatics(StaticSearchBar)].Visible = false; } + if (_sso.Selection.RandomOnly && _sso.Selection.NumJokers != null) + { + Buttons[htButtons(ButtonStart)].Visible = true; + SongMenus[htSongMenus(SongMenu)].SetSmallView(true); + for (int i = 0; i < _Base.Settings.GetMaxNumPlayer(); i++) + { + if (i < _sso.Selection.NumJokers.Length) + { + Buttons[htButtons(ButtonsJoker[i])].Visible = true; + Buttons[htButtons(ButtonsJoker[i])].Text.Text = _sso.Selection.NumJokers[i].ToString(); + Texts[htTexts(TextsPlayer[i])].Visible = true; + //TODO: Set text to player-name. + Texts[htTexts(TextsPlayer[i])].Text = i.ToString(); + } + else + { + Buttons[htButtons(ButtonsJoker[i])].Visible = false; + Texts[htTexts(TextsPlayer[i])].Visible = false; + } + } + } + else + { + Buttons[htButtons(ButtonStart)].Visible = true; + if(SongMenus[htSongMenus(SongMenu)].IsSmallView()) + SongMenus[htSongMenus(SongMenu)].SetSmallView(false); + for (int i = 0; i < _Base.Settings.GetMaxNumPlayer(); i++) + { + Buttons[htButtons(ButtonsJoker[i])].Visible = false; + Texts[htTexts(TextsPlayer[i])].Visible = false; + } + } + return true; }