From c31fdb78391fc02776782f0ee31442f6a12cc839 Mon Sep 17 00:00:00 2001 From: Jiiniasu Date: Mon, 6 Nov 2017 19:33:03 +0100 Subject: [PATCH] Make option to autoplay previews on song selection --- Output/Languages/English.xml | 1 + .../Changelog/Changelog_ScreenOptionsGame.txt | 5 ++ .../Genius/Screens/ScreenOptionsGame.xml | 66 +++++++++++++++++-- Vocaluxe/Base/CConfig.cs | 3 + Vocaluxe/Base/CMain.cs | 5 ++ Vocaluxe/Screens/CScreenOptionsGame.cs | 5 +- VocaluxeLib/IBasic.cs | 1 + VocaluxeLib/Menu/SongMenu/CSongMenuList.cs | 16 +++++ .../Menu/SongMenu/CSongMenuTileBoard.cs | 16 +++++ 9 files changed, 112 insertions(+), 6 deletions(-) diff --git a/Output/Languages/English.xml b/Output/Languages/English.xml index 3455a91f..3c758738 100644 --- a/Output/Languages/English.xml +++ b/Output/Languages/English.xml @@ -188,6 +188,7 @@ Song-menu style Song sorting Tabs + Autoplay song previews Game difficulty Timer mode Highscore style diff --git a/Output/Themes/Changelog/Changelog_ScreenOptionsGame.txt b/Output/Themes/Changelog/Changelog_ScreenOptionsGame.txt index fcc4de50..2aed5985 100644 --- a/Output/Themes/Changelog/Changelog_ScreenOptionsGame.txt +++ b/Output/Themes/Changelog/Changelog_ScreenOptionsGame.txt @@ -1,5 +1,10 @@ ScreenOptionsGame +++++++++++ +Version 4: + +Add: + ++++++++++ Version 3: diff --git a/Output/Themes/Genius/Screens/ScreenOptionsGame.xml b/Output/Themes/Genius/Screens/ScreenOptionsGame.xml index 2619d909..af212eaf 100644 --- a/Output/Themes/Genius/Screens/ScreenOptionsGame.xml +++ b/Output/Themes/Genius/Screens/ScreenOptionsGame.xml @@ -2,7 +2,7 @@ ScreenOptionsGame - 3 + 4 @@ -111,7 +111,7 @@ Outline TR_SCREENOGAME_TABS - + 75 407 0 @@ -123,11 +123,25 @@ Center Outline + TR_SCREENOGAME_AUTOPLAYPREVIEWS + + + 75 + 467 + 0 + 27 + 0 + + + Left + Center + + Outline TR_SCREENOGAME_TIMERMODE 75 - 467 + 527 0 27 0 @@ -425,7 +439,7 @@ Bold 2 - + SelectSlideArrowLeft SelectSlideArrowRight @@ -467,7 +481,7 @@ Bold 3 - + SelectSlideArrowLeft SelectSlideArrowRight @@ -509,6 +523,48 @@ Bold 2 + + + SelectSlideArrowLeft + SelectSlideArrowRight + SelectSlide + SelectSlideArrowLeft + SelectSlideArrowRight + + 500 + 520 + 715 + 50 + 0 + + + 505 + 525 + 40 + 40 + 0 + + + 1170 + 525 + 40 + 40 + 0 + + + + + + + + 27 + 50 + 0 + 200 + Outline + Bold + 2 + diff --git a/Vocaluxe/Base/CConfig.cs b/Vocaluxe/Base/CConfig.cs index 8172d7c6..d90c6395 100644 --- a/Vocaluxe/Base/CConfig.cs +++ b/Vocaluxe/Base/CConfig.cs @@ -171,6 +171,7 @@ namespace Vocaluxe.Base [DefaultValue(ETimerMode.TR_CONFIG_TIMERMODE_REMAINING)] public ETimerMode TimerMode; [XmlAltName("NumPlayer"), DefaultValue(2)] public int NumPlayers; [DefaultValue(EOffOn.TR_CONFIG_OFF)] public EOffOn Tabs; + [DefaultValue(EOffOn.TR_CONFIG_OFF)] public EOffOn AutoplayPreviews; [DefaultValue(ELyricsPosition.TR_CONFIG_LYRICSPOSITION_BOTTOM)] public ELyricsPosition LyricsPosition; [DefaultValue(0.1f)] public float MinLineBreakTime; //Minimum time to show the text before it is (to be) sung (if possible) [XmlArrayItem("Player"), XmlArray] public string[] Players; @@ -521,6 +522,8 @@ namespace Vocaluxe.Base return "NumPlayers: 1.." + CSettings.MaxNumPlayer; case "Tabs": return "Order songs in tabs: " + CHelper.ListStrings(Enum.GetNames(typeof(EOffOn))); + case "AutoplayPreviews": + return "Automatically play song preview when selected: " + CHelper.ListStrings(Enum.GetNames(typeof(EOffOn))); case "LyricsPosition": return "Position if lyrics on screen: " + CHelper.ListStrings(Enum.GetNames(typeof(ELyricsPosition))); case "MinLineBreakTime": diff --git a/Vocaluxe/Base/CMain.cs b/Vocaluxe/Base/CMain.cs index f1053ce3..9d33cb37 100644 --- a/Vocaluxe/Base/CMain.cs +++ b/Vocaluxe/Base/CMain.cs @@ -141,6 +141,11 @@ namespace Vocaluxe.Base return CConfig.Config.Game.Tabs; } + public EOffOn GetAutoplayPreviews() + { + return CConfig.Config.Game.AutoplayPreviews; + } + public EOffOn GetIgnoreArticles() { return CConfig.Config.Game.IgnoreArticles; diff --git a/Vocaluxe/Screens/CScreenOptionsGame.cs b/Vocaluxe/Screens/CScreenOptionsGame.cs index 72a7d4e6..669be7ae 100644 --- a/Vocaluxe/Screens/CScreenOptionsGame.cs +++ b/Vocaluxe/Screens/CScreenOptionsGame.cs @@ -27,7 +27,7 @@ namespace Vocaluxe.Screens // Version number for theme files. Increment it, if you've changed something on the theme files! protected override int _ScreenVersion { - get { return 3; } + get { return 4; } } private const string _SelectSlideLanguage = "SelectSlideLanguage"; @@ -35,6 +35,7 @@ namespace Vocaluxe.Screens private const string _SelectSlideSongMenu = "SelectSlideSongMenu"; private const string _SelectSlideSongSorting = "SelectSlideSongSorting"; private const string _SelectSlideTabs = "SelectSlideTabs"; + private const string _SelectSlideAutoplayPreviews = "SelectSlideAutoplayPreviews"; private const string _SelectSlideTimerMode = "SelectSlideTimerMode"; private const string _SelectSlideHighscoreStyle = "SelectSlideHighscoreStyle"; @@ -60,6 +61,7 @@ namespace Vocaluxe.Screens _SelectSlides[_SelectSlideSongMenu].SetValues((int)CConfig.SongMenu); _SelectSlides[_SelectSlideSongSorting].SetValues((int)CConfig.Config.Game.SongSorting); _SelectSlides[_SelectSlideTabs].SetValues((int)CConfig.Config.Game.Tabs); + _SelectSlides[_SelectSlideAutoplayPreviews].SetValues((int)CConfig.Config.Game.AutoplayPreviews); _SelectSlides[_SelectSlideTimerMode].SetValues((int)CConfig.Config.Game.TimerMode); _SelectSlides[_SelectSlideHighscoreStyle].SetValues((int)CConfig.Config.Game.HighscoreStyle); } @@ -142,6 +144,7 @@ namespace Vocaluxe.Screens CConfig.SongMenu = (ESongMenu)_SelectSlides[_SelectSlideSongMenu].Selection; CConfig.Config.Game.SongSorting = (ESongSorting)_SelectSlides[_SelectSlideSongSorting].Selection; CConfig.Config.Game.Tabs = (EOffOn)_SelectSlides[_SelectSlideTabs].Selection; + CConfig.Config.Game.AutoplayPreviews = (EOffOn)_SelectSlides[_SelectSlideAutoplayPreviews].Selection; CConfig.Config.Game.TimerMode = (ETimerMode)_SelectSlides[_SelectSlideTimerMode].Selection; CConfig.Config.Game.HighscoreStyle = (EHighscoreStyle)_SelectSlides[_SelectSlideHighscoreStyle].Selection; diff --git a/VocaluxeLib/IBasic.cs b/VocaluxeLib/IBasic.cs index 26cb64bf..6d2706dd 100644 --- a/VocaluxeLib/IBasic.cs +++ b/VocaluxeLib/IBasic.cs @@ -56,6 +56,7 @@ namespace VocaluxeLib IEnumerable GetSongFolders(); ESongSorting GetSongSorting(); EOffOn GetTabs(); + EOffOn GetAutoplayPreviews(); EOffOn GetIgnoreArticles(); bool IsMicConfigured(int playerNr); diff --git a/VocaluxeLib/Menu/SongMenu/CSongMenuList.cs b/VocaluxeLib/Menu/SongMenu/CSongMenuList.cs index 771854e1..207ec31a 100644 --- a/VocaluxeLib/Menu/SongMenu/CSongMenuList.cs +++ b/VocaluxeLib/Menu/SongMenu/CSongMenuList.cs @@ -364,6 +364,10 @@ namespace VocaluxeLib.Menu.SongMenu if (_SelectionNr > 0 && moveAllowed) { _SelectionNr--; + if (CBase.Config.GetAutoplayPreviews() == EOffOn.TR_CONFIG_ON) + { + _PreviewNr = _SelectionNr; + } keyEvent.Handled = true; } break; @@ -372,6 +376,10 @@ namespace VocaluxeLib.Menu.SongMenu if (moveAllowed) { _SelectionNr++; + if (CBase.Config.GetAutoplayPreviews() == EOffOn.TR_CONFIG_ON) + { + _PreviewNr = _SelectionNr; + } keyEvent.Handled = true; } break; @@ -388,6 +396,10 @@ namespace VocaluxeLib.Menu.SongMenu else if (_SelectionNr >= 1 && moveAllowed) { _SelectionNr -= 1; + if (CBase.Config.GetAutoplayPreviews() == EOffOn.TR_CONFIG_ON) + { + _PreviewNr = _SelectionNr; + } keyEvent.Handled = true; } break; @@ -404,6 +416,10 @@ namespace VocaluxeLib.Menu.SongMenu else if (moveAllowed) { _SelectionNr += 1; + if(CBase.Config.GetAutoplayPreviews() == EOffOn.TR_CONFIG_ON) + { + _PreviewNr = _SelectionNr; + } keyEvent.Handled = true; } break; diff --git a/VocaluxeLib/Menu/SongMenu/CSongMenuTileBoard.cs b/VocaluxeLib/Menu/SongMenu/CSongMenuTileBoard.cs index 4dc50faf..a331e0b1 100644 --- a/VocaluxeLib/Menu/SongMenu/CSongMenuTileBoard.cs +++ b/VocaluxeLib/Menu/SongMenu/CSongMenuTileBoard.cs @@ -355,6 +355,10 @@ namespace VocaluxeLib.Menu.SongMenu if (_SelectionNr > 0 && moveAllowed) { _SelectionNr--; + if (CBase.Config.GetAutoplayPreviews() == EOffOn.TR_CONFIG_ON) + { + _PreviewNr = _SelectionNr; + } keyEvent.Handled = true; } break; @@ -363,6 +367,10 @@ namespace VocaluxeLib.Menu.SongMenu if (moveAllowed) { _SelectionNr++; + if (CBase.Config.GetAutoplayPreviews() == EOffOn.TR_CONFIG_ON) + { + _PreviewNr = _SelectionNr; + } keyEvent.Handled = true; } break; @@ -379,6 +387,10 @@ namespace VocaluxeLib.Menu.SongMenu else if (_SelectionNr >= _NumW && moveAllowed) { _SelectionNr -= _NumW; + if (CBase.Config.GetAutoplayPreviews() == EOffOn.TR_CONFIG_ON) + { + _PreviewNr = _SelectionNr; + } keyEvent.Handled = true; } break; @@ -395,6 +407,10 @@ namespace VocaluxeLib.Menu.SongMenu else if (moveAllowed) { _SelectionNr += _NumW; + if (CBase.Config.GetAutoplayPreviews() == EOffOn.TR_CONFIG_ON) + { + _PreviewNr = _SelectionNr; + } keyEvent.Handled = true; } break;