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;
diff --git a/VocaluxeLib/Songs/CSongLoader.cs b/VocaluxeLib/Songs/CSongLoader.cs
index 79a80821..b2374e1d 100644
--- a/VocaluxeLib/Songs/CSongLoader.cs
+++ b/VocaluxeLib/Songs/CSongLoader.cs
@@ -349,7 +349,7 @@ namespace VocaluxeLib.Songs
if (identifier.StartsWith("DUETSINGER"))
{
identifier = identifier.Substring(10);
- if (identifier.StartsWith("P")) // fix for missing "P"
+ if (!identifier.StartsWith("P")) // fix for missing "P"
identifier = "P" + identifier;
}
if (identifier.StartsWith("P"))