From 6f617aa40b5ab7e9cf310164df755a0175dbcd4c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20K=C3=BCpper?= Date: Fri, 22 Aug 2014 17:51:47 +0200 Subject: [PATCH] Some improvements... --- Vocaluxe/Base/CBackgroundMusic.cs | 6 ++++++ Vocaluxe/Base/CMain.cs | 5 +++++ VocaluxeLib/IBasic.cs | 1 + VocaluxeLib/Menu/SongMenu/CSongMenuFramework.cs | 4 +++- VocaluxeLib/Songs/CSong.cs | 3 +++ VocaluxeLib/Songs/CSongLoader.cs | 2 +- 6 files changed, 19 insertions(+), 2 deletions(-) diff --git a/Vocaluxe/Base/CBackgroundMusic.cs b/Vocaluxe/Base/CBackgroundMusic.cs index 51014f58..954692e0 100644 --- a/Vocaluxe/Base/CBackgroundMusic.cs +++ b/Vocaluxe/Base/CBackgroundMusic.cs @@ -333,6 +333,12 @@ namespace Vocaluxe.Base Play(); } + public static void StopPreview() + { + _PreviewPlayer.Close(); + _PlaysPreview = false; + } + /// /// (Re-)Starts the _CurrentPlaylistElement /// diff --git a/Vocaluxe/Base/CMain.cs b/Vocaluxe/Base/CMain.cs index 9e724f2f..c0629d36 100644 --- a/Vocaluxe/Base/CMain.cs +++ b/Vocaluxe/Base/CMain.cs @@ -395,6 +395,11 @@ namespace Vocaluxe.Base CBackgroundMusic.PlayPreview(start); } + public void StopPreview() + { + CBackgroundMusic.StopPreview(); + } + public CTexture GetVideoTexture() { return CBackgroundMusic.GetVideoTexture(); diff --git a/VocaluxeLib/IBasic.cs b/VocaluxeLib/IBasic.cs index e59634d7..699a4152 100644 --- a/VocaluxeLib/IBasic.cs +++ b/VocaluxeLib/IBasic.cs @@ -135,6 +135,7 @@ namespace VocaluxeLib void LoadPreview(CSong song, float start = 0f); void PlayPreview(float start = -1f); + void StopPreview(); } diff --git a/VocaluxeLib/Menu/SongMenu/CSongMenuFramework.cs b/VocaluxeLib/Menu/SongMenu/CSongMenuFramework.cs index e2ad5ae6..eaeee46b 100644 --- a/VocaluxeLib/Menu/SongMenu/CSongMenuFramework.cs +++ b/VocaluxeLib/Menu/SongMenu/CSongMenuFramework.cs @@ -500,7 +500,9 @@ namespace VocaluxeLib.Menu.SongMenu private void _PlaySong(int nr) { - _ResetPreview(); + _PreviewNrInternal = -1; + + CBase.BackgroundMusic.StopPreview(); CSong song = CBase.Songs.GetVisibleSong(nr); if (song == null) diff --git a/VocaluxeLib/Songs/CSong.cs b/VocaluxeLib/Songs/CSong.cs index 26d1d6fd..665beac4 100644 --- a/VocaluxeLib/Songs/CSong.cs +++ b/VocaluxeLib/Songs/CSong.cs @@ -458,7 +458,10 @@ namespace VocaluxeLib.Songs if (Preview.Source == EDataSource.None) { if (Medley.Source != EDataSource.None) + { Preview.StartTime = CBase.Game.GetTimeFromBeats(Medley.StartBeat, BPM); + Preview.Source = EDataSource.Calculated; + } } } diff --git a/VocaluxeLib/Songs/CSongLoader.cs b/VocaluxeLib/Songs/CSongLoader.cs index 0e06ab45..cd4cf834 100644 --- a/VocaluxeLib/Songs/CSongLoader.cs +++ b/VocaluxeLib/Songs/CSongLoader.cs @@ -416,7 +416,7 @@ namespace VocaluxeLib.Songs { //PreviewStart is not set or <=0 _Song.Preview.StartTime = (headerFlags & EHeaderFlags.MedleyStartBeat) != 0 ? CBase.Game.GetTimeFromBeats(_Song.Medley.StartBeat, _Song.BPM) : 0f; - _Song.Preview.Source = EDataSource.Calculated; + _Song.Preview.Source = _Song.Preview.StartTime == 0 ? EDataSource.None : EDataSource.Calculated; } if ((headerFlags & EHeaderFlags.MedleyStartBeat) != 0 && (headerFlags & EHeaderFlags.MedleyEndBeat) != 0)