diff --git a/Output/Themes/Changelog/Changelog_ScreenSong.txt b/Output/Themes/Changelog/Changelog_ScreenSong.txt
index 4c4cec95..59cb52df 100644
--- a/Output/Themes/Changelog/Changelog_ScreenSong.txt
+++ b/Output/Themes/Changelog/Changelog_ScreenSong.txt
@@ -1,5 +1,10 @@
ScreenSong
+++++++++++
+Version 14:
+Add InstrumentalIcon
+Add VocalsIcon
+
++++++++++
Version 13:
diff --git a/Output/Themes/Vocaluxe 2024/01_Standard.xml b/Output/Themes/Vocaluxe 2024/01_Standard.xml
index 47f5840f..8338b341 100644
--- a/Output/Themes/Vocaluxe 2024/01_Standard.xml
+++ b/Output/Themes/Vocaluxe 2024/01_Standard.xml
@@ -362,6 +362,8 @@
VideoIcon.png
MedleyCalcIcon.png
MedleyTagIcon.png
+ InstrumentalIcon.png
+ VocalsIcon.png
PlayerSelector.png
PreviousIcon.png
NextIcon.png
diff --git a/Output/Themes/Vocaluxe 2024/02.xml b/Output/Themes/Vocaluxe 2024/02.xml
index c84b50fe..cec51d64 100644
--- a/Output/Themes/Vocaluxe 2024/02.xml
+++ b/Output/Themes/Vocaluxe 2024/02.xml
@@ -362,6 +362,8 @@
VideoIcon.png
MedleyCalcIcon.png
MedleyTagIcon.png
+ InstrumentalIcon.png
+ VocalsIcon.png
PlayerSelector.png
PreviousIcon.png
NextIcon.png
diff --git a/Output/Themes/Vocaluxe 2024/03.xml b/Output/Themes/Vocaluxe 2024/03.xml
index a286c50f..a91111fe 100644
--- a/Output/Themes/Vocaluxe 2024/03.xml
+++ b/Output/Themes/Vocaluxe 2024/03.xml
@@ -362,6 +362,8 @@
VideoIcon.png
MedleyCalcIcon.png
MedleyTagIcon.png
+ InstrumentalIcon.png
+ VocalsIcon.png
PlayerSelector.png
PreviousIcon.png
NextIcon.png
diff --git a/Output/Themes/Vocaluxe 2024/04.xml b/Output/Themes/Vocaluxe 2024/04.xml
index 0e57f2a1..e1a00608 100644
--- a/Output/Themes/Vocaluxe 2024/04.xml
+++ b/Output/Themes/Vocaluxe 2024/04.xml
@@ -362,6 +362,8 @@
VideoIcon.png
MedleyCalcIcon.png
MedleyTagIcon.png
+ InstrumentalIcon.png
+ VocalsIcon.png
PlayerSelector.png
PreviousIcon.png
NextIcon.png
diff --git a/Output/Themes/Vocaluxe 2024/05.xml b/Output/Themes/Vocaluxe 2024/05.xml
index 812c9bd7..e28a4749 100644
--- a/Output/Themes/Vocaluxe 2024/05.xml
+++ b/Output/Themes/Vocaluxe 2024/05.xml
@@ -362,6 +362,8 @@
VideoIcon.png
MedleyCalcIcon.png
MedleyTagIcon.png
+ InstrumentalIcon.png
+ VocalsIcon.png
PlayerSelector.png
PreviousIcon.png
NextIcon.png
diff --git a/Output/Themes/Vocaluxe 2024/06.xml b/Output/Themes/Vocaluxe 2024/06.xml
index 2f2086a4..0e75d9dc 100644
--- a/Output/Themes/Vocaluxe 2024/06.xml
+++ b/Output/Themes/Vocaluxe 2024/06.xml
@@ -362,6 +362,8 @@
VideoIcon.png
MedleyCalcIcon.png
MedleyTagIcon.png
+ InstrumentalIcon.png
+ VocalsIcon.png
PlayerSelector.png
PreviousIcon.png
NextIcon.png
diff --git a/Output/Themes/Vocaluxe 2024/InstrumentalIcon.png b/Output/Themes/Vocaluxe 2024/InstrumentalIcon.png
new file mode 100644
index 00000000..f39510ea
Binary files /dev/null and b/Output/Themes/Vocaluxe 2024/InstrumentalIcon.png differ
diff --git a/Output/Themes/Vocaluxe 2024/Screens/ScreenSong.xml b/Output/Themes/Vocaluxe 2024/Screens/ScreenSong.xml
index 5cb66661..484f4c5a 100644
--- a/Output/Themes/Vocaluxe 2024/Screens/ScreenSong.xml
+++ b/Output/Themes/Vocaluxe 2024/Screens/ScreenSong.xml
@@ -2,7 +2,7 @@
ScreenSong
- 13
+ 14
@@ -906,6 +906,8 @@
VideoIcon
MedleyCalcIcon
MedleyTagIcon
+ InstumentalIcon
+ VocalsIcon
1
1
@@ -1015,7 +1017,7 @@
DuetIcon
- 240
+ 170
795
60
60
@@ -1026,7 +1028,7 @@
RapIcon
- 360
+ 260
795
60
60
@@ -1037,7 +1039,7 @@
VideoIcon
- 120
+ 80
795
60
60
@@ -1048,7 +1050,7 @@
MedleyCalcIcon
- 480
+ 350
795
60
60
@@ -1059,13 +1061,35 @@
MedleyTagIcon
- 480
+ 350
795
60
60
-1
-
+
+
+ InstrumentalIcon
+
+
+ 440
+ 795
+ 60
+ 60
+ -1
+
+
+
+ VocalsIcon
+
+
+ 530
+ 795
+ 60
+ 60
+ -1
+
+
15
@@ -1167,7 +1191,7 @@
DuetIcon
- 240
+ 170
795
60
60
@@ -1178,7 +1202,7 @@
RapIcon
- 360
+ 260
795
60
60
@@ -1189,7 +1213,7 @@
VideoIcon
- 120
+ 80
795
60
60
@@ -1200,7 +1224,7 @@
MedleyCalcIcon
- 480
+ 350
795
60
60
@@ -1211,13 +1235,35 @@
MedleyTagIcon
- 480
+ 350
795
60
60
-1
+
+ InstrumentalIcon
+
+
+ 440
+ 795
+ 60
+ 60
+ -1
+
+
+
+ VocalsIcon
+
+
+ 530
+ 795
+ 60
+ 60
+ -1
+
+
diff --git a/Output/Themes/Vocaluxe 2024/VocalsIcon.png b/Output/Themes/Vocaluxe 2024/VocalsIcon.png
new file mode 100644
index 00000000..1021787c
Binary files /dev/null and b/Output/Themes/Vocaluxe 2024/VocalsIcon.png differ
diff --git a/Vocaluxe/Screens/CScreenSong.cs b/Vocaluxe/Screens/CScreenSong.cs
index d78d7fd0..15a6c58b 100644
--- a/Vocaluxe/Screens/CScreenSong.cs
+++ b/Vocaluxe/Screens/CScreenSong.cs
@@ -43,7 +43,7 @@ namespace Vocaluxe.Screens
// Version number for theme files. Increment it, if you've changed something on the theme files!
protected override int _ScreenVersion
{
- get { return 13; }
+ get { return 14; }
}
private const string _TextCategory = "TextCategory";
diff --git a/VocaluxeLib/Menu/SongMenu/CSongMenuFramework.cs b/VocaluxeLib/Menu/SongMenu/CSongMenuFramework.cs
index a5a32f9d..7daa889d 100644
--- a/VocaluxeLib/Menu/SongMenu/CSongMenuFramework.cs
+++ b/VocaluxeLib/Menu/SongMenu/CSongMenuFramework.cs
@@ -1,4 +1,4 @@
-#region license
+#region license
// This file is part of Vocaluxe.
//
// Vocaluxe is free software: you can redistribute it and/or modify
@@ -34,6 +34,8 @@ namespace VocaluxeLib.Menu.SongMenu
public string VideoIcon;
public string MedleyCalcIcon;
public string MedleyTagIcon;
+ public string InstrumentalIcon;
+ public string VocalsIcon;
public SThemeColor Color;
//public SThemeSongMenuBook songMenuBook;
@@ -70,6 +72,8 @@ namespace VocaluxeLib.Menu.SongMenu
public SThemeStatic StaticTextBG;
public SThemeStatic StaticDuetIcon;
public SThemeStatic StaticRapIcon;
+ public SThemeStatic StaticInstrumentalIcon;
+ public SThemeStatic StaticVocalsIcon;
public SThemeStatic StaticVideoIcon;
public SThemeStatic StaticMedleyCalcIcon;
public SThemeStatic StaticMedleyTagIcon;
@@ -120,6 +124,8 @@ namespace VocaluxeLib.Menu.SongMenu
public SThemeStatic StaticTextBG;
public SThemeStatic StaticDuetIcon;
public SThemeStatic StaticRapIcon;
+ public SThemeStatic StaticInstrumentalIcon;
+ public SThemeStatic StaticVocalsIcon;
public SThemeStatic StaticVideoIcon;
public SThemeStatic StaticMedleyCalcIcon;
public SThemeStatic StaticMedleyTagIcon;
diff --git a/VocaluxeLib/Menu/SongMenu/CSongMenuList.cs b/VocaluxeLib/Menu/SongMenu/CSongMenuList.cs
index e2003a06..6072f7d7 100644
--- a/VocaluxeLib/Menu/SongMenu/CSongMenuList.cs
+++ b/VocaluxeLib/Menu/SongMenu/CSongMenuList.cs
@@ -37,6 +37,8 @@ namespace VocaluxeLib.Menu.SongMenu
private readonly CStatic _VideoIcon;
private readonly CStatic _MedleyCalcIcon;
private readonly CStatic _MedleyTagIcon;
+ private readonly CStatic _InstrumentalIcon;
+ private readonly CStatic _VocalsIcon;
private CTextureRef _CoverBigBGTexture;
private CTextureRef _CoverBGTexture;
@@ -128,7 +130,9 @@ namespace VocaluxeLib.Menu.SongMenu
_VideoIcon = new CStatic(_Theme.SongMenuList.StaticVideoIcon, _PartyModeID);
_MedleyCalcIcon = new CStatic(_Theme.SongMenuList.StaticMedleyCalcIcon, _PartyModeID);
_MedleyTagIcon = new CStatic(_Theme.SongMenuList.StaticMedleyTagIcon, _PartyModeID);
- _SubElements.AddRange(new IMenuElement[] {_Artist, _Title, _SongLength, _SongYear, _DuetIcon, _RapIcon, _VideoIcon, _MedleyCalcIcon, _MedleyTagIcon});
+ _InstrumentalIcon = new CStatic(_Theme.SongMenuList.StaticInstrumentalIcon, _PartyModeID);
+ _VocalsIcon = new CStatic(_Theme.SongMenuList.StaticVocalsIcon, _PartyModeID);
+ _SubElements.AddRange(new IMenuElement[] {_Artist, _Title, _SongLength, _SongYear, _DuetIcon, _RapIcon, _VideoIcon, _MedleyCalcIcon, _MedleyTagIcon, _InstrumentalIcon, _VocalsIcon});
}
private void _ReadSubTheme()
@@ -142,6 +146,8 @@ namespace VocaluxeLib.Menu.SongMenu
_Theme.SongMenuList.StaticRapIcon = (SThemeStatic)_RapIcon.GetTheme();
_Theme.SongMenuList.StaticMedleyCalcIcon = (SThemeStatic)_MedleyCalcIcon.GetTheme();
_Theme.SongMenuList.StaticMedleyTagIcon = (SThemeStatic)_MedleyTagIcon.GetTheme();
+ _Theme.SongMenuList.StaticInstrumentalIcon = (SThemeStatic)_InstrumentalIcon.GetTheme();
+ _Theme.SongMenuList.StaticVocalsIcon = (SThemeStatic)_VocalsIcon.GetTheme();
_Theme.SongMenuList.StaticTextBG = (SThemeStatic)_TextBG.GetTheme();
_Theme.SongMenuList.StaticVideoIcon = (SThemeStatic)_VideoIcon.GetTheme();
}
@@ -229,6 +235,8 @@ namespace VocaluxeLib.Menu.SongMenu
_VideoIcon.Visible = false;
_MedleyCalcIcon.Visible = false;
_MedleyTagIcon.Visible = false;
+ _InstrumentalIcon.Visible = false;
+ _VocalsIcon.Visible = false;
_Length = -1f;
//Check if nothing is selected (for preview)
@@ -259,6 +267,8 @@ namespace VocaluxeLib.Menu.SongMenu
_VideoIcon.Visible = song.VideoFileName != "";
_MedleyCalcIcon.Visible = song.Medley.Source == EDataSource.Calculated;
_MedleyTagIcon.Visible = song.Medley.Source == EDataSource.Tag;
+ _InstrumentalIcon.Visible = song.HasInstrumental();
+ _VocalsIcon.Visible = song.HasVocals();
_UpdateLength(song);
}
diff --git a/VocaluxeLib/Menu/SongMenu/CSongMenuTileBoard.cs b/VocaluxeLib/Menu/SongMenu/CSongMenuTileBoard.cs
index 621066e2..0d54ce25 100644
--- a/VocaluxeLib/Menu/SongMenu/CSongMenuTileBoard.cs
+++ b/VocaluxeLib/Menu/SongMenu/CSongMenuTileBoard.cs
@@ -36,6 +36,8 @@ namespace VocaluxeLib.Menu.SongMenu
private CStatic _VideoIcon;
private CStatic _MedleyCalcIcon;
private CStatic _MedleyTagIcon;
+ private CStatic _InstrumentalIcon;
+ private CStatic _VocalsIcon;
private CTextureRef _CoverBigBGTexture;
private CTextureRef _CoverBGTexture;
@@ -123,7 +125,9 @@ namespace VocaluxeLib.Menu.SongMenu
_VideoIcon = new CStatic(_Theme.SongMenuTileBoard.StaticVideoIcon, _PartyModeID);
_MedleyCalcIcon = new CStatic(_Theme.SongMenuTileBoard.StaticMedleyCalcIcon, _PartyModeID);
_MedleyTagIcon = new CStatic(_Theme.SongMenuTileBoard.StaticMedleyTagIcon, _PartyModeID);
- _SubElements.AddRange(new IMenuElement[] {_Artist, _Title, _SongLength, _SongYear, _DuetIcon, _RapIcon, _VideoIcon, _MedleyCalcIcon, _MedleyTagIcon});
+ _InstrumentalIcon = new CStatic(_Theme.SongMenuTileBoard.StaticInstrumentalIcon, _PartyModeID);
+ _VocalsIcon = new CStatic(_Theme.SongMenuTileBoard.StaticVocalsIcon, _PartyModeID);
+ _SubElements.AddRange(new IMenuElement[] {_Artist, _Title, _SongLength, _SongYear, _DuetIcon, _RapIcon, _VideoIcon, _MedleyCalcIcon, _MedleyTagIcon, _InstrumentalIcon, _VocalsIcon});
}
private void _UpdateTileSelection()
@@ -148,6 +152,8 @@ namespace VocaluxeLib.Menu.SongMenu
_Theme.SongMenuTileBoard.StaticMedleyTagIcon = (SThemeStatic)_MedleyTagIcon.GetTheme();
_Theme.SongMenuTileBoard.StaticTextBG = (SThemeStatic)_TextBG.GetTheme();
_Theme.SongMenuTileBoard.StaticVideoIcon = (SThemeStatic)_VideoIcon.GetTheme();
+ _Theme.SongMenuTileBoard.StaticInstrumentalIcon = (SThemeStatic)_InstrumentalIcon.GetTheme();
+ _Theme.SongMenuTileBoard.StaticVocalsIcon = (SThemeStatic)_VocalsIcon.GetTheme();
}
public override object GetTheme()
@@ -220,6 +226,8 @@ namespace VocaluxeLib.Menu.SongMenu
_VideoIcon.Visible = false;
_MedleyCalcIcon.Visible = false;
_MedleyTagIcon.Visible = false;
+ _InstrumentalIcon.Visible = false;
+ _VocalsIcon.Visible = false;
_Length = -1f;
//Check if nothing is selected (for preview)
@@ -250,6 +258,8 @@ namespace VocaluxeLib.Menu.SongMenu
_VideoIcon.Visible = song.VideoFileName != "";
_MedleyCalcIcon.Visible = song.Medley.Source == EDataSource.Calculated;
_MedleyTagIcon.Visible = song.Medley.Source == EDataSource.Tag;
+ _InstrumentalIcon.Visible = song.HasInstrumental();
+ _VocalsIcon.Visible = song.HasVocals();
_UpdateLength(song);
}