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;