diff --git a/Output/RequiredSkinElements.xml b/Output/RequiredSkinElements.xml index 7899e53d..a9ac470c 100644 --- a/Output/RequiredSkinElements.xml +++ b/Output/RequiredSkinElements.xml @@ -18,9 +18,7 @@ Minus RepeatIcon - - BG_Video - + Player1 Player2 diff --git a/Vocaluxe/Base/CVideoPlayer.cs b/Vocaluxe/Base/CVideoPlayer.cs index 86e8537b..3e0762f6 100644 --- a/Vocaluxe/Base/CVideoPlayer.cs +++ b/Vocaluxe/Base/CVideoPlayer.cs @@ -41,6 +41,10 @@ namespace Vocaluxe.Base public void Load(string videoName) { _VideoStream = CThemes.GetSkinVideo(videoName, -1, false); + if (_VideoStream == null) + { + return; + } _Loaded = true; CVideo.Pause(_VideoStream); } @@ -68,6 +72,11 @@ namespace Vocaluxe.Base public void Draw() { + if (!_Loaded) + { + return; + } + if (!_Finished) { float videoTime = _VideoTimer.ElapsedMilliseconds / 1000f; @@ -83,6 +92,10 @@ namespace Vocaluxe.Base public void PreLoad() { + if (!_Loaded) + { + return; + } bool paused = _VideoTimer.IsRunning; if (paused) CVideo.Resume(_VideoStream); diff --git a/Vocaluxe/Base/ThemeSystem/CSkin.cs b/Vocaluxe/Base/ThemeSystem/CSkin.cs index 5474177e..6e04b079 100644 --- a/Vocaluxe/Base/ThemeSystem/CSkin.cs +++ b/Vocaluxe/Base/ThemeSystem/CSkin.cs @@ -178,8 +178,8 @@ namespace Vocaluxe.Base.ThemeSystem CVideoSkinElement sk = new CVideoSkinElement {FileName = kvp.Value}; if (!File.Exists(Path.Combine(_Folder, sk.FileName))) { - CLog.LogError("Video \"" + kvp.Key + "\": (" + sk.FileName + ") not found!", true); - return false; + CLog.LogError("Video \"" + kvp.Key + "\": (" + sk.FileName + ") not found!"); + continue; } _Videos.Add(kvp.Key, sk); } diff --git a/Vocaluxe/Screens/CScreenSong.cs b/Vocaluxe/Screens/CScreenSong.cs index 8a4d5ff1..9713baca 100644 --- a/Vocaluxe/Screens/CScreenSong.cs +++ b/Vocaluxe/Screens/CScreenSong.cs @@ -411,8 +411,12 @@ namespace Vocaluxe.Screens { _Playlist.Selected = false; _SongMenu.Selected = true; + if (mouseEvent.LB) + { + _ToggleSongOptions(ESongOptionsView.None); + } } - + if (mouseEvent.RB) { if (_CurSongOptionsView != ESongOptionsView.None) diff --git a/VocaluxeLib/Menu/CBackground.cs b/VocaluxeLib/Menu/CBackground.cs index 548d10fa..611aa382 100644 --- a/VocaluxeLib/Menu/CBackground.cs +++ b/VocaluxeLib/Menu/CBackground.cs @@ -318,11 +318,15 @@ namespace VocaluxeLib.Menu private bool _DrawVideo() { - CBase.Video.GetFrame(_VideoStream, _VideoStream.VideoTime); - if (_VideoStream.Texture != null) + if (_VideoStream != null) { - CBase.Drawing.DrawTexture(_VideoStream.Texture, Rect, EAspect.Crop); - return true; + CBase.Video.GetFrame(_VideoStream, _VideoStream.VideoTime); + if (_VideoStream.Texture != null) + { + CBase.Drawing.DrawTexture(_VideoStream.Texture, Rect, EAspect.Crop); + return true; + } + return false; } return false; } diff --git a/VocaluxeLib/Menu/CPlaylist.cs b/VocaluxeLib/Menu/CPlaylist.cs index 0b39d443..eea30f1a 100644 --- a/VocaluxeLib/Menu/CPlaylist.cs +++ b/VocaluxeLib/Menu/CPlaylist.cs @@ -171,7 +171,7 @@ namespace VocaluxeLib.Menu public SRectF Rect { - get { return MaxRect; } + get { return _CompleteRect; } } public SRectF MaxRect { get; set; } private bool _Selectable = true; @@ -1038,27 +1038,27 @@ namespace VocaluxeLib.Menu { _PlaylistElements.Clear(); - for (int i = 0; i < Math.Floor(Rect.H / _Theme.EntryHeight); i++) + for (int i = 0; i < Math.Floor(_Theme.Rect.H / _Theme.EntryHeight); i++) { var en = new CPlaylistElement { Background = new CStatic(_PartyModeID, _Theme.SkinBackground, _BackgroundColor, - new SRectF(Rect.X, Rect.Y + (i * _Theme.EntryHeight), Rect.W, _Theme.EntryHeight, Rect.Z)), + new SRectF(_Theme.Rect.X, _Theme.Rect.Y + (i * _Theme.EntryHeight), _Theme.Rect.W, _Theme.EntryHeight, _Theme.Rect.Z)), Cover = new CStatic(_Theme.StaticCover, _PartyModeID) }; en.Cover.LoadSkin(); - en.Cover.Y += Rect.Y + (i * _Theme.EntryHeight); - en.Cover.X += Rect.X; + en.Cover.Y += _Theme.Rect.Y + (i * _Theme.EntryHeight); + en.Cover.X += _Theme.Rect.X; en.Text1 = new CText(_Text1); - en.Text1.X += Rect.X; - en.Text1.Y += Rect.Y + (i * _Theme.EntryHeight); + en.Text1.X += _Theme.Rect.X; + en.Text1.Y += _Theme.Rect.Y + (i * _Theme.EntryHeight); en.SelectSlide = new CSelectSlide(_SelectSlideGameMode); en.SelectSlide.LoadSkin(); - en.SelectSlide.X += Rect.X; - en.SelectSlide.Y += Rect.Y + (i * _Theme.EntryHeight); + en.SelectSlide.X += _Theme.Rect.X; + en.SelectSlide.Y += _Theme.Rect.Y + (i * _Theme.EntryHeight); en.Content = -1; @@ -1181,7 +1181,7 @@ namespace VocaluxeLib.Menu private void _UpdateRect() { //Check for highest x/y-coords - _CompleteRect = Rect; + _CompleteRect = _Theme.Rect; //ButtonPlaylistClose if (_ButtonPlaylistClose.Rect.X < _CompleteRect.X) _CompleteRect.X = _ButtonPlaylistClose.Rect.X;