Show popup for 1.5 sec if volume changed by keyboard.

This commit is contained in:
Florian Kuepper committed 2012-12-07 23:09:22 +01:00
1 parent 4eb22ddfbe
commit ace002a7b1
2 files changed
+44

No files matched your search

+42
View File
@@ -201,6 +201,11 @@ namespace Vocaluxe.Menu
private static List<CMenu> _Screens = new List<CMenu>();
private static List<CMenu> _PopupScreens = new List<CMenu>();
private static float _SavedBackgroundMusicVolume;
private static float _SavedPreviewMusicVolume;
private static float _SavedGameMusicVolume;
private static Stopwatch _VolumePopupTimer;
public static float GlobalAlpha
{
get { return _GlobalAlpha; }
@@ -249,6 +254,7 @@ namespace Vocaluxe.Menu
_NextScreen = EScreens.ScreenNull;
_CurrentPopupScreen = EPopupScreens.NoPopup;
_FadingTimer = new Stopwatch();
_VolumePopupTimer = new Stopwatch();
_GlobalAlpha = 1f;
_ZOffset = 0f;
@@ -324,6 +330,10 @@ namespace Vocaluxe.Menu
public static void InitFirstScreen()
{
_SavedBackgroundMusicVolume = CConfig.BackgroundMusicVolume;
_SavedGameMusicVolume = CConfig.GameMusicVolume;
_SavedPreviewMusicVolume = CConfig.PreviewMusicVolume;
_Screens[(int)_CurrentScreen].OnShow();
_Screens[(int)_CurrentScreen].OnShowFinish();
}
@@ -530,11 +540,17 @@ namespace Vocaluxe.Menu
if (PopupVolumeControlAllowed && isOverPopupVolumeControl)
{
if (_CurrentPopupScreen == EPopupScreens.NoPopup)
{
ShowPopup(EPopupScreens.PopupVolumeControl);
_VolumePopupTimer.Reset();
}
}
if (!isOverPopupVolumeControl && _CurrentPopupScreen == EPopupScreens.PopupVolumeControl)
{
HidePopup(EPopupScreens.PopupVolumeControl);
_VolumePopupTimer.Reset();
}
bool handled = false;
if (_CurrentPopupScreen != EPopupScreens.NoPopup)
@@ -593,6 +609,32 @@ namespace Vocaluxe.Menu
private static bool Update()
{
//User changed volume with keyboard, pop-up isn't visible yet
if ((_SavedPreviewMusicVolume != CConfig.PreviewMusicVolume || _SavedGameMusicVolume != CConfig.GameMusicVolume || _SavedBackgroundMusicVolume != CConfig.BackgroundMusicVolume)
&& (_CurrentPopupScreen != EPopupScreens.PopupVolumeControl && !_VolumePopupTimer.IsRunning))
{
_VolumePopupTimer.Start();
_SavedBackgroundMusicVolume = CConfig.BackgroundMusicVolume;
_SavedGameMusicVolume = CConfig.GameMusicVolume;
_SavedPreviewMusicVolume = CConfig.PreviewMusicVolume;
}
//User changed volume with keyboard, pop-up is already visible
else if ((_SavedPreviewMusicVolume != CConfig.PreviewMusicVolume || _SavedGameMusicVolume != CConfig.GameMusicVolume || _SavedBackgroundMusicVolume != CConfig.BackgroundMusicVolume)
&& (_CurrentPopupScreen == EPopupScreens.PopupVolumeControl && _VolumePopupTimer.IsRunning))
{
_VolumePopupTimer.Reset();
_VolumePopupTimer.Start();
_SavedBackgroundMusicVolume = CConfig.BackgroundMusicVolume;
_SavedGameMusicVolume = CConfig.GameMusicVolume;
_SavedPreviewMusicVolume = CConfig.PreviewMusicVolume;
}
if (_VolumePopupTimer.IsRunning && _VolumePopupTimer.ElapsedMilliseconds < 1500 && _CurrentPopupScreen != EPopupScreens.PopupVolumeControl)
ShowPopup(EPopupScreens.PopupVolumeControl);
if(_VolumePopupTimer.IsRunning && _VolumePopupTimer.ElapsedMilliseconds >= 1500 && _CurrentPopupScreen == EPopupScreens.PopupVolumeControl)
{
_VolumePopupTimer.Reset();
HidePopup(EPopupScreens.PopupVolumeControl);
}
if (_CurrentPopupScreen != EPopupScreens.NoPopup)
_PopupScreens[(int)_CurrentPopupScreen].UpdateGame();
return _Screens[(int)_CurrentScreen].UpdateGame();
+2
View File
@@ -106,6 +106,8 @@ namespace Vocaluxe.Screens
DragAndDropCover = new CStatic();
Playlists[htPlaylists(Playlist)].Init();
ApplyVolume();
}
public override bool HandleInput(KeyEvent KeyEvent)