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..ebe1f39b 100644 --- a/Output/Themes/Ambient/Screens/ScreenSong.xml +++ b/Output/Themes/Ambient/Screens/ScreenSong.xml @@ -669,6 +669,300 @@ + + + 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 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..52ccf803 100644 --- a/Vocaluxe/Screens/CScreenSong.cs +++ b/Vocaluxe/Screens/CScreenSong.cs @@ -55,6 +55,7 @@ namespace Vocaluxe.Screens private string _SearchText = String.Empty; private bool _SearchActive = false; + private List ButtonsJoker = new List(); private bool _SongOptionsActive = false; private bool _PlaylistActive = false; private List _AvailableGameModes; @@ -74,11 +75,27 @@ namespace Vocaluxe.Screens { base.Init(); + for (int i = 0; i < _Base.Settings.GetMaxNumPlayer(); i++) + { + ButtonsJoker.Add("ButtonJoker" + (i + 1)); + } + List list = new List(); + list.AddRange(ButtonsJoker); + list.Add(ButtonOptionsClose); + list.Add(ButtonOptionsPlaylist); + list.Add(ButtonOptionsSing); + list.Add(ButtonOptionsRandom); + list.Add(ButtonOptionsRandomCategory); + list.Add(ButtonOptionsSingAll); + list.Add(ButtonOptionsSingAllVisible); + list.Add(ButtonOptionsOpenPlaylist); + list.Add(ButtonOpenOptions); + _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 }; + _ThemeButtons = list.ToArray(); _ThemeSelectSlides = new string[] { SelectSlideOptionsMode, SelectSlideOptionsPlaylistAdd, SelectSlideOptionsPlaylistOpen }; _ThemeSongMenus = new string[] { SongMenu }; _ThemePlaylists = new string[] { Playlist }; @@ -162,6 +179,20 @@ 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 (CSongs.NumVisibleSongs > 0) { if (SongMenus[htSongMenus(SongMenu)].GetSelectedSong() != -1 && !_SongOptionsActive) @@ -498,6 +529,21 @@ namespace Vocaluxe.Screens OpenPlaylistAction(); return true; } + + 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 (CSongs.NumVisibleSongs > 0 && SongMenus[htSongMenus(SongMenu)].GetActualSelection() != -1) @@ -612,6 +658,31 @@ namespace Vocaluxe.Screens Statics[htStatics(StaticSearchBar)].Visible = false; } + if (_sso.Selection.RandomOnly && _sso.Selection.NumJokers != null) + { + SongMenus[htSongMenus(SongMenu)].SetSmallView(true); + for (int i = 0; i < ButtonsJoker.Count; i++) + { + if (i < _sso.Selection.NumJokers.Length) + { + Buttons[htButtons(ButtonsJoker[i])].Visible = true; + Buttons[htButtons(ButtonsJoker[i])].Text.Text = _sso.Selection.NumJokers[i].ToString(); + } + else + { + Buttons[htButtons(ButtonsJoker[i])].Visible = false; + } + } + } + else + { if(SongMenus[htSongMenus(SongMenu)].IsSmallView()) + SongMenus[htSongMenus(SongMenu)].SetSmallView(false); + for (int i = 0; i < ButtonsJoker.Count; i++) + { + Buttons[htButtons(ButtonsJoker[i])].Visible = false; + } + } + return true; }