diff --git a/Output/Themes/Genius/Screens/ScreenSong.xml b/Output/Themes/Genius/Screens/ScreenSong.xml index 1b74ad72..851d7232 100644 --- a/Output/Themes/Genius/Screens/ScreenSong.xml +++ b/Output/Themes/Genius/Screens/ScreenSong.xml @@ -752,6 +752,7 @@ CoverTile DuetIcon + RapIcon VideoIcon MedleyCalcIcon MedleyTagIcon @@ -850,7 +851,18 @@ DuetIcon - 200 + 160 + 530 + 40 + 40 + -1 + + + + DuetIcon + + + 240 530 40 40 @@ -861,7 +873,7 @@ VideoIcon - 120 + 80 530 40 40 @@ -872,7 +884,7 @@ MedleyCalcIcon - 280 + 320 530 40 40 @@ -977,7 +989,18 @@ DuetIcon - 200 + 160 + 530 + 40 + 40 + -1 + + + + RapIcon + + + 240 530 40 40 @@ -988,7 +1011,7 @@ VideoIcon - 120 + 80 530 40 40 @@ -999,7 +1022,7 @@ MedleyCalcIcon - 280 + 320 530 40 40 @@ -1010,7 +1033,7 @@ MedleyTagIcon - 280 + 240 530 40 40 diff --git a/VocaluxeLib/Menu/SongMenu/CSongMenuFramework.cs b/VocaluxeLib/Menu/SongMenu/CSongMenuFramework.cs index 02cfac02..752215e0 100644 --- a/VocaluxeLib/Menu/SongMenu/CSongMenuFramework.cs +++ b/VocaluxeLib/Menu/SongMenu/CSongMenuFramework.cs @@ -30,6 +30,7 @@ namespace VocaluxeLib.Menu.SongMenu public string CoverBackground; public string CoverBigBackground; public string DuetIcon; + public string RapIcon; public string VideoIcon; public string MedleyCalcIcon; public string MedleyTagIcon; @@ -67,6 +68,7 @@ namespace VocaluxeLib.Menu.SongMenu public SThemeStatic StaticCoverBig; public SThemeStatic StaticTextBG; public SThemeStatic StaticDuetIcon; + public SThemeStatic StaticRapIcon; public SThemeStatic StaticVideoIcon; public SThemeStatic StaticMedleyCalcIcon; public SThemeStatic StaticMedleyTagIcon; @@ -115,6 +117,7 @@ namespace VocaluxeLib.Menu.SongMenu public SThemeStatic StaticCoverBig; public SThemeStatic StaticTextBG; public SThemeStatic StaticDuetIcon; + public SThemeStatic StaticRapIcon; public SThemeStatic StaticVideoIcon; public SThemeStatic StaticMedleyCalcIcon; public SThemeStatic StaticMedleyTagIcon; diff --git a/VocaluxeLib/Menu/SongMenu/CSongMenuList.cs b/VocaluxeLib/Menu/SongMenu/CSongMenuList.cs index 61b9a73c..c420b829 100644 --- a/VocaluxeLib/Menu/SongMenu/CSongMenuList.cs +++ b/VocaluxeLib/Menu/SongMenu/CSongMenuList.cs @@ -33,6 +33,7 @@ namespace VocaluxeLib.Menu.SongMenu private readonly CStatic _CoverBig; private readonly CStatic _TextBG; private readonly CStatic _DuetIcon; + private readonly CStatic _RapIcon; private readonly CStatic _VideoIcon; private readonly CStatic _MedleyCalcIcon; private readonly CStatic _MedleyTagIcon; @@ -121,10 +122,11 @@ namespace VocaluxeLib.Menu.SongMenu _CoverBig = new CStatic(_Theme.SongMenuList.StaticCoverBig, _PartyModeID); _TextBG = new CStatic(_Theme.SongMenuList.StaticTextBG, _PartyModeID); _DuetIcon = new CStatic(_Theme.SongMenuList.StaticDuetIcon, _PartyModeID); + _RapIcon = new CStatic(_Theme.SongMenuList.StaticRapIcon, _PartyModeID); _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, _DuetIcon, _VideoIcon, _MedleyCalcIcon, _MedleyTagIcon}); + _SubElements.AddRange(new IMenuElement[] {_Artist, _Title, _SongLength, _DuetIcon, _RapIcon, _VideoIcon, _MedleyCalcIcon, _MedleyTagIcon}); } private void _ReadSubTheme() @@ -134,6 +136,7 @@ namespace VocaluxeLib.Menu.SongMenu _Theme.SongMenuList.TextTitle = (SThemeText)_Title.GetTheme(); _Theme.SongMenuList.StaticCoverBig = (SThemeStatic)_CoverBig.GetTheme(); _Theme.SongMenuList.StaticDuetIcon = (SThemeStatic)_DuetIcon.GetTheme(); + _Theme.SongMenuList.StaticRapIcon = (SThemeStatic)_RapIcon.GetTheme(); _Theme.SongMenuList.StaticMedleyCalcIcon = (SThemeStatic)_MedleyCalcIcon.GetTheme(); _Theme.SongMenuList.StaticMedleyTagIcon = (SThemeStatic)_MedleyTagIcon.GetTheme(); _Theme.SongMenuList.StaticTextBG = (SThemeStatic)_TextBG.GetTheme(); @@ -218,6 +221,7 @@ namespace VocaluxeLib.Menu.SongMenu _Title.Text = String.Empty; _SongLength.Text = String.Empty; _DuetIcon.Visible = false; + _RapIcon.Visible = false; _VideoIcon.Visible = false; _MedleyCalcIcon.Visible = false; _MedleyTagIcon.Visible = false; @@ -246,6 +250,7 @@ namespace VocaluxeLib.Menu.SongMenu _Artist.Text = song.Artist; _Title.Text = song.Title; _DuetIcon.Visible = song.IsDuet; + _RapIcon.Visible = song.IsRap; _VideoIcon.Visible = song.VideoFileName != ""; _MedleyCalcIcon.Visible = song.Medley.Source == EDataSource.Calculated; _MedleyTagIcon.Visible = song.Medley.Source == EDataSource.Tag; diff --git a/VocaluxeLib/Menu/SongMenu/CSongMenuTileBoard.cs b/VocaluxeLib/Menu/SongMenu/CSongMenuTileBoard.cs index 478c918b..ac281cec 100644 --- a/VocaluxeLib/Menu/SongMenu/CSongMenuTileBoard.cs +++ b/VocaluxeLib/Menu/SongMenu/CSongMenuTileBoard.cs @@ -32,6 +32,7 @@ namespace VocaluxeLib.Menu.SongMenu private CStatic _CoverBig; private CStatic _TextBG; private CStatic _DuetIcon; + private CStatic _RapIcon; private CStatic _VideoIcon; private CStatic _MedleyCalcIcon; private CStatic _MedleyTagIcon; @@ -116,10 +117,11 @@ namespace VocaluxeLib.Menu.SongMenu _CoverBig = new CStatic(_Theme.SongMenuTileBoard.StaticCoverBig, _PartyModeID); _TextBG = new CStatic(_Theme.SongMenuTileBoard.StaticTextBG, _PartyModeID); _DuetIcon = new CStatic(_Theme.SongMenuTileBoard.StaticDuetIcon, _PartyModeID); + _RapIcon = new CStatic(_Theme.SongMenuTileBoard.StaticRapIcon, _PartyModeID); _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, _DuetIcon, _VideoIcon, _MedleyCalcIcon, _MedleyTagIcon}); + _SubElements.AddRange(new IMenuElement[] {_Artist, _Title, _SongLength, _DuetIcon, _RapIcon, _VideoIcon, _MedleyCalcIcon, _MedleyTagIcon}); } private void _UpdateTileSelection() @@ -138,6 +140,7 @@ namespace VocaluxeLib.Menu.SongMenu _Theme.SongMenuTileBoard.TextTitle = (SThemeText)_Title.GetTheme(); _Theme.SongMenuTileBoard.StaticCoverBig = (SThemeStatic)_CoverBig.GetTheme(); _Theme.SongMenuTileBoard.StaticDuetIcon = (SThemeStatic)_DuetIcon.GetTheme(); + _Theme.SongMenuTileBoard.StaticRapIcon = (SThemeStatic)_RapIcon.GetTheme(); _Theme.SongMenuTileBoard.StaticMedleyCalcIcon = (SThemeStatic)_MedleyCalcIcon.GetTheme(); _Theme.SongMenuTileBoard.StaticMedleyTagIcon = (SThemeStatic)_MedleyTagIcon.GetTheme(); _Theme.SongMenuTileBoard.StaticTextBG = (SThemeStatic)_TextBG.GetTheme(); @@ -209,6 +212,7 @@ namespace VocaluxeLib.Menu.SongMenu _Title.Text = String.Empty; _SongLength.Text = String.Empty; _DuetIcon.Visible = false; + _RapIcon.Visible = false; _VideoIcon.Visible = false; _MedleyCalcIcon.Visible = false; _MedleyTagIcon.Visible = false; @@ -237,6 +241,7 @@ namespace VocaluxeLib.Menu.SongMenu _Artist.Text = song.Artist; _Title.Text = song.Title; _DuetIcon.Visible = song.IsDuet; + _RapIcon.Visible = song.IsRap; _VideoIcon.Visible = song.VideoFileName != ""; _MedleyCalcIcon.Visible = song.Medley.Source == EDataSource.Calculated; _MedleyTagIcon.Visible = song.Medley.Source == EDataSource.Tag; diff --git a/VocaluxeLib/Songs/CSong.cs b/VocaluxeLib/Songs/CSong.cs index e6ddaf4d..67e91585 100644 --- a/VocaluxeLib/Songs/CSong.cs +++ b/VocaluxeLib/Songs/CSong.cs @@ -165,6 +165,7 @@ namespace VocaluxeLib.Songs { get { return Notes.VoiceCount > 1; } } + public bool IsRap = false; public readonly List Editions = new List(); public readonly List Genres = new List(); diff --git a/VocaluxeLib/Songs/CSongLoader.cs b/VocaluxeLib/Songs/CSongLoader.cs index 48a2d324..7f8664ed 100644 --- a/VocaluxeLib/Songs/CSongLoader.cs +++ b/VocaluxeLib/Songs/CSongLoader.cs @@ -619,9 +619,15 @@ namespace VocaluxeLib.Songs else if (tag.Equals('F')) noteType = ENoteType.Freestyle; else if (tag.Equals('R')) + { noteType = ENoteType.Rap; + _Song.IsRap = true; + } else if (tag.Equals('G')) + { noteType = ENoteType.RapGolden; + _Song.IsRap = true; + } else noteType = ENoteType.Normal;