Merge pull request #333 from Jiiniasu/Instant-Preview

Option to autoplay previews
This commit is contained in:
lukeIam authored and GitHub committed 2017-11-10 11:41:48 +01:00
commit 9b592be4b4
11 files changed
+148 -16

No files matched your search

+1
View File
@@ -188,6 +188,7 @@
<string name="TR_SCREENOGAME_SONGMENU">Song-menu style</string> <string name="TR_SCREENOGAME_SONGMENU">Song-menu style</string>
<string name="TR_SCREENOGAME_SONGSORTING">Song sorting</string> <string name="TR_SCREENOGAME_SONGSORTING">Song sorting</string>
<string name="TR_SCREENOGAME_TABS">Tabs</string> <string name="TR_SCREENOGAME_TABS">Tabs</string>
<string name="TR_SCREENOGAME_AUTOPLAYPREVIEWS">Autoplay song previews</string>
<string name="TR_SCREENOGAME_DIFFICULTY">Game difficulty</string> <string name="TR_SCREENOGAME_DIFFICULTY">Game difficulty</string>
<string name="TR_SCREENOGAME_TIMERMODE">Timer mode</string> <string name="TR_SCREENOGAME_TIMERMODE">Timer mode</string>
<string name="TR_SCREENOGAME_HIGHSCORESTYLE">Highscore style</string> <string name="TR_SCREENOGAME_HIGHSCORESTYLE">Highscore style</string>
+1
View File
@@ -183,6 +183,7 @@
<string name="TR_SCREENOGAME_SONGMENU">Låtmeny</string> <string name="TR_SCREENOGAME_SONGMENU">Låtmeny</string>
<string name="TR_SCREENOGAME_SONGSORTING">Låtsortering</string> <string name="TR_SCREENOGAME_SONGSORTING">Låtsortering</string>
<string name="TR_SCREENOGAME_TABS">Flikar</string> <string name="TR_SCREENOGAME_TABS">Flikar</string>
<string name="TR_SCREENOGAME_AUTOPLAYPREVIEWS">Förhandsvisa låtar automatiskt</string>
<string name="TR_SCREENOGAME_DIFFICULTY">Spelets svårighetsgrad</string> <string name="TR_SCREENOGAME_DIFFICULTY">Spelets svårighetsgrad</string>
<string name="TR_SCREENOGAME_TIMERMODE">Timerläge</string> <string name="TR_SCREENOGAME_TIMERMODE">Timerläge</string>
<string name="TR_SCREENOGAME_HIGHSCORESTYLE">Topplistsvy</string> <string name="TR_SCREENOGAME_HIGHSCORESTYLE">Topplistsvy</string>
@@ -1,5 +1,10 @@
ScreenOptionsGame ScreenOptionsGame
++++++++++
Version 4:
Add:
<SelectSlideAutoplayPreviews>
++++++++++ ++++++++++
Version 3: Version 3:
@@ -2,7 +2,7 @@
<Screen xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <Screen xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Informations> <Informations>
<ScreenName>ScreenOptionsGame</ScreenName> <ScreenName>ScreenOptionsGame</ScreenName>
<ScreenVersion>3</ScreenVersion> <ScreenVersion>4</ScreenVersion>
</Informations> </Informations>
<Backgrounds> <Backgrounds>
<Background Name="Background1"> <Background Name="Background1">
@@ -111,7 +111,7 @@
<Font>Outline</Font> <Font>Outline</Font>
<Text>TR_SCREENOGAME_TABS</Text> <Text>TR_SCREENOGAME_TABS</Text>
</Text> </Text>
<Text Name="TextTimerMode"> <Text Name="TextAutoplayPreviews">
<X>75</X> <X>75</X>
<Y>407</Y> <Y>407</Y>
<Z>0</Z> <Z>0</Z>
@@ -123,11 +123,25 @@
<ResizeAlign>Center</ResizeAlign> <ResizeAlign>Center</ResizeAlign>
<Style>Bold</Style> <Style>Bold</Style>
<Font>Outline</Font> <Font>Outline</Font>
<Text>TR_SCREENOGAME_AUTOPLAYPREVIEWS</Text>
</Text>
<Text Name="TextTimerMode">
<X>75</X>
<Y>467</Y>
<Z>0</Z>
<H>27</H>
<MaxW>0</MaxW>
<Color Name="TextColor" />
<SelColor Name="TextSelColor" />
<Align>Left</Align>
<ResizeAlign>Center</ResizeAlign>
<Style>Bold</Style>
<Font>Outline</Font>
<Text>TR_SCREENOGAME_TIMERMODE</Text> <Text>TR_SCREENOGAME_TIMERMODE</Text>
</Text> </Text>
<Text Name="TextHighScoreStyle"> <Text Name="TextHighScoreStyle">
<X>75</X> <X>75</X>
<Y>467</Y> <Y>527</Y>
<Z>0</Z> <Z>0</Z>
<H>27</H> <H>27</H>
<MaxW>0</MaxW> <MaxW>0</MaxW>
@@ -425,7 +439,7 @@
<TextStyle>Bold</TextStyle> <TextStyle>Bold</TextStyle>
<NumVisible>2</NumVisible> <NumVisible>2</NumVisible>
</SelectSlide> </SelectSlide>
<SelectSlide Name="SelectSlideTimerMode"> <SelectSlide Name="SelectSlideAutoplayPreviews">
<Skin/> <Skin/>
<SkinArrowLeft>SelectSlideArrowLeft</SkinArrowLeft> <SkinArrowLeft>SelectSlideArrowLeft</SkinArrowLeft>
<SkinArrowRight>SelectSlideArrowRight</SkinArrowRight> <SkinArrowRight>SelectSlideArrowRight</SkinArrowRight>
@@ -467,7 +481,7 @@
<TextStyle>Bold</TextStyle> <TextStyle>Bold</TextStyle>
<NumVisible>3</NumVisible> <NumVisible>3</NumVisible>
</SelectSlide> </SelectSlide>
<SelectSlide Name="SelectSlideHighscoreStyle"> <SelectSlide Name="SelectSlideTimerMode">
<Skin/> <Skin/>
<SkinArrowLeft>SelectSlideArrowLeft</SkinArrowLeft> <SkinArrowLeft>SelectSlideArrowLeft</SkinArrowLeft>
<SkinArrowRight>SelectSlideArrowRight</SkinArrowRight> <SkinArrowRight>SelectSlideArrowRight</SkinArrowRight>
@@ -509,6 +523,48 @@
<TextStyle>Bold</TextStyle> <TextStyle>Bold</TextStyle>
<NumVisible>2</NumVisible> <NumVisible>2</NumVisible>
</SelectSlide> </SelectSlide>
<SelectSlide Name="SelectSlideHighscoreStyle">
<Skin/>
<SkinArrowLeft>SelectSlideArrowLeft</SkinArrowLeft>
<SkinArrowRight>SelectSlideArrowRight</SkinArrowRight>
<SkinSelected>SelectSlide</SkinSelected>
<SkinArrowLeftSelected>SelectSlideArrowLeft</SkinArrowLeftSelected>
<SkinArrowRightSelected>SelectSlideArrowRight</SkinArrowRightSelected>
<Rect>
<X>500</X>
<Y>520</Y>
<W>715</W>
<H>50</H>
<Z>0</Z>
</Rect>
<RectArrowLeft>
<X>505</X>
<Y>525</Y>
<W>40</W>
<H>40</H>
<Z>0</Z>
</RectArrowLeft>
<RectArrowRight>
<X>1170</X>
<Y>525</Y>
<W>40</W>
<H>40</H>
<Z>0</Z>
</RectArrowRight>
<Color Name="SelectSlideColor" />
<SelColor Name="SelectSlideSelColor" />
<ArrowColor Name="ArrowColor" />
<ArrowSelColor Name="ArrowSelColor" />
<TextColor Name="TextColorAlpha" />
<TextSelColor Name="TextSelColor" />
<TextH>27</TextH>
<TextRelativeX>50</TextRelativeX>
<TextRelativeY>0</TextRelativeY>
<TextMaxW>200</TextMaxW>
<TextFont>Outline</TextFont>
<TextStyle>Bold</TextStyle>
<NumVisible>2</NumVisible>
</SelectSlide>
</SelectSlides> </SelectSlides>
<SingNotes /> <SingNotes />
<NameSelections /> <NameSelections />
+6
View File
@@ -171,6 +171,8 @@ namespace Vocaluxe.Base
[DefaultValue(ETimerMode.TR_CONFIG_TIMERMODE_REMAINING)] public ETimerMode TimerMode; [DefaultValue(ETimerMode.TR_CONFIG_TIMERMODE_REMAINING)] public ETimerMode TimerMode;
[XmlAltName("NumPlayer"), DefaultValue(2)] public int NumPlayers; [XmlAltName("NumPlayer"), DefaultValue(2)] public int NumPlayers;
[DefaultValue(EOffOn.TR_CONFIG_OFF)] public EOffOn Tabs; [DefaultValue(EOffOn.TR_CONFIG_OFF)] public EOffOn Tabs;
[DefaultValue(EOffOn.TR_CONFIG_OFF)] public EOffOn AutoplayPreviews;
[XmlAltName("AutoplayPreviewDelay"), DefaultValue(500)] public int AutoplayPreviewDelay;
[DefaultValue(ELyricsPosition.TR_CONFIG_LYRICSPOSITION_BOTTOM)] public ELyricsPosition LyricsPosition; [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) [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; [XmlArrayItem("Player"), XmlArray] public string[] Players;
@@ -521,6 +523,10 @@ namespace Vocaluxe.Base
return "NumPlayers: 1.." + CSettings.MaxNumPlayer; return "NumPlayers: 1.." + CSettings.MaxNumPlayer;
case "Tabs": case "Tabs":
return "Order songs in tabs: " + CHelper.ListStrings(Enum.GetNames(typeof(EOffOn))); 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 "AutoplayPreviewDelay":
return "Delay before playback of autoplay previews is started in milliseconds";
case "LyricsPosition": case "LyricsPosition":
return "Position if lyrics on screen: " + CHelper.ListStrings(Enum.GetNames(typeof(ELyricsPosition))); return "Position if lyrics on screen: " + CHelper.ListStrings(Enum.GetNames(typeof(ELyricsPosition)));
case "MinLineBreakTime": case "MinLineBreakTime":
+10
View File
@@ -141,6 +141,16 @@ namespace Vocaluxe.Base
return CConfig.Config.Game.Tabs; return CConfig.Config.Game.Tabs;
} }
public EOffOn GetAutoplayPreviews()
{
return CConfig.Config.Game.AutoplayPreviews;
}
public int GetAutoplayPreviewDelay()
{
return CConfig.Config.Game.AutoplayPreviewDelay;
}
public EOffOn GetIgnoreArticles() public EOffOn GetIgnoreArticles()
{ {
return CConfig.Config.Game.IgnoreArticles; return CConfig.Config.Game.IgnoreArticles;
+4 -1
View File
@@ -27,7 +27,7 @@ namespace Vocaluxe.Screens
// Version number for theme files. Increment it, if you've changed something on the theme files! // Version number for theme files. Increment it, if you've changed something on the theme files!
protected override int _ScreenVersion protected override int _ScreenVersion
{ {
get { return 3; } get { return 4; }
} }
private const string _SelectSlideLanguage = "SelectSlideLanguage"; private const string _SelectSlideLanguage = "SelectSlideLanguage";
@@ -35,6 +35,7 @@ namespace Vocaluxe.Screens
private const string _SelectSlideSongMenu = "SelectSlideSongMenu"; private const string _SelectSlideSongMenu = "SelectSlideSongMenu";
private const string _SelectSlideSongSorting = "SelectSlideSongSorting"; private const string _SelectSlideSongSorting = "SelectSlideSongSorting";
private const string _SelectSlideTabs = "SelectSlideTabs"; private const string _SelectSlideTabs = "SelectSlideTabs";
private const string _SelectSlideAutoplayPreviews = "SelectSlideAutoplayPreviews";
private const string _SelectSlideTimerMode = "SelectSlideTimerMode"; private const string _SelectSlideTimerMode = "SelectSlideTimerMode";
private const string _SelectSlideHighscoreStyle = "SelectSlideHighscoreStyle"; private const string _SelectSlideHighscoreStyle = "SelectSlideHighscoreStyle";
@@ -60,6 +61,7 @@ namespace Vocaluxe.Screens
_SelectSlides[_SelectSlideSongMenu].SetValues<ESongMenu>((int)CConfig.SongMenu); _SelectSlides[_SelectSlideSongMenu].SetValues<ESongMenu>((int)CConfig.SongMenu);
_SelectSlides[_SelectSlideSongSorting].SetValues<ESongSorting>((int)CConfig.Config.Game.SongSorting); _SelectSlides[_SelectSlideSongSorting].SetValues<ESongSorting>((int)CConfig.Config.Game.SongSorting);
_SelectSlides[_SelectSlideTabs].SetValues<EOffOn>((int)CConfig.Config.Game.Tabs); _SelectSlides[_SelectSlideTabs].SetValues<EOffOn>((int)CConfig.Config.Game.Tabs);
_SelectSlides[_SelectSlideAutoplayPreviews].SetValues<EOffOn>((int)CConfig.Config.Game.AutoplayPreviews);
_SelectSlides[_SelectSlideTimerMode].SetValues<ETimerMode>((int)CConfig.Config.Game.TimerMode); _SelectSlides[_SelectSlideTimerMode].SetValues<ETimerMode>((int)CConfig.Config.Game.TimerMode);
_SelectSlides[_SelectSlideHighscoreStyle].SetValues<EHighscoreStyle>((int)CConfig.Config.Game.HighscoreStyle); _SelectSlides[_SelectSlideHighscoreStyle].SetValues<EHighscoreStyle>((int)CConfig.Config.Game.HighscoreStyle);
} }
@@ -142,6 +144,7 @@ namespace Vocaluxe.Screens
CConfig.SongMenu = (ESongMenu)_SelectSlides[_SelectSlideSongMenu].Selection; CConfig.SongMenu = (ESongMenu)_SelectSlides[_SelectSlideSongMenu].Selection;
CConfig.Config.Game.SongSorting = (ESongSorting)_SelectSlides[_SelectSlideSongSorting].Selection; CConfig.Config.Game.SongSorting = (ESongSorting)_SelectSlides[_SelectSlideSongSorting].Selection;
CConfig.Config.Game.Tabs = (EOffOn)_SelectSlides[_SelectSlideTabs].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.TimerMode = (ETimerMode)_SelectSlides[_SelectSlideTimerMode].Selection;
CConfig.Config.Game.HighscoreStyle = (EHighscoreStyle)_SelectSlides[_SelectSlideHighscoreStyle].Selection; CConfig.Config.Game.HighscoreStyle = (EHighscoreStyle)_SelectSlides[_SelectSlideHighscoreStyle].Selection;
+2
View File
@@ -56,6 +56,8 @@ namespace VocaluxeLib
IEnumerable<string> GetSongFolders(); IEnumerable<string> GetSongFolders();
ESongSorting GetSongSorting(); ESongSorting GetSongSorting();
EOffOn GetTabs(); EOffOn GetTabs();
EOffOn GetAutoplayPreviews();
int GetAutoplayPreviewDelay();
EOffOn GetIgnoreArticles(); EOffOn GetIgnoreArticles();
bool IsMicConfigured(int playerNr); bool IsMicConfigured(int playerNr);
@@ -158,6 +158,9 @@ namespace VocaluxeLib.Menu.SongMenu
} }
} }
protected int _AutoplayDelayinMs = CBase.Config.GetAutoplayPreviewDelay();
protected System.Timers.Timer _AutoplayTimer = new System.Timers.Timer();
private SColorF _ColorInternal; private SColorF _ColorInternal;
protected SColorF _Color protected SColorF _Color
{ {
@@ -204,6 +207,7 @@ namespace VocaluxeLib.Menu.SongMenu
public virtual void Init() public virtual void Init()
{ {
_ResetPreview(false); _ResetPreview(false);
_InitializeAutoplayTimer();
_Initialized = true; _Initialized = true;
} }
@@ -358,6 +362,42 @@ namespace VocaluxeLib.Menu.SongMenu
_PreviewNrInternal = -1; _PreviewNrInternal = -1;
} }
protected void _PreviewSelectedSong()
{
_PreviewNr = _SelectionNr;
}
protected void _InitializeAutoplayTimer()
{
_AutoplayTimer.Interval = _AutoplayDelayinMs;
_AutoplayTimer.AutoReset = false;
_AutoplayTimer.Elapsed += (object sender, System.Timers.ElapsedEventArgs e) =>
{
_PreviewSelectedSong();
};
}
protected void _AutoplayPreviewIfEnabled()
{
if (CBase.Config.GetAutoplayPreviews() == EOffOn.TR_CONFIG_ON)
{
_PlayPreviewAfterDelay();
}
}
protected void _PlayPreviewAfterDelay()
{
if (!_AutoplayTimer.Enabled)
{
_AutoplayTimer.Start();
}
else
{
_AutoplayTimer.Stop();
_AutoplayTimer.Start();
}
}
#region ThemeEdit #region ThemeEdit
public void MoveElement(int stepX, int stepY) public void MoveElement(int stepX, int stepY)
{ {
+9 -5
View File
@@ -204,7 +204,7 @@ namespace VocaluxeLib.Menu.SongMenu
public override void Update(SScreenSongOptions songOptions) public override void Update(SScreenSongOptions songOptions)
{ {
if (songOptions.Selection.RandomOnly) if (songOptions.Selection.RandomOnly)
_PreviewNr = _SelectionNr; _PreviewSelectedSong();
if (_Length < 0 && CBase.Songs.IsInCategory() && CBase.BackgroundMusic.GetLength() > 0) if (_Length < 0 && CBase.Songs.IsInCategory() && CBase.BackgroundMusic.GetLength() > 0)
_UpdateLength(CBase.Songs.GetVisibleSong(_PreviewNr)); _UpdateLength(CBase.Songs.GetVisibleSong(_PreviewNr));
@@ -300,7 +300,7 @@ namespace VocaluxeLib.Menu.SongMenu
SetSelectedSong(_SelectionNr < 0 ? 0 : _SelectionNr); SetSelectedSong(_SelectionNr < 0 ? 0 : _SelectionNr);
else else
SetSelectedCategory(_SelectionNr < 0 ? 0 : _SelectionNr); SetSelectedCategory(_SelectionNr < 0 ? 0 : _SelectionNr);
_PreviewNr = _SelectionNr; _PreviewSelectedSong();
_UpdateListIfRequired(); _UpdateListIfRequired();
} }
@@ -323,7 +323,7 @@ namespace VocaluxeLib.Menu.SongMenu
{ {
if (_SelectionNr >= 0 && _PreviewNr != _SelectionNr) if (_SelectionNr >= 0 && _PreviewNr != _SelectionNr)
{ {
_PreviewNr = _SelectionNr; _PreviewSelectedSong();
keyEvent.Handled = true; keyEvent.Handled = true;
} }
} }
@@ -364,6 +364,7 @@ namespace VocaluxeLib.Menu.SongMenu
if (_SelectionNr > 0 && moveAllowed) if (_SelectionNr > 0 && moveAllowed)
{ {
_SelectionNr--; _SelectionNr--;
_AutoplayPreviewIfEnabled();
keyEvent.Handled = true; keyEvent.Handled = true;
} }
break; break;
@@ -372,6 +373,7 @@ namespace VocaluxeLib.Menu.SongMenu
if (moveAllowed) if (moveAllowed)
{ {
_SelectionNr++; _SelectionNr++;
_AutoplayPreviewIfEnabled();
keyEvent.Handled = true; keyEvent.Handled = true;
} }
break; break;
@@ -388,6 +390,7 @@ namespace VocaluxeLib.Menu.SongMenu
else if (_SelectionNr >= 1 && moveAllowed) else if (_SelectionNr >= 1 && moveAllowed)
{ {
_SelectionNr -= 1; _SelectionNr -= 1;
_AutoplayPreviewIfEnabled();
keyEvent.Handled = true; keyEvent.Handled = true;
} }
break; break;
@@ -404,12 +407,13 @@ namespace VocaluxeLib.Menu.SongMenu
else if (moveAllowed) else if (moveAllowed)
{ {
_SelectionNr += 1; _SelectionNr += 1;
_AutoplayPreviewIfEnabled();
keyEvent.Handled = true; keyEvent.Handled = true;
} }
break; break;
} }
if (!CBase.Songs.IsInCategory()) if (!CBase.Songs.IsInCategory())
_PreviewNr = _SelectionNr; _PreviewSelectedSong();
return keyEvent.Handled; return keyEvent.Handled;
} }
@@ -469,7 +473,7 @@ namespace VocaluxeLib.Menu.SongMenu
{ {
if (_PreviewNr == _SelectionNr) if (_PreviewNr == _SelectionNr)
return false; return false;
_PreviewNr = _SelectionNr; _PreviewSelectedSong();
} }
else else
EnterSelectedCategory(); EnterSelectedCategory();
@@ -195,7 +195,7 @@ namespace VocaluxeLib.Menu.SongMenu
public override void Update(SScreenSongOptions songOptions) public override void Update(SScreenSongOptions songOptions)
{ {
if (songOptions.Selection.RandomOnly) if (songOptions.Selection.RandomOnly)
_PreviewNr = _SelectionNr; _PreviewSelectedSong();
if (_Length < 0 && CBase.Songs.IsInCategory() && CBase.BackgroundMusic.GetLength() > 0) if (_Length < 0 && CBase.Songs.IsInCategory() && CBase.BackgroundMusic.GetLength() > 0)
_UpdateLength(CBase.Songs.GetVisibleSong(_PreviewNr)); _UpdateLength(CBase.Songs.GetVisibleSong(_PreviewNr));
@@ -291,7 +291,7 @@ namespace VocaluxeLib.Menu.SongMenu
SetSelectedSong(_SelectionNr < 0 ? 0 : _SelectionNr); SetSelectedSong(_SelectionNr < 0 ? 0 : _SelectionNr);
else else
SetSelectedCategory(_SelectionNr < 0 ? 0 : _SelectionNr); SetSelectedCategory(_SelectionNr < 0 ? 0 : _SelectionNr);
_PreviewNr = _SelectionNr; _PreviewSelectedSong();
_UpdateListIfRequired(); _UpdateListIfRequired();
} }
@@ -314,7 +314,7 @@ namespace VocaluxeLib.Menu.SongMenu
{ {
if (_SelectionNr >= 0 && _PreviewNr != _SelectionNr) if (_SelectionNr >= 0 && _PreviewNr != _SelectionNr)
{ {
_PreviewNr = _SelectionNr; _PreviewSelectedSong();
keyEvent.Handled = true; keyEvent.Handled = true;
} }
} }
@@ -355,6 +355,7 @@ namespace VocaluxeLib.Menu.SongMenu
if (_SelectionNr > 0 && moveAllowed) if (_SelectionNr > 0 && moveAllowed)
{ {
_SelectionNr--; _SelectionNr--;
_AutoplayPreviewIfEnabled();
keyEvent.Handled = true; keyEvent.Handled = true;
} }
break; break;
@@ -363,6 +364,7 @@ namespace VocaluxeLib.Menu.SongMenu
if (moveAllowed) if (moveAllowed)
{ {
_SelectionNr++; _SelectionNr++;
_AutoplayPreviewIfEnabled();
keyEvent.Handled = true; keyEvent.Handled = true;
} }
break; break;
@@ -379,6 +381,7 @@ namespace VocaluxeLib.Menu.SongMenu
else if (_SelectionNr >= _NumW && moveAllowed) else if (_SelectionNr >= _NumW && moveAllowed)
{ {
_SelectionNr -= _NumW; _SelectionNr -= _NumW;
_AutoplayPreviewIfEnabled();
keyEvent.Handled = true; keyEvent.Handled = true;
} }
break; break;
@@ -395,12 +398,13 @@ namespace VocaluxeLib.Menu.SongMenu
else if (moveAllowed) else if (moveAllowed)
{ {
_SelectionNr += _NumW; _SelectionNr += _NumW;
_AutoplayPreviewIfEnabled();
keyEvent.Handled = true; keyEvent.Handled = true;
} }
break; break;
} }
if (!CBase.Songs.IsInCategory()) if (!CBase.Songs.IsInCategory())
_PreviewNr = _SelectionNr; _PreviewSelectedSong();
return keyEvent.Handled; return keyEvent.Handled;
} }
@@ -456,7 +460,7 @@ namespace VocaluxeLib.Menu.SongMenu
{ {
if (_PreviewNr == _SelectionNr) if (_PreviewNr == _SelectionNr)
return false; return false;
_PreviewNr = _SelectionNr; _PreviewSelectedSong();
} }
else else
EnterSelectedCategory(); EnterSelectedCategory();