Merge remote-tracking branch 'remotes/Flamefire/Better_note_timing' into develop
This commit is contained in:
commit
406e75408b
33 files changed
+1175
-1327
No files matched your search
+30
@@ -0,0 +1,30 @@
|
||||
obj
|
||||
Output/Songs
|
||||
*.mp4
|
||||
*.pdb
|
||||
/Output/Benchmark.log
|
||||
|
||||
/Output/CoverDB.sqlite
|
||||
|
||||
/Output/HighscoreDB.sqlite
|
||||
|
||||
/Output/PartyModes/*/Code/*
|
||||
|
||||
/Output/Vocaluxe.exe*
|
||||
|
||||
/Output/Vocaluxe.vshost.exe*
|
||||
|
||||
/Output/VocaluxeLib.dll
|
||||
|
||||
*.psess
|
||||
|
||||
/*.vsp
|
||||
|
||||
/*.ctl
|
||||
|
||||
/Output/Registration.xml
|
||||
|
||||
/Vocaluxe.suo
|
||||
/Vocaluxe/Vocaluxe.csproj.user
|
||||
|
||||
/Output/Config.xml
|
||||
+150
-179
@@ -6,7 +6,6 @@ using System.Text;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Windows.Forms;
|
||||
using System.Xml;
|
||||
using System.Xml.XPath;
|
||||
|
||||
using OpenTK.Platform;
|
||||
|
||||
@@ -80,6 +79,8 @@ namespace Vocaluxe.Base
|
||||
public static string Language = "English";
|
||||
public static EOffOn LyricsOnTop = EOffOn.TR_CONFIG_OFF;
|
||||
public static string[] Players = new string[CSettings.MaxNumPlayer];
|
||||
|
||||
public static float MinLineBreakTime = 0.1f; //Minimum time to show the text before it is (to be) sung (if possible)
|
||||
|
||||
// Video
|
||||
public static EVideoDecoder VideoDecoder = EVideoDecoder.FFmpeg;
|
||||
@@ -121,196 +122,163 @@ namespace Vocaluxe.Base
|
||||
public static bool LoadConfig()
|
||||
{
|
||||
#region Inits
|
||||
bool loaded = false;
|
||||
XPathDocument xPathDoc = null;
|
||||
XPathNavigator navigator = null;
|
||||
CXMLReader xmlReader;
|
||||
|
||||
try
|
||||
{
|
||||
xPathDoc = new XPathDocument(CSettings.sFileConfig);
|
||||
navigator = xPathDoc.CreateNavigator();
|
||||
loaded = true;
|
||||
xmlReader = new CXMLReader(CSettings.sFileConfig);
|
||||
}
|
||||
catch (Exception)
|
||||
catch (Exception e)
|
||||
{
|
||||
CLog.LogError("Error opening Config.xml (FileName: " + CSettings.sFileConfig);
|
||||
loaded = false;
|
||||
if (navigator != null)
|
||||
navigator = null;
|
||||
|
||||
if (xPathDoc != null)
|
||||
xPathDoc = null;
|
||||
CLog.LogError("Error opening Config.xml " + CSettings.sFileConfig + ": " + e.Message);
|
||||
return false;
|
||||
}
|
||||
#endregion Inits
|
||||
|
||||
if (loaded)
|
||||
string value = string.Empty;
|
||||
|
||||
#region Debug
|
||||
xmlReader.TryGetEnumValue<EDebugLevel>("//root/Debug/DebugLevel", ref DebugLevel);
|
||||
#endregion Debug
|
||||
|
||||
#region Graphics
|
||||
xmlReader.TryGetEnumValue<ERenderer>("//root/Graphics/Renderer", ref Renderer);
|
||||
xmlReader.TryGetEnumValue<ETextureQuality>("//root/Graphics/TextureQuality", ref TextureQuality);
|
||||
xmlReader.TryGetIntValueRange("//root/Graphics/CoverSize", ref CoverSize, 32, 1024);
|
||||
|
||||
xmlReader.TryGetIntValue("//root/Graphics/ScreenW", ref ScreenW);
|
||||
xmlReader.TryGetIntValue("//root/Graphics/ScreenH", ref ScreenH);
|
||||
xmlReader.TryGetEnumValue<EAntiAliasingModes>("//root/Graphics/AAMode", ref AAMode);
|
||||
xmlReader.TryGetEnumValue<EColorDeep>("//root/Graphics/Colors", ref Colors);
|
||||
xmlReader.TryGetFloatValue("//root/Graphics/MaxFPS", ref MaxFPS);
|
||||
xmlReader.TryGetEnumValue<EOffOn>("//root/Graphics/VSync", ref VSync);
|
||||
xmlReader.TryGetEnumValue<EOffOn>("//root/Graphics/FullScreen", ref FullScreen);
|
||||
xmlReader.TryGetFloatValue("//root/Graphics/FadeTime", ref FadeTime);
|
||||
#endregion Graphics
|
||||
|
||||
#region Theme
|
||||
xmlReader.GetValue("//root/Theme/Name", ref Theme, Theme);
|
||||
xmlReader.GetValue("//root/Theme/Skin", ref Skin, Skin);
|
||||
xmlReader.GetValue("//root/Theme/Cover", ref CoverTheme, CoverTheme);
|
||||
xmlReader.TryGetEnumValue("//root/Theme/DrawNoteLines", ref DrawNoteLines);
|
||||
xmlReader.TryGetEnumValue("//root/Theme/DrawToneHelper", ref DrawToneHelper);
|
||||
xmlReader.TryGetEnumValue("//root/Theme/TimerLook", ref TimerLook);
|
||||
xmlReader.TryGetEnumValue("//root/Theme/PlayerInfo", ref PlayerInfo);
|
||||
xmlReader.TryGetEnumValue("//root/Theme/FadePlayerInfo", ref FadePlayerInfo);
|
||||
xmlReader.TryGetEnumValue("//root/Theme/CoverLoading", ref CoverLoading);
|
||||
xmlReader.TryGetEnumValue("//root/Theme/LyricStyle", ref LyricStyle);
|
||||
#endregion Theme
|
||||
|
||||
#region Sound
|
||||
xmlReader.TryGetEnumValue<EPlaybackLib>("//root/Sound/PlayBackLib", ref PlayBackLib);
|
||||
xmlReader.TryGetEnumValue<ERecordLib>("//root/Sound/RecordLib", ref RecordLib);
|
||||
xmlReader.TryGetEnumValue<EBufferSize>("//root/Sound/AudioBufferSize", ref AudioBufferSize);
|
||||
|
||||
xmlReader.TryGetIntValueRange("//root/Sound/AudioLatency", ref AudioLatency, -500, 500);
|
||||
|
||||
xmlReader.TryGetEnumValue("//root/Sound/BackgroundMusic", ref BackgroundMusic);
|
||||
xmlReader.TryGetIntValueRange("//root/Sound/BackgroundMusicVolume", ref BackgroundMusicVolume);
|
||||
xmlReader.TryGetEnumValue("//root/Sound/BackgroundMusicSource", ref BackgroundMusicSource);
|
||||
xmlReader.TryGetIntValueRange("//root/Sound/PreviewMusicVolume", ref PreviewMusicVolume);
|
||||
xmlReader.TryGetIntValueRange("//root/Sound/GameMusicVolume", ref GameMusicVolume);
|
||||
#endregion Sound
|
||||
|
||||
#region Game
|
||||
// Songfolder
|
||||
value = string.Empty;
|
||||
int i = 1;
|
||||
while (xmlReader.GetValue("//root/Game/SongFolder" + i.ToString(), ref value, value))
|
||||
{
|
||||
string value = string.Empty;
|
||||
if (i == 1)
|
||||
SongFolder.Clear();
|
||||
|
||||
#region Debug
|
||||
CHelper.TryGetEnumValueFromXML<EDebugLevel>("//root/Debug/DebugLevel", navigator, ref DebugLevel);
|
||||
#endregion Debug
|
||||
|
||||
#region Graphics
|
||||
CHelper.TryGetEnumValueFromXML<ERenderer>("//root/Graphics/Renderer", navigator, ref Renderer);
|
||||
CHelper.TryGetEnumValueFromXML<ETextureQuality>("//root/Graphics/TextureQuality", navigator, ref TextureQuality);
|
||||
CHelper.TryGetIntValueFromXML("//root/Graphics/CoverSize", navigator, ref CoverSize);
|
||||
if (CoverSize > 1024)
|
||||
CoverSize = 1024;
|
||||
if (CoverSize < 32)
|
||||
CoverSize = 32;
|
||||
|
||||
CHelper.TryGetIntValueFromXML("//root/Graphics/ScreenW", navigator, ref ScreenW);
|
||||
CHelper.TryGetIntValueFromXML("//root/Graphics/ScreenH", navigator, ref ScreenH);
|
||||
CHelper.TryGetEnumValueFromXML<EAntiAliasingModes>("//root/Graphics/AAMode", navigator, ref AAMode);
|
||||
CHelper.TryGetEnumValueFromXML<EColorDeep>("//root/Graphics/Colors", navigator, ref Colors);
|
||||
CHelper.TryGetFloatValueFromXML("//root/Graphics/MaxFPS", navigator, ref MaxFPS);
|
||||
CHelper.TryGetEnumValueFromXML<EOffOn>("//root/Graphics/VSync", navigator, ref VSync);
|
||||
CHelper.TryGetEnumValueFromXML<EOffOn>("//root/Graphics/FullScreen", navigator, ref FullScreen);
|
||||
CHelper.TryGetFloatValueFromXML("//root/Graphics/FadeTime", navigator, ref FadeTime);
|
||||
#endregion Graphics
|
||||
|
||||
#region Theme
|
||||
CHelper.GetValueFromXML("//root/Theme/Name", navigator, ref Theme, Theme);
|
||||
CHelper.GetValueFromXML("//root/Theme/Skin", navigator, ref Skin, Skin);
|
||||
CHelper.GetValueFromXML("//root/Theme/Cover", navigator, ref CoverTheme, CoverTheme);
|
||||
CHelper.TryGetEnumValueFromXML("//root/Theme/DrawNoteLines", navigator, ref DrawNoteLines);
|
||||
CHelper.TryGetEnumValueFromXML("//root/Theme/DrawToneHelper", navigator, ref DrawToneHelper);
|
||||
CHelper.TryGetEnumValueFromXML("//root/Theme/TimerLook", navigator, ref TimerLook);
|
||||
CHelper.TryGetEnumValueFromXML("//root/Theme/PlayerInfo", navigator, ref PlayerInfo);
|
||||
CHelper.TryGetEnumValueFromXML("//root/Theme/FadePlayerInfo", navigator, ref FadePlayerInfo);
|
||||
CHelper.TryGetEnumValueFromXML("//root/Theme/CoverLoading", navigator, ref CoverLoading);
|
||||
CHelper.TryGetEnumValueFromXML("//root/Theme/LyricStyle", navigator, ref LyricStyle);
|
||||
#endregion Theme
|
||||
|
||||
#region Sound
|
||||
CHelper.TryGetEnumValueFromXML<EPlaybackLib>("//root/Sound/PlayBackLib", navigator, ref PlayBackLib);
|
||||
CHelper.TryGetEnumValueFromXML<ERecordLib>("//root/Sound/RecordLib", navigator, ref RecordLib);
|
||||
CHelper.TryGetEnumValueFromXML<EBufferSize>("//root/Sound/AudioBufferSize", navigator, ref AudioBufferSize);
|
||||
|
||||
CHelper.TryGetIntValueFromXML("//root/Sound/AudioLatency", navigator, ref AudioLatency);
|
||||
if (AudioLatency < -500)
|
||||
AudioLatency = -500;
|
||||
if (AudioLatency > 500)
|
||||
AudioLatency = 500;
|
||||
|
||||
CHelper.TryGetEnumValueFromXML("//root/Sound/BackgroundMusic", navigator, ref BackgroundMusic);
|
||||
CHelper.TryGetIntValueFromXML("//root/Sound/BackgroundMusicVolume", navigator, ref BackgroundMusicVolume);
|
||||
if (BackgroundMusicVolume < 0)
|
||||
BackgroundMusicVolume = 0;
|
||||
if (BackgroundMusicVolume > 100)
|
||||
BackgroundMusicVolume = 100;
|
||||
CHelper.TryGetEnumValueFromXML("//root/Sound/BackgroundMusicSource", navigator, ref BackgroundMusicSource);
|
||||
CHelper.TryGetIntValueFromXML("//root/Sound/PreviewMusicVolume", navigator, ref PreviewMusicVolume);
|
||||
if (PreviewMusicVolume < 0)
|
||||
PreviewMusicVolume = 0;
|
||||
if (PreviewMusicVolume > 100)
|
||||
PreviewMusicVolume = 100;
|
||||
CHelper.TryGetIntValueFromXML("//root/Sound/GameMusicVolume", navigator, ref GameMusicVolume);
|
||||
if (GameMusicVolume < 0)
|
||||
GameMusicVolume = 0;
|
||||
if (GameMusicVolume > 100)
|
||||
GameMusicVolume = 100;
|
||||
#endregion Sound
|
||||
|
||||
#region Game
|
||||
// Songfolder
|
||||
SongFolder.Add(value);
|
||||
value = string.Empty;
|
||||
int i = 1;
|
||||
while(CHelper.GetValueFromXML("//root/Game/SongFolder" + i.ToString(), navigator, ref value, value))
|
||||
{
|
||||
if (i == 1)
|
||||
SongFolder.Clear();
|
||||
|
||||
SongFolder.Add(value);
|
||||
value = string.Empty;
|
||||
i++;
|
||||
}
|
||||
|
||||
CHelper.TryGetEnumValueFromXML<ESongMenu>("//root/Game/SongMenu", navigator, ref SongMenu);
|
||||
CHelper.TryGetEnumValueFromXML<ESongSorting>("//root/Game/SongSorting", navigator, ref SongSorting);
|
||||
CHelper.TryGetEnumValueFromXML<EOffOn>("//root/Game/IgnoreArticles", navigator, ref IgnoreArticles);
|
||||
CHelper.TryGetFloatValueFromXML("//root/Game/ScoreAnimationTime", navigator, ref ScoreAnimationTime);
|
||||
CHelper.TryGetEnumValueFromXML<ETimerMode>("//root/Game/TimerMode", navigator, ref TimerMode);
|
||||
CHelper.TryGetIntValueFromXML("//root/Game/NumPlayer", navigator, ref NumPlayer);
|
||||
CHelper.TryGetEnumValueFromXML("//root/Game/Tabs", navigator, ref Tabs);
|
||||
CHelper.GetValueFromXML("//root/Game/Language", navigator, ref Language, Language);
|
||||
CHelper.TryGetEnumValueFromXML<EOffOn>("//root/Game/LyricsOnTop", navigator, ref LyricsOnTop);
|
||||
|
||||
if ((ScoreAnimationTime > 0 && ScoreAnimationTime < 1) || ScoreAnimationTime < 0)
|
||||
{
|
||||
ScoreAnimationTime = 1;
|
||||
}
|
||||
|
||||
if (NumPlayer < 1 || NumPlayer > CSettings.MaxNumPlayer)
|
||||
NumPlayer = 2;
|
||||
|
||||
List<string> _Languages = new List<string>();
|
||||
_Languages = CLanguage.GetLanguages();
|
||||
|
||||
bool _LangExists = false;
|
||||
|
||||
for (i = 0; i < _Languages.Count; i++)
|
||||
{
|
||||
if (_Languages[i] == Language)
|
||||
{
|
||||
_LangExists = true;
|
||||
}
|
||||
}
|
||||
|
||||
//TODO: What should we do, if English not exists?
|
||||
if(_LangExists == false){
|
||||
Language = "English";
|
||||
|
||||
}
|
||||
CLanguage.SetLanguage(Language);
|
||||
|
||||
//Read players from config
|
||||
for (i = 1; i <= CSettings.MaxNumPlayer; i++)
|
||||
{
|
||||
CHelper.GetValueFromXML("//root/Game/Players/Player" + i.ToString(), navigator, ref Players[i-1], string.Empty);
|
||||
}
|
||||
|
||||
#endregion Game
|
||||
|
||||
#region Video
|
||||
CHelper.TryGetEnumValueFromXML<EVideoDecoder>("//root/Video/VideoDecoder", navigator, ref VideoDecoder);
|
||||
CHelper.TryGetEnumValueFromXML<EOffOn>("//root/Video/VideoBackgrounds", navigator, ref VideoBackgrounds);
|
||||
CHelper.TryGetEnumValueFromXML<EOffOn>("//root/Video/VideoPreview", navigator, ref VideoPreview);
|
||||
CHelper.TryGetEnumValueFromXML<EOffOn>("//root/Video/VideosInSongs", navigator, ref VideosInSongs);
|
||||
CHelper.TryGetEnumValueFromXML<EOffOn>("//root/Video/VideosToBackground", navigator, ref VideosToBackground);
|
||||
|
||||
CHelper.TryGetEnumValueFromXML<EWebcamLib>("//root/Video/WebcamLib", navigator, ref WebcamLib);
|
||||
WebcamConfig = new SWebcamConfig();
|
||||
CHelper.GetValueFromXML("//root/Video/WebcamConfig/MonikerString", navigator, ref WebcamConfig.MonikerString, String.Empty);
|
||||
CHelper.TryGetIntValueFromXML("//root/Video/WebcamConfig/Framerate", navigator, ref WebcamConfig.Framerate);
|
||||
CHelper.TryGetIntValueFromXML("//root/Video/WebcamConfig/Width", navigator, ref WebcamConfig.Width);
|
||||
CHelper.TryGetIntValueFromXML("//root/Video/WebcamConfig/Height", navigator, ref WebcamConfig.Height);
|
||||
#endregion Video
|
||||
|
||||
#region Record
|
||||
MicConfig = new SMicConfig[CSettings.MaxNumPlayer];
|
||||
value = string.Empty;
|
||||
for (int p = 1; p <= CSettings.MaxNumPlayer; p++)
|
||||
{
|
||||
MicConfig[p - 1] = new SMicConfig(0);
|
||||
CHelper.GetValueFromXML("//root/Record/MicConfig" + p.ToString() + "/DeviceName", navigator, ref MicConfig[p - 1].DeviceName, String.Empty);
|
||||
CHelper.GetValueFromXML("//root/Record/MicConfig" + p.ToString() + "/DeviceDriver", navigator, ref MicConfig[p - 1].DeviceDriver, String.Empty);
|
||||
CHelper.GetValueFromXML("//root/Record/MicConfig" + p.ToString() + "/InputName", navigator, ref MicConfig[p - 1].InputName, String.Empty);
|
||||
CHelper.TryGetIntValueFromXML("//root/Record/MicConfig" + p.ToString() + "/Channel", navigator, ref MicConfig[p - 1].Channel);
|
||||
}
|
||||
|
||||
CHelper.TryGetIntValueFromXML("//root/Record/MicDelay", navigator, ref MicDelay);
|
||||
MicDelay = (int)(20 * Math.Round(MicDelay / 20.0));
|
||||
if (MicDelay < 0)
|
||||
MicDelay = 0;
|
||||
if (MicDelay > 500)
|
||||
MicDelay = 500;
|
||||
#endregion Record
|
||||
|
||||
return true;
|
||||
i++;
|
||||
}
|
||||
else return false;
|
||||
|
||||
xmlReader.TryGetEnumValue<ESongMenu>("//root/Game/SongMenu", ref SongMenu);
|
||||
xmlReader.TryGetEnumValue<ESongSorting>("//root/Game/SongSorting", ref SongSorting);
|
||||
xmlReader.TryGetEnumValue<EOffOn>("//root/Game/IgnoreArticles", ref IgnoreArticles);
|
||||
xmlReader.TryGetFloatValue("//root/Game/ScoreAnimationTime", ref ScoreAnimationTime);
|
||||
xmlReader.TryGetEnumValue<ETimerMode>("//root/Game/TimerMode", ref TimerMode);
|
||||
xmlReader.TryGetIntValue("//root/Game/NumPlayer", ref NumPlayer);
|
||||
xmlReader.TryGetEnumValue("//root/Game/Tabs", ref Tabs);
|
||||
xmlReader.GetValue("//root/Game/Language", ref Language, Language);
|
||||
xmlReader.TryGetEnumValue<EOffOn>("//root/Game/LyricsOnTop", ref LyricsOnTop);
|
||||
xmlReader.TryGetFloatValue("//root/Game/MinLineBreakTime", ref MinLineBreakTime);
|
||||
|
||||
if ((ScoreAnimationTime > 0 && ScoreAnimationTime < 1) || ScoreAnimationTime < 0)
|
||||
{
|
||||
ScoreAnimationTime = 1;
|
||||
}
|
||||
|
||||
if (MinLineBreakTime < 0)
|
||||
MinLineBreakTime = 0.1f;
|
||||
|
||||
if (NumPlayer < 1 || NumPlayer > CSettings.MaxNumPlayer)
|
||||
NumPlayer = 2;
|
||||
|
||||
List<string> _Languages = new List<string>();
|
||||
_Languages = CLanguage.GetLanguages();
|
||||
|
||||
bool _LangExists = false;
|
||||
|
||||
for (i = 0; i < _Languages.Count; i++)
|
||||
{
|
||||
if (_Languages[i] == Language)
|
||||
{
|
||||
_LangExists = true;
|
||||
}
|
||||
}
|
||||
|
||||
//TODO: What should we do, if English not exists?
|
||||
if(_LangExists == false){
|
||||
Language = "English";
|
||||
|
||||
}
|
||||
CLanguage.SetLanguage(Language);
|
||||
|
||||
//Read players from config
|
||||
for (i = 1; i <= CSettings.MaxNumPlayer; i++)
|
||||
{
|
||||
xmlReader.GetValue("//root/Game/Players/Player" + i.ToString(), ref Players[i - 1], string.Empty);
|
||||
}
|
||||
|
||||
#endregion Game
|
||||
|
||||
#region Video
|
||||
xmlReader.TryGetEnumValue<EVideoDecoder>("//root/Video/VideoDecoder", ref VideoDecoder);
|
||||
xmlReader.TryGetEnumValue<EOffOn>("//root/Video/VideoBackgrounds", ref VideoBackgrounds);
|
||||
xmlReader.TryGetEnumValue<EOffOn>("//root/Video/VideoPreview", ref VideoPreview);
|
||||
xmlReader.TryGetEnumValue<EOffOn>("//root/Video/VideosInSongs", ref VideosInSongs);
|
||||
xmlReader.TryGetEnumValue<EOffOn>("//root/Video/VideosToBackground", ref VideosToBackground);
|
||||
|
||||
xmlReader.TryGetEnumValue<EWebcamLib>("//root/Video/WebcamLib", ref WebcamLib);
|
||||
WebcamConfig = new SWebcamConfig();
|
||||
xmlReader.GetValue("//root/Video/WebcamConfig/MonikerString", ref WebcamConfig.MonikerString, String.Empty);
|
||||
xmlReader.TryGetIntValue("//root/Video/WebcamConfig/Framerate", ref WebcamConfig.Framerate);
|
||||
xmlReader.TryGetIntValue("//root/Video/WebcamConfig/Width", ref WebcamConfig.Width);
|
||||
xmlReader.TryGetIntValue("//root/Video/WebcamConfig/Height", ref WebcamConfig.Height);
|
||||
#endregion Video
|
||||
|
||||
#region Record
|
||||
MicConfig = new SMicConfig[CSettings.MaxNumPlayer];
|
||||
value = string.Empty;
|
||||
for (int p = 1; p <= CSettings.MaxNumPlayer; p++)
|
||||
{
|
||||
MicConfig[p - 1] = new SMicConfig(0);
|
||||
xmlReader.GetValue("//root/Record/MicConfig" + p.ToString() + "/DeviceName", ref MicConfig[p - 1].DeviceName, String.Empty);
|
||||
xmlReader.GetValue("//root/Record/MicConfig" + p.ToString() + "/DeviceDriver", ref MicConfig[p - 1].DeviceDriver, String.Empty);
|
||||
xmlReader.GetValue("//root/Record/MicConfig" + p.ToString() + "/InputName", ref MicConfig[p - 1].InputName, String.Empty);
|
||||
xmlReader.TryGetIntValue("//root/Record/MicConfig" + p.ToString() + "/Channel", ref MicConfig[p - 1].Channel);
|
||||
}
|
||||
|
||||
xmlReader.TryGetIntValueRange("//root/Record/MicDelay", ref MicDelay, 0, 500);
|
||||
MicDelay = (int)(20 * Math.Round(MicDelay / 20.0));
|
||||
#endregion Record
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public static bool SaveConfig()
|
||||
@@ -503,6 +471,9 @@ namespace Vocaluxe.Base
|
||||
writer.WriteComment("Lyrics also on Top of screen: " + CHelper.ListStrings(Enum.GetNames(typeof(EOffOn))));
|
||||
writer.WriteElementString("LyricsOnTop", Enum.GetName(typeof(EOffOn), LyricsOnTop));
|
||||
|
||||
writer.WriteComment("MinLineBreakTime: Value >= 0 in s. Minimum time the text is shown before it is to be sung");
|
||||
writer.WriteElementString("MinLineBreakTime", MinLineBreakTime.ToString());
|
||||
|
||||
writer.WriteComment("Default profile for players 1..." + CSettings.MaxNumPlayer.ToString() + ":");
|
||||
writer.WriteStartElement("Players");
|
||||
for (int i = 1; i <= CSettings.MaxNumPlayer; i++)
|
||||
|
||||
+9
-46
@@ -3,7 +3,6 @@ using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Text;
|
||||
using System.Xml;
|
||||
using System.Xml.XPath;
|
||||
|
||||
using Vocaluxe.Lib.Draw;
|
||||
using Vocaluxe.Menu;
|
||||
@@ -164,32 +163,14 @@ namespace Vocaluxe.Base
|
||||
|
||||
foreach (string file in files)
|
||||
{
|
||||
bool loaded = false;
|
||||
XPathDocument xPathDoc = null;
|
||||
XPathNavigator navigator = null;
|
||||
CXMLReader xmlReader = CXMLReader.OpenFile(Path.Combine(path, file));
|
||||
|
||||
try
|
||||
{
|
||||
xPathDoc = new XPathDocument(Path.Combine(path, file));
|
||||
navigator = xPathDoc.CreateNavigator();
|
||||
loaded = true;
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
loaded = false;
|
||||
if (navigator != null)
|
||||
navigator = null;
|
||||
|
||||
if (xPathDoc != null)
|
||||
xPathDoc = null;
|
||||
}
|
||||
|
||||
if (loaded)
|
||||
if (xmlReader != null)
|
||||
{
|
||||
SCoverTheme coverTheme = new SCoverTheme();
|
||||
|
||||
CHelper.GetValueFromXML("//root/Info/Name", navigator, ref coverTheme.Name, String.Empty);
|
||||
CHelper.GetValueFromXML("//root/Info/Folder", navigator, ref coverTheme.Folder, String.Empty);
|
||||
xmlReader.GetValue("//root/Info/Name", ref coverTheme.Name, String.Empty);
|
||||
xmlReader.GetValue("//root/Info/Folder", ref coverTheme.Folder, String.Empty);
|
||||
|
||||
if (coverTheme.Folder != String.Empty && coverTheme.Name != String.Empty)
|
||||
{
|
||||
@@ -213,39 +194,21 @@ namespace Vocaluxe.Base
|
||||
if (coverTheme.Name != String.Empty)
|
||||
{
|
||||
|
||||
bool loaded = false;
|
||||
XPathDocument xPathDoc = null;
|
||||
XPathNavigator navigator = null;
|
||||
CXMLReader xmlReader = CXMLReader.OpenFile(Path.Combine(CSettings.sFolderCover, coverTheme.File));
|
||||
|
||||
try
|
||||
{
|
||||
xPathDoc = new XPathDocument(Path.Combine(CSettings.sFolderCover, coverTheme.File));
|
||||
navigator = xPathDoc.CreateNavigator();
|
||||
loaded = true;
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
loaded = false;
|
||||
if (navigator != null)
|
||||
navigator = null;
|
||||
|
||||
if (xPathDoc != null)
|
||||
xPathDoc = null;
|
||||
}
|
||||
|
||||
if (loaded)
|
||||
if (xmlReader != null)
|
||||
{
|
||||
lock (_MutexCover)
|
||||
{
|
||||
_Cover.Clear();
|
||||
List<string> cover = CHelper.GetValuesFromXML("Cover", navigator);
|
||||
List<string> cover = xmlReader.GetValues("Cover");
|
||||
for (int i = 0; i < cover.Count; i++)
|
||||
{
|
||||
SCover sk = new SCover();
|
||||
string name = String.Empty;
|
||||
string value = String.Empty;
|
||||
CHelper.GetValueFromXML("//root/Cover/" + cover[i] + "/Name", navigator, ref name, String.Empty);
|
||||
CHelper.GetValueFromXML("//root/Cover/" + cover[i] + "/Path", navigator, ref value, String.Empty);
|
||||
xmlReader.GetValue("//root/Cover/" + cover[i] + "/Name", ref name, String.Empty);
|
||||
xmlReader.GetValue("//root/Cover/" + cover[i] + "/Path", ref value, String.Empty);
|
||||
sk.Name = name;
|
||||
sk.Value = Path.Combine(coverTheme.Folder,value);
|
||||
if (File.Exists(Path.Combine(CSettings.sFolderCover, Path.Combine(coverTheme.Folder, value))))
|
||||
|
||||
+68
-81
@@ -9,7 +9,6 @@ using System.IO;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
using System.Xml;
|
||||
using System.Xml.XPath;
|
||||
|
||||
using Vocaluxe.Lib.Draw;
|
||||
using Vocaluxe.Menu;
|
||||
@@ -674,92 +673,80 @@ namespace Vocaluxe.Base
|
||||
/// <returns></returns>
|
||||
private static bool LoadFontList()
|
||||
{
|
||||
bool loaded = false;
|
||||
XPathDocument xPathDoc = null;
|
||||
XPathNavigator navigator = null;
|
||||
CXMLReader xmlReader;
|
||||
|
||||
try
|
||||
{
|
||||
xPathDoc = new XPathDocument(System.IO.Path.Combine(CSettings.sFolderFonts, CSettings.sFileFonts));
|
||||
navigator = xPathDoc.CreateNavigator();
|
||||
loaded = true;
|
||||
xmlReader = new CXMLReader(System.IO.Path.Combine(CSettings.sFolderFonts, CSettings.sFileFonts));
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
CLog.LogError("Error loading default fonts: " + e.Message);
|
||||
loaded = false;
|
||||
if (navigator != null)
|
||||
navigator = null;
|
||||
|
||||
if (xPathDoc != null)
|
||||
xPathDoc = null;
|
||||
return false;
|
||||
}
|
||||
_Fonts.Clear();
|
||||
|
||||
if (loaded)
|
||||
string value = string.Empty;
|
||||
int i = 1;
|
||||
while (xmlReader.GetValue("//root/Font" + i.ToString() + "/Folder", ref value, value))
|
||||
{
|
||||
string value = string.Empty;
|
||||
int i = 1;
|
||||
while (CHelper.GetValueFromXML("//root/Font" + i.ToString() + "/Folder", navigator, ref value, value))
|
||||
{
|
||||
string Folder = value;
|
||||
string Folder = value;
|
||||
|
||||
CHelper.GetValueFromXML("//root/Font" + i.ToString() + "/FileNormal", navigator, ref value, value);
|
||||
value = Path.Combine(Directory.GetCurrentDirectory(),
|
||||
Path.Combine(CSettings.sFolderFonts, Path.Combine(Folder, value)));
|
||||
CFont f = new CFont(value);
|
||||
SFont sf = new SFont();
|
||||
sf.Normal = f;
|
||||
xmlReader.GetValue("//root/Font" + i.ToString() + "/FileNormal", ref value, value);
|
||||
value = Path.Combine(Directory.GetCurrentDirectory(),
|
||||
Path.Combine(CSettings.sFolderFonts, Path.Combine(Folder, value)));
|
||||
CFont f = new CFont(value);
|
||||
SFont sf = new SFont();
|
||||
sf.Normal = f;
|
||||
|
||||
string name = String.Empty;
|
||||
CHelper.GetValueFromXML("//root/Font" + i.ToString() + "/Name", navigator, ref name, value);
|
||||
sf.Name = name;
|
||||
sf.IsThemeFont = false;
|
||||
sf.ThemeName = String.Empty;
|
||||
sf.PartyModeID = -1;
|
||||
string name = String.Empty;
|
||||
xmlReader.GetValue("//root/Font" + i.ToString() + "/Name", ref name, value);
|
||||
sf.Name = name;
|
||||
sf.IsThemeFont = false;
|
||||
sf.ThemeName = String.Empty;
|
||||
sf.PartyModeID = -1;
|
||||
|
||||
CHelper.GetValueFromXML("//root/Font" + i.ToString() + "/FileItalic", navigator, ref value, value);
|
||||
value = Path.Combine(Directory.GetCurrentDirectory(),
|
||||
Path.Combine(CSettings.sFolderFonts, Path.Combine(Folder, value)));
|
||||
f = new CFont(value);
|
||||
sf.Italic = f;
|
||||
xmlReader.GetValue("//root/Font" + i.ToString() + "/FileItalic", ref value, value);
|
||||
value = Path.Combine(Directory.GetCurrentDirectory(),
|
||||
Path.Combine(CSettings.sFolderFonts, Path.Combine(Folder, value)));
|
||||
f = new CFont(value);
|
||||
sf.Italic = f;
|
||||
|
||||
CHelper.GetValueFromXML("//root/Font" + i.ToString() + "/FileBold", navigator, ref value, value);
|
||||
value = Path.Combine(Directory.GetCurrentDirectory(),
|
||||
Path.Combine(CSettings.sFolderFonts, Path.Combine(Folder, value)));
|
||||
f = new CFont(value);
|
||||
sf.Bold = f;
|
||||
xmlReader.GetValue("//root/Font" + i.ToString() + "/FileBold", ref value, value);
|
||||
value = Path.Combine(Directory.GetCurrentDirectory(),
|
||||
Path.Combine(CSettings.sFolderFonts, Path.Combine(Folder, value)));
|
||||
f = new CFont(value);
|
||||
sf.Bold = f;
|
||||
|
||||
CHelper.GetValueFromXML("//root/Font" + i.ToString() + "/FileBoldItalic", navigator, ref value, value);
|
||||
value = Path.Combine(Directory.GetCurrentDirectory(),
|
||||
Path.Combine(CSettings.sFolderFonts, Path.Combine(Folder, value)));
|
||||
f = new CFont(value);
|
||||
sf.BoldItalic = f;
|
||||
xmlReader.GetValue("//root/Font" + i.ToString() + "/FileBoldItalic", ref value, value);
|
||||
value = Path.Combine(Directory.GetCurrentDirectory(),
|
||||
Path.Combine(CSettings.sFolderFonts, Path.Combine(Folder, value)));
|
||||
f = new CFont(value);
|
||||
sf.BoldItalic = f;
|
||||
|
||||
sf.Outline = 0f;
|
||||
CHelper.TryGetFloatValueFromXML("//root/Font" + i.ToString() + "/Outline", navigator, ref sf.Outline);
|
||||
sf.Outline = 0f;
|
||||
xmlReader.TryGetFloatValue("//root/Font" + i.ToString() + "/Outline", ref sf.Outline);
|
||||
|
||||
sf.OutlineColor = new SColorF(0f, 0f, 0f, 1f);
|
||||
CHelper.TryGetFloatValueFromXML("//root/Font" + i.ToString() + "/OutlineColorR", navigator, ref sf.OutlineColor.R);
|
||||
CHelper.TryGetFloatValueFromXML("//root/Font" + i.ToString() + "/OutlineColorG", navigator, ref sf.OutlineColor.G);
|
||||
CHelper.TryGetFloatValueFromXML("//root/Font" + i.ToString() + "/OutlineColorB", navigator, ref sf.OutlineColor.B);
|
||||
CHelper.TryGetFloatValueFromXML("//root/Font" + i.ToString() + "/OutlineColorA", navigator, ref sf.OutlineColor.A);
|
||||
sf.OutlineColor = new SColorF(0f, 0f, 0f, 1f);
|
||||
xmlReader.TryGetFloatValue("//root/Font" + i.ToString() + "/OutlineColorR", ref sf.OutlineColor.R);
|
||||
xmlReader.TryGetFloatValue("//root/Font" + i.ToString() + "/OutlineColorG", ref sf.OutlineColor.G);
|
||||
xmlReader.TryGetFloatValue("//root/Font" + i.ToString() + "/OutlineColorB", ref sf.OutlineColor.B);
|
||||
xmlReader.TryGetFloatValue("//root/Font" + i.ToString() + "/OutlineColorA", ref sf.OutlineColor.A);
|
||||
|
||||
_Fonts.Add(sf);
|
||||
i++;
|
||||
}
|
||||
_Fonts.Add(sf);
|
||||
i++;
|
||||
}
|
||||
return loaded;
|
||||
return true;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Loads theme fonts from skin file
|
||||
/// </summary>
|
||||
public static void LoadThemeFonts(string ThemeName, string FontFolder, XPathNavigator navigator)
|
||||
public static void LoadThemeFonts(string ThemeName, string FontFolder, CXMLReader xmlReader)
|
||||
{
|
||||
string value = string.Empty;
|
||||
int i = 1;
|
||||
while (CHelper.GetValueFromXML("//root/Fonts/Font" + i.ToString() + "/Folder", navigator, ref value, value))
|
||||
while (xmlReader.GetValue("//root/Fonts/Font" + i.ToString() + "/Folder", ref value, value))
|
||||
{
|
||||
SFont sf = new SFont();
|
||||
sf.Folder = value;
|
||||
@@ -770,42 +757,42 @@ namespace Vocaluxe.Base
|
||||
|
||||
bool ok = true;
|
||||
|
||||
ok &= CHelper.GetValueFromXML("//root/Fonts/Font" + i.ToString() + "/FileNormal", navigator, ref value, value);
|
||||
ok &= xmlReader.GetValue("//root/Fonts/Font" + i.ToString() + "/FileNormal", ref value, value);
|
||||
sf.FileNormal = value;
|
||||
value = Path.Combine(FontFolder, Path.Combine(sf.Folder, value));
|
||||
CFont f = new CFont(value);
|
||||
sf.Normal = f;
|
||||
|
||||
string name = String.Empty;
|
||||
ok &= CHelper.GetValueFromXML("//root/Fonts/Font" + i.ToString() + "/Name", navigator, ref name, value);
|
||||
ok &= xmlReader.GetValue("//root/Fonts/Font" + i.ToString() + "/Name", ref name, value);
|
||||
sf.Name = name;
|
||||
|
||||
ok &= CHelper.GetValueFromXML("//root/Fonts/Font" + i.ToString() + "/FileItalic", navigator, ref value, value);
|
||||
ok &= xmlReader.GetValue("//root/Fonts/Font" + i.ToString() + "/FileItalic", ref value, value);
|
||||
sf.FileItalic = value;
|
||||
value = Path.Combine(FontFolder, Path.Combine(sf.Folder, value));
|
||||
f = new CFont(value);
|
||||
sf.Italic = f;
|
||||
|
||||
ok &= CHelper.GetValueFromXML("//root/Fonts/Font" + i.ToString() + "/FileBold", navigator, ref value, value);
|
||||
ok &= xmlReader.GetValue("//root/Fonts/Font" + i.ToString() + "/FileBold", ref value, value);
|
||||
sf.FileBold = value;
|
||||
value = Path.Combine(FontFolder, Path.Combine(sf.Folder, value));
|
||||
f = new CFont(value);
|
||||
sf.Bold = f;
|
||||
|
||||
ok &= CHelper.GetValueFromXML("//root/Fonts/Font" + i.ToString() + "/FileBoldItalic", navigator, ref value, value);
|
||||
ok &= xmlReader.GetValue("//root/Fonts/Font" + i.ToString() + "/FileBoldItalic", ref value, value);
|
||||
sf.FileBoldItalic = value;
|
||||
value = Path.Combine(FontFolder, Path.Combine(sf.Folder, value));
|
||||
f = new CFont(value);
|
||||
sf.BoldItalic = f;
|
||||
|
||||
sf.Outline = 0f;
|
||||
ok &= CHelper.TryGetFloatValueFromXML("//root/Fonts/Font" + i.ToString() + "/Outline", navigator, ref sf.Outline);
|
||||
ok &= xmlReader.TryGetFloatValue("//root/Fonts/Font" + i.ToString() + "/Outline", ref sf.Outline);
|
||||
|
||||
sf.OutlineColor = new SColorF(0f, 0f, 0f, 1f);
|
||||
ok &= CHelper.TryGetFloatValueFromXML("//root/Fonts/Font" + i.ToString() + "/OutlineColorR", navigator, ref sf.OutlineColor.R);
|
||||
ok &= CHelper.TryGetFloatValueFromXML("//root/Fonts/Font" + i.ToString() + "/OutlineColorG", navigator, ref sf.OutlineColor.G);
|
||||
ok &= CHelper.TryGetFloatValueFromXML("//root/Fonts/Font" + i.ToString() + "/OutlineColorB", navigator, ref sf.OutlineColor.B);
|
||||
ok &= CHelper.TryGetFloatValueFromXML("//root/Fonts/Font" + i.ToString() + "/OutlineColorA", navigator, ref sf.OutlineColor.A);
|
||||
ok &= xmlReader.TryGetFloatValue("//root/Fonts/Font" + i.ToString() + "/OutlineColorR", ref sf.OutlineColor.R);
|
||||
ok &= xmlReader.TryGetFloatValue("//root/Fonts/Font" + i.ToString() + "/OutlineColorG", ref sf.OutlineColor.G);
|
||||
ok &= xmlReader.TryGetFloatValue("//root/Fonts/Font" + i.ToString() + "/OutlineColorB", ref sf.OutlineColor.B);
|
||||
ok &= xmlReader.TryGetFloatValue("//root/Fonts/Font" + i.ToString() + "/OutlineColorA", ref sf.OutlineColor.A);
|
||||
|
||||
if (ok)
|
||||
_Fonts.Add(sf);
|
||||
@@ -890,11 +877,11 @@ namespace Vocaluxe.Base
|
||||
/// <summary>
|
||||
/// Loads party mode fonts from skin file
|
||||
/// </summary>
|
||||
public static void LoadPartyModeFonts(int PartyModeID, string FontFolder, XPathNavigator navigator)
|
||||
public static void LoadPartyModeFonts(int PartyModeID, string FontFolder, CXMLReader xmlReader)
|
||||
{
|
||||
string value = string.Empty;
|
||||
int i = 1;
|
||||
while (CHelper.GetValueFromXML("//root/Fonts/Font" + i.ToString() + "/Folder", navigator, ref value, value))
|
||||
while (xmlReader.GetValue("//root/Fonts/Font" + i.ToString() + "/Folder", ref value, value))
|
||||
{
|
||||
SFont sf = new SFont();
|
||||
sf.Folder = value;
|
||||
@@ -905,42 +892,42 @@ namespace Vocaluxe.Base
|
||||
|
||||
bool ok = true;
|
||||
|
||||
ok &= CHelper.GetValueFromXML("//root/Fonts/Font" + i.ToString() + "/FileNormal", navigator, ref value, value);
|
||||
ok &= xmlReader.GetValue("//root/Fonts/Font" + i.ToString() + "/FileNormal", ref value, value);
|
||||
sf.FileNormal = value;
|
||||
value = Path.Combine(FontFolder, Path.Combine(sf.Folder, value));
|
||||
CFont f = new CFont(value);
|
||||
sf.Normal = f;
|
||||
|
||||
string name = String.Empty;
|
||||
ok &= CHelper.GetValueFromXML("//root/Fonts/Font" + i.ToString() + "/Name", navigator, ref name, value);
|
||||
ok &= xmlReader.GetValue("//root/Fonts/Font" + i.ToString() + "/Name", ref name, value);
|
||||
sf.Name = name;
|
||||
|
||||
ok &= CHelper.GetValueFromXML("//root/Fonts/Font" + i.ToString() + "/FileItalic", navigator, ref value, value);
|
||||
ok &= xmlReader.GetValue("//root/Fonts/Font" + i.ToString() + "/FileItalic", ref value, value);
|
||||
sf.FileItalic = value;
|
||||
value = Path.Combine(FontFolder, Path.Combine(sf.Folder, value));
|
||||
f = new CFont(value);
|
||||
sf.Italic = f;
|
||||
|
||||
ok &= CHelper.GetValueFromXML("//root/Fonts/Font" + i.ToString() + "/FileBold", navigator, ref value, value);
|
||||
ok &= xmlReader.GetValue("//root/Fonts/Font" + i.ToString() + "/FileBold", ref value, value);
|
||||
sf.FileBold = value;
|
||||
value = Path.Combine(FontFolder, Path.Combine(sf.Folder, value));
|
||||
f = new CFont(value);
|
||||
sf.Bold = f;
|
||||
|
||||
ok &= CHelper.GetValueFromXML("//root/Fonts/Font" + i.ToString() + "/FileBoldItalic", navigator, ref value, value);
|
||||
ok &= xmlReader.GetValue("//root/Fonts/Font" + i.ToString() + "/FileBoldItalic", ref value, value);
|
||||
sf.FileBoldItalic = value;
|
||||
value = Path.Combine(FontFolder, Path.Combine(sf.Folder, value));
|
||||
f = new CFont(value);
|
||||
sf.BoldItalic = f;
|
||||
|
||||
sf.Outline = 0f;
|
||||
ok &= CHelper.TryGetFloatValueFromXML("//root/Fonts/Font" + i.ToString() + "/Outline", navigator, ref sf.Outline);
|
||||
ok &= xmlReader.TryGetFloatValue("//root/Fonts/Font" + i.ToString() + "/Outline", ref sf.Outline);
|
||||
|
||||
sf.OutlineColor = new SColorF(0f, 0f, 0f, 1f);
|
||||
ok &= CHelper.TryGetFloatValueFromXML("//root/Fonts/Font" + i.ToString() + "/OutlineColorR", navigator, ref sf.OutlineColor.R);
|
||||
ok &= CHelper.TryGetFloatValueFromXML("//root/Fonts/Font" + i.ToString() + "/OutlineColorG", navigator, ref sf.OutlineColor.G);
|
||||
ok &= CHelper.TryGetFloatValueFromXML("//root/Fonts/Font" + i.ToString() + "/OutlineColorB", navigator, ref sf.OutlineColor.B);
|
||||
ok &= CHelper.TryGetFloatValueFromXML("//root/Fonts/Font" + i.ToString() + "/OutlineColorA", navigator, ref sf.OutlineColor.A);
|
||||
ok &= xmlReader.TryGetFloatValue("//root/Fonts/Font" + i.ToString() + "/OutlineColorR", ref sf.OutlineColor.R);
|
||||
ok &= xmlReader.TryGetFloatValue("//root/Fonts/Font" + i.ToString() + "/OutlineColorG", ref sf.OutlineColor.G);
|
||||
ok &= xmlReader.TryGetFloatValue("//root/Fonts/Font" + i.ToString() + "/OutlineColorB", ref sf.OutlineColor.B);
|
||||
ok &= xmlReader.TryGetFloatValue("//root/Fonts/Font" + i.ToString() + "/OutlineColorA", ref sf.OutlineColor.A);
|
||||
|
||||
if (ok)
|
||||
_Fonts.Add(sf);
|
||||
|
||||
+62
-85
@@ -4,7 +4,6 @@ using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Text;
|
||||
using System.Xml;
|
||||
using System.Xml.XPath;
|
||||
|
||||
using Vocaluxe.Menu;
|
||||
|
||||
@@ -241,125 +240,103 @@ namespace Vocaluxe.Base
|
||||
|
||||
private static bool LoadPartyLanguageFile(int PartyModeID, string file)
|
||||
{
|
||||
bool loaded = false;
|
||||
XPathDocument xPathDoc = null;
|
||||
XPathNavigator navigator = null;
|
||||
CXMLReader xmlReader;
|
||||
|
||||
try
|
||||
{
|
||||
xPathDoc = new XPathDocument(file);
|
||||
navigator = xPathDoc.CreateNavigator();
|
||||
loaded = true;
|
||||
xmlReader = new CXMLReader(file);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
loaded = false;
|
||||
if (navigator != null)
|
||||
navigator = null;
|
||||
|
||||
if (xPathDoc != null)
|
||||
xPathDoc = null;
|
||||
|
||||
CLog.LogError("Error opening Party Language File " + file + ": " + e.Message);
|
||||
return false;
|
||||
}
|
||||
|
||||
if (loaded)
|
||||
string value = string.Empty;
|
||||
if (xmlReader.GetValue("//resources/string[@name='language']", ref value, value))
|
||||
{
|
||||
string value = string.Empty;
|
||||
if (loaded == CHelper.GetValueFromXML("//resources/string[@name='language']", navigator, ref value, value))
|
||||
{
|
||||
int nr = GetLanguageNr(value);
|
||||
int nr = GetLanguageNr(value);
|
||||
|
||||
if (nr == -1)
|
||||
return true;
|
||||
|
||||
SPartyLanguage lang = new SPartyLanguage();
|
||||
lang.PartyModeID = PartyModeID;
|
||||
lang.Texts = new Hashtable();
|
||||
|
||||
List<string> texts = CHelper.GetAttributesFromXML("resources", navigator, "name");
|
||||
for (int i = 0; i < texts.Count; i++)
|
||||
{
|
||||
if (CHelper.GetValueFromXML("//resources/string[@name='" + texts[i] + "']", navigator, ref value, value))
|
||||
{
|
||||
try
|
||||
{
|
||||
lang.Texts.Add(texts[i], value);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
CLog.LogError("Error reading Party Language File " + file + ": " + e.Message);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
_Languages[nr].PartyModeTexts.Add(lang);
|
||||
if (nr == -1)
|
||||
return true;
|
||||
|
||||
SPartyLanguage lang = new SPartyLanguage();
|
||||
lang.PartyModeID = PartyModeID;
|
||||
lang.Texts = new Hashtable();
|
||||
|
||||
List<string> texts = xmlReader.GetAttributes("resources", "name");
|
||||
for (int i = 0; i < texts.Count; i++)
|
||||
{
|
||||
if (xmlReader.GetValue("//resources/string[@name='" + texts[i] + "']", ref value, value))
|
||||
{
|
||||
try
|
||||
{
|
||||
lang.Texts.Add(texts[i], value);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
CLog.LogError("Error reading Party Language File " + file + ": " + e.Message);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
_Languages[nr].PartyModeTexts.Add(lang);
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
CLog.LogError("Error reading Party Language File " + file);
|
||||
return false;
|
||||
}
|
||||
CLog.LogError("Error reading Party Language File " + file);
|
||||
return false;
|
||||
}
|
||||
|
||||
private static void LoadLanguageFile(string FileName)
|
||||
{
|
||||
bool loaded = false;
|
||||
XPathDocument xPathDoc = null;
|
||||
XPathNavigator navigator = null;
|
||||
SLanguage lang = new SLanguage();
|
||||
lang.LanguageFilePath = Path.Combine(CSettings.sFolderLanguages, FileName);
|
||||
|
||||
CXMLReader xmlReader;
|
||||
|
||||
try
|
||||
{
|
||||
xPathDoc = new XPathDocument(lang.LanguageFilePath);
|
||||
navigator = xPathDoc.CreateNavigator();
|
||||
loaded = true;
|
||||
xmlReader = new CXMLReader(lang.LanguageFilePath);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
loaded = false;
|
||||
if (navigator != null)
|
||||
navigator = null;
|
||||
|
||||
if (xPathDoc != null)
|
||||
xPathDoc = null;
|
||||
|
||||
CLog.LogError("Error opening Language File " + FileName + ": " + e.Message);
|
||||
CLog.LogError("Error opening Language File " + FileName + ": " + e.Message);
|
||||
return;
|
||||
}
|
||||
|
||||
if (loaded)
|
||||
string value = string.Empty;
|
||||
if (xmlReader.GetValue("//resources/string[@name='language']", ref value, value))
|
||||
{
|
||||
string value = string.Empty;
|
||||
if (CHelper.GetValueFromXML("//resources/string[@name='language']", navigator, ref value, value))
|
||||
lang.Name = value;
|
||||
|
||||
if (lang.Name == CSettings.FallbackLanguage)
|
||||
_FallbackLanguage = _Languages.Count;
|
||||
|
||||
lang.Texts = new Hashtable();
|
||||
lang.PartyModeTexts = new List<SPartyLanguage>();
|
||||
|
||||
List<string> texts = xmlReader.GetAttributes("resources", "name");
|
||||
for (int i = 0; i < texts.Count; i++)
|
||||
{
|
||||
lang.Name = value;
|
||||
|
||||
if (lang.Name == CSettings.FallbackLanguage)
|
||||
_FallbackLanguage = _Languages.Count;
|
||||
|
||||
lang.Texts = new Hashtable();
|
||||
lang.PartyModeTexts = new List<SPartyLanguage>();
|
||||
|
||||
List<string> texts = CHelper.GetAttributesFromXML("resources", navigator, "name");
|
||||
for (int i = 0; i < texts.Count; i++)
|
||||
if (xmlReader.GetValue("//resources/string[@name='" + texts[i] + "']", ref value, value))
|
||||
{
|
||||
if (CHelper.GetValueFromXML("//resources/string[@name='" + texts[i] + "']", navigator, ref value, value))
|
||||
try
|
||||
{
|
||||
try
|
||||
{
|
||||
lang.Texts.Add(texts[i], value);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
CLog.LogError("Error reading Language File " + FileName + ": " + e.Message);
|
||||
}
|
||||
lang.Texts.Add(texts[i], value);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
CLog.LogError("Error reading Language File " + FileName + ": " + e.Message);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
_Languages.Add(lang);
|
||||
|
||||
}
|
||||
|
||||
_Languages.Add(lang);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+27
-39
@@ -4,8 +4,6 @@ using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Reflection;
|
||||
using System.Text;
|
||||
using System.Xml;
|
||||
using System.Xml.XPath;
|
||||
|
||||
using Vocaluxe.Menu;
|
||||
using Vocaluxe.PartyModes;
|
||||
@@ -224,53 +222,31 @@ namespace Vocaluxe.Base
|
||||
pm.ScreenFiles = new List<string>();
|
||||
pm.NoErrors = false;
|
||||
|
||||
bool loaded = false;
|
||||
XPathDocument xPathDoc = null;
|
||||
XPathNavigator navigator = null;
|
||||
CXMLReader xmlReader;
|
||||
|
||||
try
|
||||
{
|
||||
xPathDoc = new XPathDocument(file);
|
||||
navigator = xPathDoc.CreateNavigator();
|
||||
loaded = true;
|
||||
xmlReader = new CXMLReader(file);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
loaded = false;
|
||||
if (navigator != null)
|
||||
navigator = null;
|
||||
|
||||
if (xPathDoc != null)
|
||||
xPathDoc = null;
|
||||
|
||||
CLog.LogError("Error opening party mode file " + file + ": " + e.Message);
|
||||
|
||||
return pm;
|
||||
}
|
||||
|
||||
if (loaded)
|
||||
{
|
||||
loaded &= CHelper.TryGetIntValueFromXML("//root/PartyModeSystemVersion", navigator, ref pm.PartyModeSystemVersion);
|
||||
loaded &= CHelper.GetValueFromXML("//root/Info/Name", navigator, ref pm.Name, "ERROR Name");
|
||||
loaded &= CHelper.GetValueFromXML("//root/Info/Description", navigator, ref pm.Description, "ERROR Description");
|
||||
loaded &= CHelper.GetValueFromXML("//root/Info/Author", navigator, ref pm.Author, "ERROR Author");
|
||||
loaded &= CHelper.GetValueFromXML("//root/Info/Folder", navigator, ref pm.Folder, "ERROR Folder");
|
||||
loaded &= CHelper.GetValueFromXML("//root/Info/PartyModeFile", navigator, ref pm.PartyModeFile, "ERROR PartyModeFile");
|
||||
loaded &= CHelper.GetInnerValuesFromXML("PartyScreens", navigator, ref pm.ScreenFiles);
|
||||
loaded &= CHelper.TryGetIntValueFromXML("//root/Info/PartyModeVersionMajor", navigator, ref pm.PartyModeVersionMajor);
|
||||
loaded &= CHelper.TryGetIntValueFromXML("//root/Info/PartyModeVersionMinor", navigator, ref pm.PartyModeVersionMinor);
|
||||
loaded &= CHelper.GetValueFromXML("//root/Info/TargetAudience", navigator, ref pm.TargetAudience, "ERROR TargetAudience");
|
||||
bool loaded = true;
|
||||
|
||||
if (pm.PartyModeSystemVersion != PartyModeSystemVersion)
|
||||
{
|
||||
CLog.LogError("Error loading PartyMode file (wrong PartyModeSystemVersion): " + file);
|
||||
return pm;
|
||||
}
|
||||
|
||||
if (pm.ScreenFiles.Count == 0)
|
||||
{
|
||||
CLog.LogError("Error loading PartyMode file (no ScreenFiles found): " + file);
|
||||
return pm;
|
||||
}
|
||||
}
|
||||
loaded &= xmlReader.TryGetIntValue("//root/PartyModeSystemVersion", ref pm.PartyModeSystemVersion);
|
||||
loaded &= xmlReader.GetValue("//root/Info/Name", ref pm.Name, "ERROR Name");
|
||||
loaded &= xmlReader.GetValue("//root/Info/Description", ref pm.Description, "ERROR Description");
|
||||
loaded &= xmlReader.GetValue("//root/Info/Author", ref pm.Author, "ERROR Author");
|
||||
loaded &= xmlReader.GetValue("//root/Info/Folder", ref pm.Folder, "ERROR Folder");
|
||||
loaded &= xmlReader.GetValue("//root/Info/PartyModeFile", ref pm.PartyModeFile, "ERROR PartyModeFile");
|
||||
loaded &= xmlReader.GetInnerValues("PartyScreens", ref pm.ScreenFiles);
|
||||
loaded &= xmlReader.TryGetIntValue("//root/Info/PartyModeVersionMajor", ref pm.PartyModeVersionMajor);
|
||||
loaded &= xmlReader.TryGetIntValue("//root/Info/PartyModeVersionMinor", ref pm.PartyModeVersionMinor);
|
||||
loaded &= xmlReader.GetValue("//root/Info/TargetAudience", ref pm.TargetAudience, "ERROR TargetAudience");
|
||||
|
||||
if (!loaded)
|
||||
{
|
||||
@@ -278,6 +254,18 @@ namespace Vocaluxe.Base
|
||||
return pm;
|
||||
}
|
||||
|
||||
if (pm.PartyModeSystemVersion != PartyModeSystemVersion)
|
||||
{
|
||||
CLog.LogError("Error loading PartyMode file (wrong PartyModeSystemVersion): " + file);
|
||||
return pm;
|
||||
}
|
||||
|
||||
if (pm.ScreenFiles.Count == 0)
|
||||
{
|
||||
CLog.LogError("Error loading PartyMode file (no ScreenFiles found): " + file);
|
||||
return pm;
|
||||
}
|
||||
|
||||
string PathToCode = Path.Combine(Path.Combine(CSettings.sFolderPartyModes, pm.Folder), CSettings.sFolderPartyModeCode);
|
||||
|
||||
List<string> FilesToCompile = new List<string>();
|
||||
|
||||
@@ -3,8 +3,6 @@ using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Text;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Xml;
|
||||
using System.Xml.XPath;
|
||||
|
||||
using Vocaluxe.Lib.Playlist;
|
||||
using Vocaluxe.GameModes;
|
||||
|
||||
+27
-41
@@ -3,7 +3,6 @@ using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Text;
|
||||
using System.Xml;
|
||||
using System.Xml.XPath;
|
||||
|
||||
using Vocaluxe.Lib.Draw;
|
||||
using Vocaluxe.Menu;
|
||||
@@ -359,59 +358,46 @@ namespace Vocaluxe.Base
|
||||
|
||||
private static void LoadProfile(string FileName)
|
||||
{
|
||||
bool loaded = false;
|
||||
XPathDocument xPathDoc = null;
|
||||
XPathNavigator navigator = null;
|
||||
|
||||
SProfile profile = new SProfile();
|
||||
profile.ProfileFile = Path.Combine(CSettings.sFolderProfiles, FileName);
|
||||
|
||||
CXMLReader xmlReader;
|
||||
|
||||
try
|
||||
{
|
||||
xPathDoc = new XPathDocument(profile.ProfileFile);
|
||||
navigator = xPathDoc.CreateNavigator();
|
||||
loaded = true;
|
||||
xmlReader = new CXMLReader(profile.ProfileFile);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
loaded = false;
|
||||
if (navigator != null)
|
||||
navigator = null;
|
||||
|
||||
if (xPathDoc != null)
|
||||
xPathDoc = null;
|
||||
|
||||
CLog.LogError("Error opening Profile File " + FileName + ": " + e.Message);
|
||||
CLog.LogError("Error opening Profile File " + FileName + ": " + e.Message);
|
||||
return;
|
||||
}
|
||||
|
||||
if (loaded)
|
||||
string value = String.Empty;
|
||||
if (xmlReader.GetValue("//root/Info/PlayerName", ref value, value))
|
||||
{
|
||||
string value = String.Empty;
|
||||
if (CHelper.GetValueFromXML("//root/Info/PlayerName", navigator, ref value, value))
|
||||
profile.PlayerName = value;
|
||||
|
||||
profile.Difficulty = EGameDifficulty.TR_CONFIG_EASY;
|
||||
xmlReader.TryGetEnumValue<EGameDifficulty>("//root/Info/Difficulty", ref profile.Difficulty);
|
||||
|
||||
profile.Avatar = new SAvatar(-1);
|
||||
if (xmlReader.GetValue("//root/Info/Avatar", ref value, value))
|
||||
{
|
||||
profile.PlayerName = value;
|
||||
|
||||
profile.Difficulty = EGameDifficulty.TR_CONFIG_EASY;
|
||||
CHelper.TryGetEnumValueFromXML<EGameDifficulty>("//root/Info/Difficulty", navigator, ref profile.Difficulty);
|
||||
|
||||
profile.Avatar = new SAvatar(-1);
|
||||
if (CHelper.GetValueFromXML("//root/Info/Avatar", navigator, ref value, value))
|
||||
{
|
||||
profile.Avatar = GetAvatar(value);
|
||||
}
|
||||
|
||||
profile.GuestProfile = EOffOn.TR_CONFIG_OFF;
|
||||
CHelper.TryGetEnumValueFromXML<EOffOn>("//root/Info/GuestProfile", navigator, ref profile.GuestProfile);
|
||||
|
||||
profile.Active = EOffOn.TR_CONFIG_ON;
|
||||
CHelper.TryGetEnumValueFromXML<EOffOn>("//root/Info/Active", navigator, ref profile.Active);
|
||||
|
||||
_Profiles.Add(profile);
|
||||
}
|
||||
else
|
||||
{
|
||||
CLog.LogError("Can't find PlayerName in Profile File: " + FileName);
|
||||
profile.Avatar = GetAvatar(value);
|
||||
}
|
||||
|
||||
profile.GuestProfile = EOffOn.TR_CONFIG_OFF;
|
||||
xmlReader.TryGetEnumValue<EOffOn>("//root/Info/GuestProfile", ref profile.GuestProfile);
|
||||
|
||||
profile.Active = EOffOn.TR_CONFIG_ON;
|
||||
xmlReader.TryGetEnumValue<EOffOn>("//root/Info/Active", ref profile.Active);
|
||||
|
||||
_Profiles.Add(profile);
|
||||
}
|
||||
else
|
||||
{
|
||||
CLog.LogError("Can't find PlayerName in Profile File: " + FileName);
|
||||
}
|
||||
}
|
||||
#endregion private methods
|
||||
|
||||
+168
-218
@@ -4,7 +4,6 @@ using System.IO;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
using System.Xml;
|
||||
using System.Xml.XPath;
|
||||
|
||||
using Vocaluxe.Lib.Draw;
|
||||
using Vocaluxe.Menu;
|
||||
@@ -148,80 +147,68 @@ namespace Vocaluxe.Base
|
||||
|
||||
public static bool LoadSkin(int SkinIndex)
|
||||
{
|
||||
bool loaded = false;
|
||||
XPathDocument xPathDoc = null;
|
||||
XPathNavigator navigator = null;
|
||||
CXMLReader xmlReader;
|
||||
|
||||
try
|
||||
{
|
||||
xPathDoc = new XPathDocument(Path.Combine(_Skins[SkinIndex].Path, _Skins[SkinIndex].FileName));
|
||||
navigator = xPathDoc.CreateNavigator();
|
||||
loaded = true;
|
||||
xmlReader = new CXMLReader(Path.Combine(_Skins[SkinIndex].Path, _Skins[SkinIndex].FileName));
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
CLog.LogError("Error loading skin " + _Skins[SkinIndex].FileName + ": " + e.Message);
|
||||
loaded = false;
|
||||
if (navigator != null)
|
||||
navigator = null;
|
||||
|
||||
if (xPathDoc != null)
|
||||
xPathDoc = null;
|
||||
return false;
|
||||
}
|
||||
|
||||
if (loaded)
|
||||
string value = String.Empty;
|
||||
|
||||
|
||||
// load skins/textures
|
||||
List<string> keys = new List<string>(_Skins[SkinIndex].SkinList.Keys);
|
||||
|
||||
foreach (string name in keys)
|
||||
{
|
||||
string value = String.Empty;
|
||||
|
||||
|
||||
// load skins/textures
|
||||
List<string> keys = new List<string>(_Skins[SkinIndex].SkinList.Keys);
|
||||
|
||||
foreach (string name in keys)
|
||||
try
|
||||
{
|
||||
try
|
||||
{
|
||||
CHelper.GetValueFromXML("//root/Skins/" + name, navigator, ref value, String.Empty);
|
||||
SkinElement sk = _Skins[SkinIndex].SkinList[name];
|
||||
sk.Value = value;
|
||||
sk.VideoIndex = -1;
|
||||
sk.Texture = CDraw.AddTexture(Path.Combine(_Skins[SkinIndex].Path, sk.Value));
|
||||
_Skins[SkinIndex].SkinList[name] = sk;
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
MessageBox.Show("Error on loading texture \"" + name + "\": " + e.Message + e.StackTrace);
|
||||
CLog.LogError("Error on loading texture \"" + name + "\": " + e.Message + e.StackTrace);
|
||||
}
|
||||
xmlReader.GetValue("//root/Skins/" + name, ref value, String.Empty);
|
||||
SkinElement sk = _Skins[SkinIndex].SkinList[name];
|
||||
sk.Value = value;
|
||||
sk.VideoIndex = -1;
|
||||
sk.Texture = CDraw.AddTexture(Path.Combine(_Skins[SkinIndex].Path, sk.Value));
|
||||
_Skins[SkinIndex].SkinList[name] = sk;
|
||||
}
|
||||
|
||||
|
||||
// load videos
|
||||
for (int i = 0; i < _Skins[SkinIndex].VideoList.Count; i++)
|
||||
catch (Exception e)
|
||||
{
|
||||
try
|
||||
{
|
||||
CHelper.GetValueFromXML("//root/Videos/" + _Skins[SkinIndex].VideoList[i].Name, navigator, ref value, String.Empty);
|
||||
SkinElement sk = new SkinElement();
|
||||
sk.Name = _Skins[SkinIndex].VideoList[i].Name;
|
||||
sk.Value = value;
|
||||
sk.VideoIndex = CVideo.VdLoad(Path.Combine(_Skins[SkinIndex].Path, sk.Value));
|
||||
CVideo.VdSetLoop(sk.VideoIndex, true);
|
||||
CVideo.VdPause(sk.VideoIndex);
|
||||
sk.Texture = new STexture(-1);
|
||||
_Skins[SkinIndex].VideoList[i] = sk;
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
MessageBox.Show("Error on loading video \"" + _Skins[SkinIndex].VideoList[i].Name + "\": " + e.Message + e.StackTrace);
|
||||
CLog.LogError("Error on loading video \"" + _Skins[SkinIndex].VideoList[i].Name + "\": " + e.Message + e.StackTrace);
|
||||
}
|
||||
MessageBox.Show("Error on loading texture \"" + name + "\": " + e.Message + e.StackTrace);
|
||||
CLog.LogError("Error on loading texture \"" + name + "\": " + e.Message + e.StackTrace);
|
||||
}
|
||||
|
||||
// load colors
|
||||
LoadColors(navigator, SkinIndex);
|
||||
}
|
||||
return loaded;
|
||||
|
||||
|
||||
// load videos
|
||||
for (int i = 0; i < _Skins[SkinIndex].VideoList.Count; i++)
|
||||
{
|
||||
try
|
||||
{
|
||||
xmlReader.GetValue("//root/Videos/" + _Skins[SkinIndex].VideoList[i].Name, ref value, String.Empty);
|
||||
SkinElement sk = new SkinElement();
|
||||
sk.Name = _Skins[SkinIndex].VideoList[i].Name;
|
||||
sk.Value = value;
|
||||
sk.VideoIndex = CVideo.VdLoad(Path.Combine(_Skins[SkinIndex].Path, sk.Value));
|
||||
CVideo.VdSetLoop(sk.VideoIndex, true);
|
||||
CVideo.VdPause(sk.VideoIndex);
|
||||
sk.Texture = new STexture(-1);
|
||||
_Skins[SkinIndex].VideoList[i] = sk;
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
MessageBox.Show("Error on loading video \"" + _Skins[SkinIndex].VideoList[i].Name + "\": " + e.Message + e.StackTrace);
|
||||
CLog.LogError("Error on loading video \"" + _Skins[SkinIndex].VideoList[i].Name + "\": " + e.Message + e.StackTrace);
|
||||
}
|
||||
}
|
||||
|
||||
// load colors
|
||||
LoadColors(xmlReader, SkinIndex);
|
||||
return true;
|
||||
}
|
||||
|
||||
public static void UnloadSkins()
|
||||
@@ -271,57 +258,45 @@ namespace Vocaluxe.Base
|
||||
|
||||
public static bool LoadTheme(int ThemeIndex)
|
||||
{
|
||||
bool loaded = false;
|
||||
XPathDocument xPathDoc = null;
|
||||
XPathNavigator navigator = null;
|
||||
|
||||
if (ThemeIndex < 0 || ThemeIndex >= _Themes.Count)
|
||||
{
|
||||
CLog.LogError("Can't find Theme Index " + ThemeIndex.ToString());
|
||||
return false;
|
||||
}
|
||||
|
||||
CXMLReader xmlReader;
|
||||
|
||||
try
|
||||
{
|
||||
xPathDoc = new XPathDocument(Path.Combine(_Themes[ThemeIndex].Path, _Themes[ThemeIndex].FileName));
|
||||
navigator = xPathDoc.CreateNavigator();
|
||||
loaded = true;
|
||||
xmlReader = new CXMLReader(Path.Combine(_Themes[ThemeIndex].Path, _Themes[ThemeIndex].FileName));
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
CLog.LogError("Error loading theme " + _Themes[ThemeIndex].FileName + ": " + e.Message);
|
||||
loaded = false;
|
||||
if (navigator != null)
|
||||
navigator = null;
|
||||
|
||||
if (xPathDoc != null)
|
||||
xPathDoc = null;
|
||||
return false;
|
||||
}
|
||||
|
||||
if (loaded)
|
||||
int skinIndex = GetSkinIndex(_Themes[ThemeIndex].PartyModeID);
|
||||
|
||||
// Load Cursor
|
||||
if (_Themes[ThemeIndex].PartyModeID == -1)
|
||||
LoadCursor(xmlReader, skinIndex);
|
||||
|
||||
// load fonts
|
||||
if (_Themes[ThemeIndex].PartyModeID == -1)
|
||||
{
|
||||
int skinIndex = GetSkinIndex(_Themes[ThemeIndex].PartyModeID);
|
||||
|
||||
// Load Cursor
|
||||
if (_Themes[ThemeIndex].PartyModeID == -1)
|
||||
LoadCursor(navigator, skinIndex);
|
||||
|
||||
// load fonts
|
||||
if (_Themes[ThemeIndex].PartyModeID == -1)
|
||||
{
|
||||
CFonts.LoadThemeFonts(
|
||||
_Themes[ThemeIndex].Name,
|
||||
Path.Combine(Path.Combine(_Themes[ThemeIndex].Path, _Themes[ThemeIndex].SkinFolder), CSettings.sFolderThemeFonts),
|
||||
navigator);
|
||||
}
|
||||
else
|
||||
{
|
||||
CFonts.LoadPartyModeFonts(_Themes[ThemeIndex].PartyModeID,
|
||||
Path.Combine(_Themes[ThemeIndex].Path, CSettings.sFolderPartyModeFonts),
|
||||
navigator);
|
||||
}
|
||||
CFonts.LoadThemeFonts(
|
||||
_Themes[ThemeIndex].Name,
|
||||
Path.Combine(Path.Combine(_Themes[ThemeIndex].Path, _Themes[ThemeIndex].SkinFolder), CSettings.sFolderThemeFonts),
|
||||
xmlReader);
|
||||
}
|
||||
return loaded;
|
||||
else
|
||||
{
|
||||
CFonts.LoadPartyModeFonts(_Themes[ThemeIndex].PartyModeID,
|
||||
Path.Combine(_Themes[ThemeIndex].Path, CSettings.sFolderPartyModeFonts),
|
||||
xmlReader);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public static void SaveTheme()
|
||||
@@ -445,64 +420,51 @@ namespace Vocaluxe.Base
|
||||
|
||||
public static bool AddTheme(string FilePath, int PartyModeID)
|
||||
{
|
||||
bool loaded = false;
|
||||
XPathDocument xPathDoc = null;
|
||||
XPathNavigator navigator = null;
|
||||
CXMLReader xmlReader;
|
||||
|
||||
try
|
||||
{
|
||||
xPathDoc = new XPathDocument(FilePath);
|
||||
navigator = xPathDoc.CreateNavigator();
|
||||
loaded = true;
|
||||
xmlReader = new CXMLReader(FilePath);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
CLog.LogError("Error loading theme " + FilePath + ": " + e.Message);
|
||||
loaded = false;
|
||||
if (navigator != null)
|
||||
navigator = null;
|
||||
|
||||
if (xPathDoc != null)
|
||||
xPathDoc = null;
|
||||
return false;
|
||||
}
|
||||
|
||||
if (loaded)
|
||||
Theme theme = new Theme();
|
||||
|
||||
int version = 0;
|
||||
xmlReader.TryGetIntValue("//root/ThemeSystemVersion", ref version);
|
||||
|
||||
if (version == ThemeSystemVersion)
|
||||
{
|
||||
Theme theme = new Theme();
|
||||
|
||||
int version = 0;
|
||||
CHelper.TryGetIntValueFromXML("//root/ThemeSystemVersion", navigator, ref version);
|
||||
|
||||
if (version == ThemeSystemVersion)
|
||||
xmlReader.GetValue("//root/Info/Name", ref theme.Name, String.Empty);
|
||||
if (theme.Name != String.Empty)
|
||||
{
|
||||
CHelper.GetValueFromXML("//root/Info/Name", navigator, ref theme.Name, String.Empty);
|
||||
if (theme.Name != String.Empty)
|
||||
{
|
||||
CHelper.GetValueFromXML("//root/Info/Author", navigator, ref theme.Author, String.Empty);
|
||||
CHelper.GetValueFromXML("//root/Info/SkinFolder", navigator, ref theme.SkinFolder, String.Empty);
|
||||
CHelper.TryGetIntValueFromXML("//root/Info/ThemeVersionMajor", navigator, ref theme.ThemeVersionMajor);
|
||||
CHelper.TryGetIntValueFromXML("//root/Info/ThemeVersionMinor", navigator, ref theme.ThemeVersionMinor);
|
||||
theme.Path = Path.GetDirectoryName(FilePath);
|
||||
theme.FileName = Path.GetFileName(FilePath);
|
||||
theme.PartyModeID = PartyModeID;
|
||||
xmlReader.GetValue("//root/Info/Author", ref theme.Author, String.Empty);
|
||||
xmlReader.GetValue("//root/Info/SkinFolder", ref theme.SkinFolder, String.Empty);
|
||||
xmlReader.TryGetIntValue("//root/Info/ThemeVersionMajor", ref theme.ThemeVersionMajor);
|
||||
xmlReader.TryGetIntValue("//root/Info/ThemeVersionMinor", ref theme.ThemeVersionMinor);
|
||||
theme.Path = Path.GetDirectoryName(FilePath);
|
||||
theme.FileName = Path.GetFileName(FilePath);
|
||||
theme.PartyModeID = PartyModeID;
|
||||
|
||||
_Themes.Add(theme);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
string msg = "Can't load Theme \"" + FilePath + "\", ";
|
||||
if (version < ThemeSystemVersion)
|
||||
msg += "the file ist outdated! ";
|
||||
else
|
||||
msg += "the file is for newer program versions! ";
|
||||
|
||||
msg += "Current ThemeSystemVersion is " + ThemeSystemVersion.ToString();
|
||||
CLog.LogError(msg);
|
||||
loaded = false;
|
||||
_Themes.Add(theme);
|
||||
}
|
||||
}
|
||||
return loaded;
|
||||
else
|
||||
{
|
||||
string msg = "Can't load Theme \"" + FilePath + "\", ";
|
||||
if (version < ThemeSystemVersion)
|
||||
msg += "the file is outdated! ";
|
||||
else
|
||||
msg += "the file is for newer program versions! ";
|
||||
|
||||
msg += "Current ThemeSystemVersion is " + ThemeSystemVersion.ToString();
|
||||
CLog.LogError(msg);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public static void ListSkins()
|
||||
@@ -536,82 +498,70 @@ namespace Vocaluxe.Base
|
||||
|
||||
foreach (string file in files)
|
||||
{
|
||||
bool loaded = false;
|
||||
XPathDocument xPathDoc = null;
|
||||
XPathNavigator navigator = null;
|
||||
CXMLReader xmlReader;
|
||||
|
||||
try
|
||||
{
|
||||
xPathDoc = new XPathDocument(Path.Combine(path, file));
|
||||
navigator = xPathDoc.CreateNavigator();
|
||||
loaded = true;
|
||||
xmlReader = new CXMLReader(Path.Combine(path, file));
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
CLog.LogError("Error loading skin " + file + ": " + e.Message);
|
||||
loaded = false;
|
||||
if (navigator != null)
|
||||
navigator = null;
|
||||
|
||||
if (xPathDoc != null)
|
||||
xPathDoc = null;
|
||||
continue;
|
||||
}
|
||||
|
||||
if (loaded)
|
||||
Skin skin = new Skin();
|
||||
|
||||
int version = 0;
|
||||
xmlReader.TryGetIntValue("//root/SkinSystemVersion", ref version);
|
||||
|
||||
if (version == SkinSystemVersion)
|
||||
{
|
||||
Skin skin = new Skin();
|
||||
|
||||
int version = 0;
|
||||
CHelper.TryGetIntValueFromXML("//root/SkinSystemVersion", navigator, ref version);
|
||||
|
||||
if (version == SkinSystemVersion)
|
||||
xmlReader.GetValue("//root/Info/Name", ref skin.Name, String.Empty);
|
||||
if (skin.Name != String.Empty)
|
||||
{
|
||||
CHelper.GetValueFromXML("//root/Info/Name", navigator, ref skin.Name, String.Empty);
|
||||
if (skin.Name != String.Empty)
|
||||
xmlReader.GetValue("//root/Info/Author", ref skin.Author, String.Empty);
|
||||
xmlReader.TryGetIntValue("//root/Info/SkinVersionMajor", ref skin.SkinVersionMajor);
|
||||
xmlReader.TryGetIntValue("//root/Info/SkinVersionMinor", ref skin.SkinVersionMinor);
|
||||
|
||||
|
||||
skin.Path = path;
|
||||
skin.FileName = file;
|
||||
skin.PartyModeID = theme.PartyModeID;
|
||||
|
||||
skin.SkinList = new Dictionary<string, SkinElement>();
|
||||
List<string> names = xmlReader.GetValues("Skins");
|
||||
foreach (string str in names)
|
||||
{
|
||||
CHelper.GetValueFromXML("//root/Info/Author", navigator, ref skin.Author, String.Empty);
|
||||
CHelper.TryGetIntValueFromXML("//root/Info/SkinVersionMajor", navigator, ref skin.SkinVersionMajor);
|
||||
CHelper.TryGetIntValueFromXML("//root/Info/SkinVersionMinor", navigator, ref skin.SkinVersionMinor);
|
||||
|
||||
|
||||
skin.Path = path;
|
||||
skin.FileName = file;
|
||||
skin.PartyModeID = theme.PartyModeID;
|
||||
|
||||
skin.SkinList = new Dictionary<string, SkinElement>();
|
||||
List<string> names = CHelper.GetValuesFromXML("Skins", navigator);
|
||||
foreach (string str in names)
|
||||
{
|
||||
SkinElement sk = new SkinElement();
|
||||
sk.Name = str;
|
||||
sk.Value = String.Empty;
|
||||
skin.SkinList[str] = sk;
|
||||
}
|
||||
|
||||
skin.VideoList = new List<SkinElement>();
|
||||
names = CHelper.GetValuesFromXML("Videos", navigator);
|
||||
foreach (string str in names)
|
||||
{
|
||||
SkinElement sk = new SkinElement();
|
||||
sk.Name = str;
|
||||
sk.Value = String.Empty;
|
||||
skin.VideoList.Add(sk);
|
||||
}
|
||||
_Skins.Add(skin);
|
||||
SkinElement sk = new SkinElement();
|
||||
sk.Name = str;
|
||||
sk.Value = String.Empty;
|
||||
skin.SkinList[str] = sk;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
string msg = "Can't load Skin \"" + file + "\", ";
|
||||
if (version < SkinSystemVersion)
|
||||
msg += "the file ist outdated! ";
|
||||
else
|
||||
msg += "the file is for newer program versions! ";
|
||||
|
||||
msg += "Current SkinSystemVersion is " + SkinSystemVersion.ToString();
|
||||
CLog.LogError(msg);
|
||||
skin.VideoList = new List<SkinElement>();
|
||||
names = xmlReader.GetValues("Videos");
|
||||
foreach (string str in names)
|
||||
{
|
||||
SkinElement sk = new SkinElement();
|
||||
sk.Name = str;
|
||||
sk.Value = String.Empty;
|
||||
skin.VideoList.Add(sk);
|
||||
}
|
||||
_Skins.Add(skin);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
string msg = "Can't load Skin \"" + file + "\", ";
|
||||
if (version < SkinSystemVersion)
|
||||
msg += "the file ist outdated! ";
|
||||
else
|
||||
msg += "the file is for newer program versions! ";
|
||||
|
||||
msg += "Current SkinSystemVersion is " + SkinSystemVersion.ToString();
|
||||
CLog.LogError(msg);
|
||||
}
|
||||
}
|
||||
}
|
||||
#endregion Theme and Skin loading and writing
|
||||
@@ -804,7 +754,7 @@ namespace Vocaluxe.Base
|
||||
#endregion Theme and Skin index handling
|
||||
|
||||
#region Element loading
|
||||
private static void LoadColors(XPathNavigator navigator, int SkinIndex)
|
||||
private static void LoadColors(CXMLReader xmlReader, int SkinIndex)
|
||||
{
|
||||
Skin skin = _Skins[SkinIndex];
|
||||
|
||||
@@ -814,14 +764,14 @@ namespace Vocaluxe.Base
|
||||
float value = 0f;
|
||||
|
||||
int i = 1;
|
||||
while (CHelper.TryGetFloatValueFromXML("//root/Colors/Player" + i.ToString() + "/R", navigator, ref value))
|
||||
while (xmlReader.TryGetFloatValue("//root/Colors/Player" + i.ToString() + "/R", ref value))
|
||||
{
|
||||
SColorF color = new SColorF();
|
||||
|
||||
color.R = value;
|
||||
CHelper.TryGetFloatValueFromXML("//root/Colors/Player" + i.ToString() + "/G", navigator, ref color.G);
|
||||
CHelper.TryGetFloatValueFromXML("//root/Colors/Player" + i.ToString() + "/B", navigator, ref color.B);
|
||||
CHelper.TryGetFloatValueFromXML("//root/Colors/Player" + i.ToString() + "/A", navigator, ref color.A);
|
||||
xmlReader.TryGetFloatValue("//root/Colors/Player" + i.ToString() + "/G", ref color.G);
|
||||
xmlReader.TryGetFloatValue("//root/Colors/Player" + i.ToString() + "/B", ref color.B);
|
||||
xmlReader.TryGetFloatValue("//root/Colors/Player" + i.ToString() + "/A", ref color.A);
|
||||
|
||||
PlayerColors.Add(color);
|
||||
i++;
|
||||
@@ -830,16 +780,16 @@ namespace Vocaluxe.Base
|
||||
}
|
||||
|
||||
List<SColorScheme> ColorScheme = new List<SColorScheme>();
|
||||
List<string> names = CHelper.GetValuesFromXML("ColorSchemes", navigator);
|
||||
List<string> names = xmlReader.GetValues("ColorSchemes");
|
||||
foreach (string str in names)
|
||||
{
|
||||
SColorScheme scheme = new SColorScheme();
|
||||
scheme.Name = str;
|
||||
|
||||
CHelper.TryGetFloatValueFromXML("//root/ColorSchemes/" + str + "/R", navigator, ref scheme.Color.R);
|
||||
CHelper.TryGetFloatValueFromXML("//root/ColorSchemes/" + str + "/G", navigator, ref scheme.Color.G);
|
||||
CHelper.TryGetFloatValueFromXML("//root/ColorSchemes/" + str + "/B", navigator, ref scheme.Color.B);
|
||||
CHelper.TryGetFloatValueFromXML("//root/ColorSchemes/" + str + "/A", navigator, ref scheme.Color.A);
|
||||
xmlReader.TryGetFloatValue("//root/ColorSchemes/" + str + "/R", ref scheme.Color.R);
|
||||
xmlReader.TryGetFloatValue("//root/ColorSchemes/" + str + "/G", ref scheme.Color.G);
|
||||
xmlReader.TryGetFloatValue("//root/ColorSchemes/" + str + "/B", ref scheme.Color.B);
|
||||
xmlReader.TryGetFloatValue("//root/ColorSchemes/" + str + "/A", ref scheme.Color.A);
|
||||
|
||||
ColorScheme.Add(scheme);
|
||||
}
|
||||
@@ -848,15 +798,15 @@ namespace Vocaluxe.Base
|
||||
_Skins[SkinIndex] = skin;
|
||||
}
|
||||
|
||||
private static void LoadCursor(XPathNavigator navigator, int SkinIndex)
|
||||
private static void LoadCursor(CXMLReader xmlReader, int SkinIndex)
|
||||
{
|
||||
string value = String.Empty;
|
||||
CHelper.GetValueFromXML("//root/Cursor/Skin", navigator, ref Cursor.SkinName, value);
|
||||
xmlReader.GetValue("//root/Cursor/Skin", ref Cursor.SkinName, value);
|
||||
|
||||
CHelper.TryGetFloatValueFromXML("//root/Cursor/W", navigator, ref Cursor.w);
|
||||
CHelper.TryGetFloatValueFromXML("//root/Cursor/H", navigator, ref Cursor.h);
|
||||
xmlReader.TryGetFloatValue("//root/Cursor/W", ref Cursor.w);
|
||||
xmlReader.TryGetFloatValue("//root/Cursor/H", ref Cursor.h);
|
||||
|
||||
if (CHelper.GetValueFromXML("//root/Cursor/Color", navigator, ref value, value))
|
||||
if (xmlReader.GetValue("//root/Cursor/Color", ref value, value))
|
||||
{
|
||||
SColorF color = GetColor(value, _Skins[SkinIndex].PartyModeID);
|
||||
Cursor.r = color.R;
|
||||
@@ -868,10 +818,10 @@ namespace Vocaluxe.Base
|
||||
else
|
||||
{
|
||||
Cursor.color = String.Empty;
|
||||
CHelper.TryGetFloatValueFromXML("//root/Cursor/R", navigator, ref Cursor.r);
|
||||
CHelper.TryGetFloatValueFromXML("//root/Cursor/G", navigator, ref Cursor.g);
|
||||
CHelper.TryGetFloatValueFromXML("//root/Cursor/B", navigator, ref Cursor.b);
|
||||
CHelper.TryGetFloatValueFromXML("//root/Cursor/A", navigator, ref Cursor.a);
|
||||
xmlReader.TryGetFloatValue("//root/Cursor/R", ref Cursor.r);
|
||||
xmlReader.TryGetFloatValue("//root/Cursor/G", ref Cursor.g);
|
||||
xmlReader.TryGetFloatValue("//root/Cursor/B", ref Cursor.b);
|
||||
xmlReader.TryGetFloatValue("//root/Cursor/A", ref Cursor.a);
|
||||
}
|
||||
}
|
||||
#endregion Element loading
|
||||
|
||||
@@ -6,8 +6,6 @@ using System.Globalization;
|
||||
using System.IO;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
using System.Xml;
|
||||
using System.Xml.XPath;
|
||||
|
||||
using Vocaluxe.Lib.Draw;
|
||||
using Vocaluxe.Menu;
|
||||
|
||||
@@ -3,7 +3,6 @@ using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Text;
|
||||
using System.Xml;
|
||||
using System.Xml.XPath;
|
||||
|
||||
using Vocaluxe.Base;
|
||||
using Vocaluxe.GameModes;
|
||||
@@ -122,76 +121,63 @@ namespace Vocaluxe.Lib.Playlist
|
||||
|
||||
private void LoadPlaylist()
|
||||
{
|
||||
bool loaded = false;
|
||||
XPathDocument xPathDoc = null;
|
||||
XPathNavigator navigator = null;
|
||||
CXMLReader xmlReader;
|
||||
|
||||
try
|
||||
{
|
||||
xPathDoc = new XPathDocument(PlaylistFile);
|
||||
navigator = xPathDoc.CreateNavigator();
|
||||
loaded = true;
|
||||
xmlReader = new CXMLReader(PlaylistFile);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
loaded = false;
|
||||
if (navigator != null)
|
||||
navigator = null;
|
||||
|
||||
if (xPathDoc != null)
|
||||
xPathDoc = null;
|
||||
|
||||
CLog.LogError("Error opening Playlist File " + PlaylistFile + ": " + e.Message);
|
||||
return;
|
||||
}
|
||||
|
||||
if (loaded)
|
||||
string value = String.Empty;
|
||||
if (xmlReader.GetValue("//root/Info/PlaylistName", ref value, value))
|
||||
{
|
||||
string value = String.Empty;
|
||||
if (CHelper.GetValueFromXML("//root/Info/PlaylistName", navigator, ref value, value))
|
||||
PlaylistName = value;
|
||||
|
||||
Songs = new List<CPlaylistSong>();
|
||||
|
||||
List<string> songs = xmlReader.GetValues("Songs");
|
||||
string artist = String.Empty;
|
||||
string title = String.Empty;
|
||||
EGameMode gm = EGameMode.TR_GAMEMODE_NORMAL;
|
||||
|
||||
for (int i = 0; i < songs.Count; i++)
|
||||
{
|
||||
PlaylistName = value;
|
||||
xmlReader.GetValue("//root/Songs/" + songs[i] + "/Artist", ref artist, String.Empty);
|
||||
xmlReader.GetValue("//root/Songs/" + songs[i] + "/Title", ref title, String.Empty);
|
||||
xmlReader.TryGetEnumValue<EGameMode>("//root/Songs/" + songs[i] + "/GameMode", ref gm);
|
||||
|
||||
Songs = new List<CPlaylistSong>();
|
||||
CPlaylistSong song = new CPlaylistSong();
|
||||
song.SongID = -1;
|
||||
CSong[] AllSongs = CSongs.AllSongs;
|
||||
|
||||
List<string> songs = CHelper.GetValuesFromXML("Songs", navigator);
|
||||
string artist = String.Empty;
|
||||
string title = String.Empty;
|
||||
EGameMode gm = EGameMode.TR_GAMEMODE_NORMAL;
|
||||
|
||||
for (int i = 0; i < songs.Count; i++)
|
||||
for (int s = 0; s < AllSongs.Length; s++)
|
||||
{
|
||||
CHelper.GetValueFromXML("//root/Songs/" + songs[i] + "/Artist", navigator, ref artist, String.Empty);
|
||||
CHelper.GetValueFromXML("//root/Songs/" + songs[i] + "/Title", navigator, ref title, String.Empty);
|
||||
CHelper.TryGetEnumValueFromXML<EGameMode>("//root/Songs/" + songs[i] + "/GameMode", navigator, ref gm);
|
||||
|
||||
CPlaylistSong song = new CPlaylistSong();
|
||||
song.SongID = -1;
|
||||
CSong[] AllSongs = CSongs.AllSongs;
|
||||
|
||||
for (int s = 0; s < AllSongs.Length; s++)
|
||||
if (AllSongs[s].Artist == artist && AllSongs[s].Title == title)
|
||||
{
|
||||
if (AllSongs[s].Artist == artist && AllSongs[s].Title == title)
|
||||
{
|
||||
song.SongID = AllSongs[s].ID;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (song.SongID != -1)
|
||||
{
|
||||
song.GameMode = gm;
|
||||
Songs.Add(song);
|
||||
}
|
||||
else
|
||||
{
|
||||
CLog.LogError("Can't find song '" + title + "' from '" + artist + "' in playlist file: " + PlaylistFile);
|
||||
song.SongID = AllSongs[s].ID;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (song.SongID != -1)
|
||||
{
|
||||
song.GameMode = gm;
|
||||
Songs.Add(song);
|
||||
}
|
||||
else
|
||||
{
|
||||
CLog.LogError("Can't find song '" + title + "' from '" + artist + "' in playlist file: " + PlaylistFile);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
CLog.LogError("Can't find PlaylistName in Playlist File: " + PlaylistFile);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
CLog.LogError("Can't find PlaylistName in Playlist File: " + PlaylistFile);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -738,6 +738,30 @@ namespace Vocaluxe.Screens
|
||||
CWebcam.Close();
|
||||
}
|
||||
|
||||
private int FindCurrentLine(CLine[] line, CSong song)
|
||||
{
|
||||
float CurrentTime = _CurrentTime - song.Gap;
|
||||
//We are only interested in the last matching line, so either do not check further after line[j].StartBeat > _CurrentBeat or go backwards!
|
||||
for (int j = line.Length - 1; j >= 0; j--)
|
||||
{
|
||||
if (line[j].StartBeat <= _CurrentBeat)
|
||||
{
|
||||
float FirstNoteTime = CGame.GetTimeFromBeats(line[j].FirstNoteBeat, song.BPM);
|
||||
//Earlist possible line break is 10s before first note
|
||||
if (FirstNoteTime <= CurrentTime + 10f)
|
||||
{
|
||||
//First line has no predecessor or line has to be shown
|
||||
if(j == 0 || FirstNoteTime - CConfig.MinLineBreakTime <= CurrentTime) return j;
|
||||
float LastNoteTime = CGame.GetTimeFromBeats(line[j-1].LastNoteBeat, song.BPM);
|
||||
//No line break if last line is not fully evaluated (with 50% tolerance -> tested so notes are drawn)
|
||||
if(LastNoteTime + CConfig.MicDelay/1000f * 1.5f >= CurrentTime) return j-1;
|
||||
return j;
|
||||
}
|
||||
}
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
private void UpdateLyrics()
|
||||
{
|
||||
if (_FadeOut)
|
||||
@@ -759,18 +783,8 @@ namespace Vocaluxe.Screens
|
||||
lines[i] = song.Notes.GetLines(i);
|
||||
CLine[] line = lines[i].Line;
|
||||
|
||||
// find current line (it must be the same as in CalcFadingAlpha)
|
||||
int nr = -1;
|
||||
for (int j = 0; j < line.Length; j++)
|
||||
{
|
||||
if (line[j].StartBeat <= _CurrentBeat)
|
||||
{
|
||||
if (CGame.GetTimeFromBeats(line[j].FirstNoteBeat, song.BPM) <= _CurrentTime - song.Gap + 10f)
|
||||
{
|
||||
nr = j;
|
||||
}
|
||||
}
|
||||
}
|
||||
// find current line
|
||||
int nr = FindCurrentLine(line, song);
|
||||
|
||||
if (nr != -1)
|
||||
{
|
||||
@@ -1048,18 +1062,8 @@ namespace Vocaluxe.Screens
|
||||
lines[i] = Song.Notes.GetLines(i);
|
||||
CLine[] line = lines[i].Line;
|
||||
|
||||
// find current line for lyric sub fading (it must be the same as in UpdateLyrics)
|
||||
int CurrentLineSub = 0;
|
||||
for (int j = 0; j < line.Length; j++)
|
||||
{
|
||||
if (line[j].StartBeat <= _CurrentBeat)
|
||||
{
|
||||
if (CGame.GetTimeFromBeats(line[j].FirstNoteBeat, Song.BPM) <= _CurrentTime - Song.Gap + 10f)
|
||||
{
|
||||
CurrentLineSub = j;
|
||||
}
|
||||
}
|
||||
}
|
||||
// find current line for lyric sub fading
|
||||
int CurrentLineSub = FindCurrentLine(line, Song);
|
||||
|
||||
// find current line for lyric main fading
|
||||
int CurrentLine = 0;
|
||||
|
||||
@@ -4,7 +4,6 @@ using System.Diagnostics;
|
||||
using System.Drawing;
|
||||
using System.Text;
|
||||
using System.Xml;
|
||||
using System.Xml.XPath;
|
||||
|
||||
namespace Vocaluxe.Menu
|
||||
{
|
||||
@@ -55,28 +54,28 @@ namespace Vocaluxe.Menu
|
||||
#endregion Constructors
|
||||
|
||||
#region public
|
||||
public bool LoadTheme(string XmlPath, string ElementName, XPathNavigator navigator, int SkinIndex)
|
||||
public bool LoadTheme(string XmlPath, string ElementName, CXMLReader xmlReader, int SkinIndex)
|
||||
{
|
||||
string item = XmlPath + "/" + ElementName;
|
||||
_ThemeLoaded = true;
|
||||
|
||||
_ThemeLoaded &= CHelper.TryGetEnumValueFromXML<EBackgroundTypes>(item + "/Type", navigator, ref _Theme.Type);
|
||||
_ThemeLoaded &= xmlReader.TryGetEnumValue<EBackgroundTypes>(item + "/Type", ref _Theme.Type);
|
||||
|
||||
bool vid = CHelper.GetValueFromXML(item + "/Video", navigator, ref _Theme.VideoName, String.Empty);
|
||||
bool tex = CHelper.GetValueFromXML(item + "/Skin", navigator, ref _Theme.TextureName, String.Empty);
|
||||
bool vid = xmlReader.GetValue(item + "/Video", ref _Theme.VideoName, String.Empty);
|
||||
bool tex = xmlReader.GetValue(item + "/Skin", ref _Theme.TextureName, String.Empty);
|
||||
_ThemeLoaded &= vid || tex || _Theme.Type == EBackgroundTypes.None;
|
||||
|
||||
if (CHelper.GetValueFromXML(item + "/Color", navigator, ref _Theme.ColorName, String.Empty))
|
||||
if (xmlReader.GetValue(item + "/Color", ref _Theme.ColorName, String.Empty))
|
||||
{
|
||||
_ThemeLoaded &= _Base.Theme.GetColor(_Theme.ColorName, SkinIndex, ref Color);
|
||||
}
|
||||
else
|
||||
{
|
||||
bool success = true;
|
||||
success &= CHelper.TryGetFloatValueFromXML(item + "/R", navigator, ref Color.R);
|
||||
success &= CHelper.TryGetFloatValueFromXML(item + "/G", navigator, ref Color.G);
|
||||
success &= CHelper.TryGetFloatValueFromXML(item + "/B", navigator, ref Color.B);
|
||||
success &= CHelper.TryGetFloatValueFromXML(item + "/A", navigator, ref Color.A);
|
||||
success &= xmlReader.TryGetFloatValue(item + "/R", ref Color.R);
|
||||
success &= xmlReader.TryGetFloatValue(item + "/G", ref Color.G);
|
||||
success &= xmlReader.TryGetFloatValue(item + "/B", ref Color.B);
|
||||
success &= xmlReader.TryGetFloatValue(item + "/A", ref Color.A);
|
||||
|
||||
if (_Theme.Type != EBackgroundTypes.None)
|
||||
_ThemeLoaded &= success;
|
||||
|
||||
+27
-28
@@ -3,7 +3,6 @@ using System.Drawing;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using System.Xml;
|
||||
using System.Xml.XPath;
|
||||
|
||||
namespace Vocaluxe.Menu
|
||||
{
|
||||
@@ -135,69 +134,69 @@ namespace Vocaluxe.Menu
|
||||
SReflectionSpace = button.SReflectionSpace;
|
||||
}
|
||||
|
||||
public bool LoadTheme(string XmlPath, string ElementName, XPathNavigator navigator, int SkinIndex)
|
||||
public bool LoadTheme(string XmlPath, string ElementName, CXMLReader xmlReader, int SkinIndex)
|
||||
{
|
||||
string item = XmlPath + "/" + ElementName;
|
||||
_ThemeLoaded = true;
|
||||
|
||||
_ThemeLoaded &= CHelper.GetValueFromXML(item + "/Skin", navigator, ref _Theme.TextureName, String.Empty);
|
||||
_ThemeLoaded &= CHelper.GetValueFromXML(item + "/SkinSelected", navigator, ref _Theme.STextureName, String.Empty);
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/Skin", ref _Theme.TextureName, String.Empty);
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/SkinSelected", ref _Theme.STextureName, String.Empty);
|
||||
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/X", navigator, ref Rect.X);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/Y", navigator, ref Rect.Y);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/Z", navigator, ref Rect.Z);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/W", navigator, ref Rect.W);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/H", navigator, ref Rect.H);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/X", ref Rect.X);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Y", ref Rect.Y);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Z", ref Rect.Z);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/W", ref Rect.W);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/H", ref Rect.H);
|
||||
|
||||
if (CHelper.GetValueFromXML(item + "/Color", navigator, ref _Theme.ColorName, String.Empty))
|
||||
if (xmlReader.GetValue(item + "/Color", ref _Theme.ColorName, String.Empty))
|
||||
{
|
||||
_ThemeLoaded &= _Base.Theme.GetColor(_Theme.ColorName, SkinIndex, ref Color);
|
||||
}
|
||||
else
|
||||
{
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/R", navigator, ref Color.R);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/G", navigator, ref Color.G);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/B", navigator, ref Color.B);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/A", navigator, ref Color.A);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/R", ref Color.R);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/G", ref Color.G);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/B", ref Color.B);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/A", ref Color.A);
|
||||
}
|
||||
|
||||
if (CHelper.GetValueFromXML(item + "/SColor", navigator, ref _Theme.SColorName, String.Empty))
|
||||
if (xmlReader.GetValue(item + "/SColor", ref _Theme.SColorName, String.Empty))
|
||||
{
|
||||
_ThemeLoaded &= _Base.Theme.GetColor(_Theme.SColorName, SkinIndex, ref SColor);
|
||||
}
|
||||
else
|
||||
{
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/SR", navigator, ref SColor.R);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/SG", navigator, ref SColor.G);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/SB", navigator, ref SColor.B);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/SA", navigator, ref SColor.A);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SR", ref SColor.R);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SG", ref SColor.G);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SB", ref SColor.B);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SA", ref SColor.A);
|
||||
}
|
||||
|
||||
_ThemeLoaded &= Text.LoadTheme(item, "Text", navigator, SkinIndex, true);
|
||||
_ThemeLoaded &= Text.LoadTheme(item, "Text", xmlReader, SkinIndex, true);
|
||||
Text.Z = Rect.Z;
|
||||
if (CHelper.ItemExistsInXML(item + "/SText", navigator))
|
||||
if (xmlReader.ItemExists(item + "/SText"))
|
||||
{
|
||||
SelText = true;
|
||||
_ThemeLoaded &= SText.LoadTheme(item, "SText", navigator, SkinIndex, true);
|
||||
_ThemeLoaded &= SText.LoadTheme(item, "SText", xmlReader, SkinIndex, true);
|
||||
SText.Z = Rect.Z;
|
||||
}
|
||||
|
||||
|
||||
//Reflections
|
||||
if (CHelper.ItemExistsInXML(item + "/Reflection", navigator))
|
||||
if (xmlReader.ItemExists(item + "/Reflection"))
|
||||
{
|
||||
Reflection = true;
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/Reflection/Space", navigator, ref ReflectionSpace);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/Reflection/Height", navigator, ref ReflectionHeight);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Reflection/Space", ref ReflectionSpace);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Reflection/Height", ref ReflectionHeight);
|
||||
}
|
||||
else
|
||||
Reflection = false;
|
||||
|
||||
if (CHelper.ItemExistsInXML(item + "/SReflection", navigator))
|
||||
if (xmlReader.ItemExists(item + "/SReflection"))
|
||||
{
|
||||
SReflection = true;
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/SReflection/Space", navigator, ref SReflectionSpace);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/SReflection/Height", navigator, ref SReflectionHeight);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SReflection/Space", ref SReflectionSpace);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SReflection/Height", ref SReflectionHeight);
|
||||
}
|
||||
else
|
||||
SReflection = false;
|
||||
|
||||
@@ -3,7 +3,6 @@ using System.Collections.Generic;
|
||||
using System.Drawing;
|
||||
using System.Text;
|
||||
using System.Xml;
|
||||
using System.Xml.XPath;
|
||||
|
||||
namespace Vocaluxe.Menu
|
||||
{
|
||||
@@ -73,57 +72,57 @@ namespace Vocaluxe.Menu
|
||||
ReflectionHeight = 0f;
|
||||
}
|
||||
|
||||
public bool LoadTheme(string XmlPath, string ElementName, XPathNavigator navigator, int SkinIndex)
|
||||
public bool LoadTheme(string XmlPath, string ElementName, CXMLReader xmlReader, int SkinIndex)
|
||||
{
|
||||
string item = XmlPath + "/" + ElementName;
|
||||
_ThemeLoaded = true;
|
||||
|
||||
_ThemeLoaded &= CHelper.GetValueFromXML(item + "/Skin", navigator, ref _Theme.TextureName, String.Empty);
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/Skin", ref _Theme.TextureName, String.Empty);
|
||||
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/X", navigator, ref Rect.X);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/Y", navigator, ref Rect.Y);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/Z", navigator, ref Rect.Z);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/W", navigator, ref Rect.W);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/H", navigator, ref Rect.H);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/X", ref Rect.X);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Y", ref Rect.Y);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Z", ref Rect.Z);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/W", ref Rect.W);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/H", ref Rect.H);
|
||||
|
||||
_ThemeLoaded &= CHelper.TryGetIntValueFromXML(item + "/NumBars", navigator, ref _Theme.NumBars);
|
||||
_ThemeLoaded &= xmlReader.TryGetIntValue(item + "/NumBars", ref _Theme.NumBars);
|
||||
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/Space", navigator, ref Space);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Space", ref Space);
|
||||
|
||||
_ThemeLoaded &= CHelper.TryGetEnumValueFromXML<EEqualizerStyle>(item + "/Style", navigator, ref _Theme.Style);
|
||||
_ThemeLoaded &= xmlReader.TryGetEnumValue<EEqualizerStyle>(item + "/Style", ref _Theme.Style);
|
||||
|
||||
_ThemeLoaded &= CHelper.TryGetEnumValueFromXML<EOffOn>(item + "/DrawNegative", navigator, ref _Theme.DrawNegative);
|
||||
_ThemeLoaded &= xmlReader.TryGetEnumValue<EOffOn>(item + "/DrawNegative", ref _Theme.DrawNegative);
|
||||
|
||||
if (CHelper.GetValueFromXML(item + "/Color", navigator, ref _Theme.ColorName, String.Empty))
|
||||
if (xmlReader.GetValue(item + "/Color", ref _Theme.ColorName, String.Empty))
|
||||
{
|
||||
_ThemeLoaded &= _Base.Theme.GetColor(_Theme.ColorName, SkinIndex, ref Color);
|
||||
}
|
||||
else
|
||||
{
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/R", navigator, ref Color.R);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/G", navigator, ref Color.G);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/B", navigator, ref Color.B);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/A", navigator, ref Color.A);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/R", ref Color.R);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/G", ref Color.G);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/B", ref Color.B);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/A", ref Color.A);
|
||||
}
|
||||
|
||||
if (CHelper.GetValueFromXML(item + "/MaxColor", navigator, ref _Theme.MaxColorName, String.Empty))
|
||||
if (xmlReader.GetValue(item + "/MaxColor", ref _Theme.MaxColorName, String.Empty))
|
||||
{
|
||||
_ThemeLoaded &= _Base.Theme.GetColor(_Theme.ColorName, SkinIndex, ref Color);
|
||||
}
|
||||
else
|
||||
{
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/MaxR", navigator, ref MaxColor.R);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/MaxG", navigator, ref MaxColor.G);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/MaxB", navigator, ref MaxColor.B);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/MaxA", navigator, ref MaxColor.A);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/MaxR", ref MaxColor.R);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/MaxG", ref MaxColor.G);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/MaxB", ref MaxColor.B);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/MaxA", ref MaxColor.A);
|
||||
}
|
||||
|
||||
//Reflection
|
||||
if (CHelper.ItemExistsInXML(item + "/Reflection", navigator))
|
||||
if (xmlReader.ItemExists(item + "/Reflection"))
|
||||
{
|
||||
Reflection = true;
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/Reflection/Space", navigator, ref ReflectionSpace);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/Reflection/Height", navigator, ref ReflectionHeight);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Reflection/Space", ref ReflectionSpace);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Reflection/Height", ref ReflectionHeight);
|
||||
}
|
||||
else
|
||||
Reflection = false;
|
||||
|
||||
@@ -4,8 +4,6 @@ using System.Drawing;
|
||||
using System.Globalization;
|
||||
using System.IO;
|
||||
using System.Text;
|
||||
using System.Xml;
|
||||
using System.Xml.XPath;
|
||||
|
||||
namespace Vocaluxe.Menu
|
||||
{
|
||||
@@ -127,187 +125,7 @@ namespace Vocaluxe.Menu
|
||||
Rect = new RectangleF(Left, Upper, Rigth - Left, Lower - Upper);
|
||||
}
|
||||
|
||||
public static bool TryGetEnumValueFromXML<T>(string Cast, XPathNavigator Navigator, ref T value)
|
||||
where T : struct
|
||||
{
|
||||
string val = String.Empty;
|
||||
if (GetValueFromXML(Cast, Navigator, ref val, Enum.GetName(typeof(T), value)))
|
||||
{
|
||||
TryParse<T>(val, out value, true);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public static bool TryGetIntValueFromXML(string Cast, XPathNavigator Navigator, ref int value)
|
||||
{
|
||||
string val = String.Empty;
|
||||
if (GetValueFromXML(Cast, Navigator, ref val, value.ToString()))
|
||||
{
|
||||
int res = 0;
|
||||
if (int.TryParse(val, out res))
|
||||
{
|
||||
value = res;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public static bool TryGetFloatValueFromXML(string Cast, XPathNavigator Navigator, ref float value)
|
||||
{
|
||||
string val = String.Empty;
|
||||
if (GetValueFromXML(Cast, Navigator, ref val, value.ToString()))
|
||||
{
|
||||
float res = 0;
|
||||
if (TryParse(val, out res))
|
||||
{
|
||||
value = res;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public static bool GetValueFromXML(string Cast, XPathNavigator Navigator, ref string Value, string DefaultValue)
|
||||
{
|
||||
XPathNodeIterator iterator;
|
||||
int results = 0;
|
||||
string val = string.Empty;
|
||||
|
||||
try
|
||||
{
|
||||
Navigator.MoveToFirstChild();
|
||||
iterator = Navigator.Select(Cast);
|
||||
|
||||
while (iterator.MoveNext())
|
||||
{
|
||||
val = iterator.Current.Value;
|
||||
results++;
|
||||
}
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
results = 0;
|
||||
}
|
||||
|
||||
if ((results == 0) || (results > 1))
|
||||
{
|
||||
Value = DefaultValue;
|
||||
return false;
|
||||
}
|
||||
else
|
||||
{
|
||||
Value = val;
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public static List<string> GetValuesFromXML(string Cast, XPathNavigator Navigator)
|
||||
{
|
||||
List<string> values = new List<string>();
|
||||
|
||||
try
|
||||
{
|
||||
Navigator.MoveToRoot();
|
||||
Navigator.MoveToFirstChild();
|
||||
Navigator.MoveToFirstChild();
|
||||
|
||||
while (Navigator.Name != Cast)
|
||||
Navigator.MoveToNext();
|
||||
|
||||
Navigator.MoveToFirstChild();
|
||||
|
||||
values.Add(Navigator.LocalName);
|
||||
while (Navigator.MoveToNext())
|
||||
values.Add(Navigator.LocalName);
|
||||
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
return values;
|
||||
}
|
||||
|
||||
public static List<string> GetAttributesFromXML(string Cast, XPathNavigator Navigator, string attribute)
|
||||
{
|
||||
List<string> values = new List<string>();
|
||||
|
||||
try
|
||||
{
|
||||
Navigator.MoveToRoot();
|
||||
Navigator.MoveToFirstChild();
|
||||
|
||||
while (Navigator.Name != Cast)
|
||||
Navigator.MoveToNext();
|
||||
|
||||
Navigator.MoveToFirstChild();
|
||||
|
||||
values.Add(Navigator.LocalName);
|
||||
while (Navigator.MoveToNext())
|
||||
values.Add(Navigator.GetAttribute(attribute, ""));
|
||||
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
return values;
|
||||
}
|
||||
|
||||
public static bool GetInnerValuesFromXML(string Cast, XPathNavigator Navigator, ref List<string> Values)
|
||||
{
|
||||
try
|
||||
{
|
||||
Navigator.MoveToRoot();
|
||||
Navigator.MoveToFirstChild();
|
||||
Navigator.MoveToFirstChild();
|
||||
|
||||
while (Navigator.Name != Cast)
|
||||
Navigator.MoveToNext();
|
||||
|
||||
Navigator.MoveToFirstChild();
|
||||
|
||||
Values.Add(Navigator.Value);
|
||||
while (Navigator.MoveToNext())
|
||||
Values.Add(Navigator.Value);
|
||||
|
||||
}
|
||||
catch
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public static bool ItemExistsInXML(string Cast, XPathNavigator Navigator)
|
||||
{
|
||||
XPathNodeIterator iterator;
|
||||
int results = 0;
|
||||
|
||||
try
|
||||
{
|
||||
Navigator.MoveToFirstChild();
|
||||
iterator = Navigator.Select(Cast);
|
||||
|
||||
while (iterator.MoveNext())
|
||||
results++;
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
results = 0;
|
||||
}
|
||||
|
||||
if (results == 0)
|
||||
return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public List<string> ListFiles(string path, string cast)
|
||||
{
|
||||
|
||||
+16
-17
@@ -3,7 +3,6 @@ using System.Collections.Generic;
|
||||
using System.Drawing;
|
||||
using System.Text;
|
||||
using System.Xml;
|
||||
using System.Xml.XPath;
|
||||
|
||||
using Vocaluxe.Menu.SingNotes;
|
||||
|
||||
@@ -108,39 +107,39 @@ namespace Vocaluxe.Menu
|
||||
_Style = ELyricStyle.Fill;
|
||||
}
|
||||
|
||||
public bool LoadTheme(string XmlPath, string ElementName, XPathNavigator navigator, int SkinIndex)
|
||||
public bool LoadTheme(string XmlPath, string ElementName, CXMLReader xmlReader, int SkinIndex)
|
||||
{
|
||||
string item = XmlPath + "/" + ElementName;
|
||||
_ThemeLoaded = true;
|
||||
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/X", navigator, ref _X);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/Y", navigator, ref _Y);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/Z", navigator, ref _Z);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/W", navigator, ref _MaxW);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/H", navigator, ref _H);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/X", ref _X);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Y", ref _Y);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Z", ref _Z);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/W", ref _MaxW);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/H", ref _H);
|
||||
|
||||
if (CHelper.GetValueFromXML(item + "/Color", navigator, ref _Theme.ColorName, String.Empty))
|
||||
if (xmlReader.GetValue(item + "/Color", ref _Theme.ColorName, String.Empty))
|
||||
{
|
||||
_ThemeLoaded &= _Base.Theme.GetColor(_Theme.ColorName, SkinIndex, ref Color);
|
||||
}
|
||||
else
|
||||
{
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/R", navigator, ref Color.R);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/G", navigator, ref Color.G);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/B", navigator, ref Color.B);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/A", navigator, ref Color.A);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/R", ref Color.R);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/G", ref Color.G);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/B", ref Color.B);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/A", ref Color.A);
|
||||
}
|
||||
|
||||
if (CHelper.GetValueFromXML(item + "/SColor", navigator, ref _Theme.SColorName, String.Empty))
|
||||
if (xmlReader.GetValue(item + "/SColor", ref _Theme.SColorName, String.Empty))
|
||||
{
|
||||
_ThemeLoaded &= _Base.Theme.GetColor(_Theme.SColorName, SkinIndex, ref ColorProcessed);
|
||||
}
|
||||
else
|
||||
{
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/SR", navigator, ref ColorProcessed.R);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/SG", navigator, ref ColorProcessed.G);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/SB", navigator, ref ColorProcessed.B);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/SA", navigator, ref ColorProcessed.A);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SR", ref ColorProcessed.R);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SG", ref ColorProcessed.G);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SB", ref ColorProcessed.B);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SA", ref ColorProcessed.A);
|
||||
}
|
||||
|
||||
if (_ThemeLoaded)
|
||||
|
||||
+28
-41
@@ -6,7 +6,6 @@ using System.IO;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
using System.Xml;
|
||||
using System.Xml.XPath;
|
||||
|
||||
using Vocaluxe.Menu;
|
||||
using Vocaluxe.Menu.SingNotes;
|
||||
@@ -176,45 +175,37 @@ namespace Vocaluxe.Menu
|
||||
{
|
||||
string file = Path.Combine(XmlPath, _ThemeName + ".xml");
|
||||
|
||||
XPathDocument xPathDoc = null;
|
||||
XPathNavigator navigator = null;
|
||||
CXMLReader xmlReader = null;
|
||||
|
||||
bool loaded = false;
|
||||
try
|
||||
{
|
||||
xPathDoc = new XPathDocument(file);
|
||||
navigator = xPathDoc.CreateNavigator();
|
||||
loaded = true;
|
||||
xmlReader = new CXMLReader(file);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
loaded = false;
|
||||
if (navigator != null)
|
||||
navigator = null;
|
||||
|
||||
if (xPathDoc != null)
|
||||
xPathDoc = null;
|
||||
if (xmlReader != null)
|
||||
xmlReader = null;
|
||||
|
||||
_Base.Log.LogError("Error loading theme file " + file + ": " + e.Message);
|
||||
}
|
||||
|
||||
bool VersionCheck = false;
|
||||
if (loaded)
|
||||
VersionCheck = CheckVersion(_ScreenVersion, navigator);
|
||||
if (xmlReader != null)
|
||||
VersionCheck = CheckVersion(_ScreenVersion, xmlReader);
|
||||
|
||||
int SkinIndex = _Base.Theme.GetSkinIndex(_PartyModeID);
|
||||
|
||||
if (loaded && VersionCheck && SkinIndex != -1)
|
||||
if (xmlReader != null && VersionCheck && SkinIndex != -1)
|
||||
{
|
||||
_ThemePath = XmlPath;
|
||||
LoadThemeBasics(navigator, SkinIndex);
|
||||
LoadThemeBasics(xmlReader, SkinIndex);
|
||||
|
||||
if (_ThemeBackgrounds != null)
|
||||
{
|
||||
for (int i = 0; i < _ThemeBackgrounds.Length; i++)
|
||||
{
|
||||
CBackground background = new CBackground(_Base, _PartyModeID);
|
||||
if (background.LoadTheme("//root/" + _ThemeName, _ThemeBackgrounds[i], navigator, SkinIndex))
|
||||
if (background.LoadTheme("//root/" + _ThemeName, _ThemeBackgrounds[i], xmlReader, SkinIndex))
|
||||
{
|
||||
_htBackgrounds.Add(_ThemeBackgrounds[i], AddBackground(background));
|
||||
}
|
||||
@@ -230,7 +221,7 @@ namespace Vocaluxe.Menu
|
||||
for (int i = 0; i < _ThemeStatics.Length; i++)
|
||||
{
|
||||
CStatic stat = new CStatic(_Base, _PartyModeID);
|
||||
if (stat.LoadTheme("//root/" + _ThemeName, _ThemeStatics[i], navigator, SkinIndex))
|
||||
if (stat.LoadTheme("//root/" + _ThemeName, _ThemeStatics[i], xmlReader, SkinIndex))
|
||||
{
|
||||
_htStatics.Add(_ThemeStatics[i], AddStatic(stat));
|
||||
}
|
||||
@@ -246,7 +237,7 @@ namespace Vocaluxe.Menu
|
||||
for (int i = 0; i < _ThemeTexts.Length; i++)
|
||||
{
|
||||
CText text = new CText(_Base, _PartyModeID);
|
||||
if (text.LoadTheme("//root/" + _ThemeName, _ThemeTexts[i], navigator, SkinIndex))
|
||||
if (text.LoadTheme("//root/" + _ThemeName, _ThemeTexts[i], xmlReader, SkinIndex))
|
||||
{
|
||||
_htTexts.Add(_ThemeTexts[i], AddText(text));
|
||||
}
|
||||
@@ -262,7 +253,7 @@ namespace Vocaluxe.Menu
|
||||
for (int i = 0; i < _ThemeButtons.Length; i++)
|
||||
{
|
||||
CButton button = new CButton(_Base, _PartyModeID);
|
||||
if (button.LoadTheme("//root/" + _ThemeName, _ThemeButtons[i], navigator, SkinIndex))
|
||||
if (button.LoadTheme("//root/" + _ThemeName, _ThemeButtons[i], xmlReader, SkinIndex))
|
||||
{
|
||||
_htButtons.Add(_ThemeButtons[i], AddButton(button));
|
||||
}
|
||||
@@ -278,7 +269,7 @@ namespace Vocaluxe.Menu
|
||||
for (int i = 0; i < _ThemeSelectSlides.Length; i++)
|
||||
{
|
||||
CSelectSlide slide = new CSelectSlide(_Base, _PartyModeID);
|
||||
if (slide.LoadTheme("//root/" + _ThemeName, _ThemeSelectSlides[i], navigator, SkinIndex))
|
||||
if (slide.LoadTheme("//root/" + _ThemeName, _ThemeSelectSlides[i], xmlReader, SkinIndex))
|
||||
{
|
||||
_htSelectSlides.Add(_ThemeSelectSlides[i], AddSelectSlide(slide));
|
||||
}
|
||||
@@ -294,7 +285,7 @@ namespace Vocaluxe.Menu
|
||||
for (int i = 0; i < _ThemeSongMenus.Length; i++)
|
||||
{
|
||||
CSongMenu sm = new CSongMenu(_Base, _PartyModeID);
|
||||
if (sm.LoadTheme("//root/" + _ThemeName, _ThemeSongMenus[i], navigator, SkinIndex))
|
||||
if (sm.LoadTheme("//root/" + _ThemeName, _ThemeSongMenus[i], xmlReader, SkinIndex))
|
||||
{
|
||||
_htSongMenus.Add(_ThemeSongMenus[i], AddSongMenu(sm));
|
||||
}
|
||||
@@ -310,7 +301,7 @@ namespace Vocaluxe.Menu
|
||||
for (int i = 0; i < _ThemeLyrics.Length; i++)
|
||||
{
|
||||
CLyric lyric = new CLyric(_Base, _PartyModeID);
|
||||
if (lyric.LoadTheme("//root/" + _ThemeName, _ThemeLyrics[i], navigator, SkinIndex))
|
||||
if (lyric.LoadTheme("//root/" + _ThemeName, _ThemeLyrics[i], xmlReader, SkinIndex))
|
||||
{
|
||||
_htLyrics.Add(_ThemeLyrics[i], AddLyric(lyric));
|
||||
}
|
||||
@@ -326,7 +317,7 @@ namespace Vocaluxe.Menu
|
||||
for (int i = 0; i < _ThemeSingNotes.Length; i++)
|
||||
{
|
||||
CSingNotes notes = new CSingNotesClassic(_Base, _PartyModeID);
|
||||
if (notes.LoadTheme("//root/" + _ThemeName, _ThemeSingNotes[i], navigator, SkinIndex))
|
||||
if (notes.LoadTheme("//root/" + _ThemeName, _ThemeSingNotes[i], xmlReader, SkinIndex))
|
||||
{
|
||||
_htSingNotes.Add(_ThemeSingNotes[i], AddSingNote(notes));
|
||||
}
|
||||
@@ -342,7 +333,7 @@ namespace Vocaluxe.Menu
|
||||
for (int i = 0; i < _ThemeNameSelections.Length; i++)
|
||||
{
|
||||
CNameSelection nsel = new CNameSelection(_Base, _PartyModeID);
|
||||
if (nsel.LoadTheme("//root/" + _ThemeName, _ThemeNameSelections[i], navigator, SkinIndex))
|
||||
if (nsel.LoadTheme("//root/" + _ThemeName, _ThemeNameSelections[i], xmlReader, SkinIndex))
|
||||
{
|
||||
_htNameSelections.Add(_ThemeNameSelections[i], AddNameSelection(nsel));
|
||||
}
|
||||
@@ -358,7 +349,7 @@ namespace Vocaluxe.Menu
|
||||
for (int i = 0; i < _ThemeEqualizers.Length; i++)
|
||||
{
|
||||
CEqualizer eq = new CEqualizer(_Base, _PartyModeID);
|
||||
if (eq.LoadTheme("//root/" + _ThemeName, _ThemeEqualizers[i], navigator, SkinIndex))
|
||||
if (eq.LoadTheme("//root/" + _ThemeName, _ThemeEqualizers[i], xmlReader, SkinIndex))
|
||||
{
|
||||
_htEqualizers.Add(_ThemeEqualizers[i], AddEqualizer(eq));
|
||||
}
|
||||
@@ -374,7 +365,7 @@ namespace Vocaluxe.Menu
|
||||
for (int i = 0; i < _ThemePlaylists.Length; i++)
|
||||
{
|
||||
CPlaylist pls = new CPlaylist(_Base, _PartyModeID);
|
||||
if (pls.LoadTheme("//root/" + _ThemeName, _ThemePlaylists[i], navigator, SkinIndex))
|
||||
if (pls.LoadTheme("//root/" + _ThemeName, _ThemePlaylists[i], xmlReader, SkinIndex))
|
||||
{
|
||||
_htPlaylists.Add(_ThemePlaylists[i], AddPlaylist(pls));
|
||||
}
|
||||
@@ -390,7 +381,7 @@ namespace Vocaluxe.Menu
|
||||
for (int i = 0; i < _ThemeParticleEffects.Length; i++)
|
||||
{
|
||||
CParticleEffect pe = new CParticleEffect(_Base, _PartyModeID);
|
||||
if (pe.LoadTheme("//root/" + _ThemeName, _ThemeParticleEffects[i], navigator, SkinIndex))
|
||||
if (pe.LoadTheme("//root/" + _ThemeName, _ThemeParticleEffects[i], xmlReader, SkinIndex))
|
||||
{
|
||||
_htParticleEffects.Add(_ThemeParticleEffects[i], AddParticleEffect(pe));
|
||||
}
|
||||
@@ -406,7 +397,7 @@ namespace Vocaluxe.Menu
|
||||
for (int i = 0; i < _ThemeScreenSettings.Length; i++)
|
||||
{
|
||||
CScreenSetting se = new CScreenSetting(_Base, _PartyModeID);
|
||||
if (se.LoadTheme("//root/" + _ThemeName, _ThemeScreenSettings[i], navigator, SkinIndex))
|
||||
if (se.LoadTheme("//root/" + _ThemeName, _ThemeScreenSettings[i], xmlReader, SkinIndex))
|
||||
{
|
||||
_htScreenSettings.Add(_ThemeScreenSettings[i], AddScreenSetting(se));
|
||||
}
|
||||
@@ -417,10 +408,6 @@ namespace Vocaluxe.Menu
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
public virtual void SaveTheme()
|
||||
@@ -2516,10 +2503,10 @@ namespace Vocaluxe.Menu
|
||||
}
|
||||
}
|
||||
|
||||
private bool CheckVersion(int Version, XPathNavigator navigator)
|
||||
private bool CheckVersion(int Version, CXMLReader xmlReader)
|
||||
{
|
||||
int version = 0;
|
||||
CHelper.TryGetIntValueFromXML("//root/" + _ThemeName + "/ScreenVersion", navigator, ref version);
|
||||
xmlReader.TryGetIntValue("//root/" + _ThemeName + "/ScreenVersion", ref version);
|
||||
|
||||
if (version == Version)
|
||||
return true;
|
||||
@@ -2537,14 +2524,14 @@ namespace Vocaluxe.Menu
|
||||
return false;
|
||||
}
|
||||
|
||||
private void LoadThemeBasics(XPathNavigator navigator, int SkinIndex)
|
||||
private void LoadThemeBasics(CXMLReader xmlReader, int SkinIndex)
|
||||
{
|
||||
string value = String.Empty;
|
||||
|
||||
// Backgrounds
|
||||
CBackground background = new CBackground(_Base, _PartyModeID);
|
||||
int i = 1;
|
||||
while (background.LoadTheme("//root/" + _ThemeName, "Background" + i.ToString(), navigator, SkinIndex))
|
||||
while (background.LoadTheme("//root/" + _ThemeName, "Background" + i.ToString(), xmlReader, SkinIndex))
|
||||
{
|
||||
AddBackground(background);
|
||||
background = new CBackground(_Base, _PartyModeID);
|
||||
@@ -2554,7 +2541,7 @@ namespace Vocaluxe.Menu
|
||||
// Statics
|
||||
CStatic stat = new CStatic(_Base, _PartyModeID);
|
||||
i = 1;
|
||||
while (stat.LoadTheme("//root/" + _ThemeName, "Static" + i.ToString(), navigator, SkinIndex))
|
||||
while (stat.LoadTheme("//root/" + _ThemeName, "Static" + i.ToString(), xmlReader, SkinIndex))
|
||||
{
|
||||
AddStatic(stat);
|
||||
stat = new CStatic(_Base, _PartyModeID);
|
||||
@@ -2564,7 +2551,7 @@ namespace Vocaluxe.Menu
|
||||
// Texts
|
||||
CText text = new CText(_Base, _PartyModeID);
|
||||
i = 1;
|
||||
while (text.LoadTheme("//root/" + _ThemeName, "Text" + i.ToString(), navigator, SkinIndex))
|
||||
while (text.LoadTheme("//root/" + _ThemeName, "Text" + i.ToString(), xmlReader, SkinIndex))
|
||||
{
|
||||
AddText(text);
|
||||
text = new CText(_Base, _PartyModeID);
|
||||
@@ -2574,7 +2561,7 @@ namespace Vocaluxe.Menu
|
||||
// ParticleEffects
|
||||
CParticleEffect partef = new CParticleEffect(_Base, _PartyModeID);
|
||||
i = 1;
|
||||
while (partef.LoadTheme("//root/" + _ThemeName, "ParticleEffect" + i.ToString(), navigator, SkinIndex))
|
||||
while (partef.LoadTheme("//root/" + _ThemeName, "ParticleEffect" + i.ToString(), xmlReader, SkinIndex))
|
||||
{
|
||||
AddParticleEffect(partef);
|
||||
partef = new CParticleEffect(_Base, _PartyModeID);
|
||||
|
||||
@@ -2,9 +2,8 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Drawing;
|
||||
using System.Text;
|
||||
using System.Xml;
|
||||
using System.Xml.XPath;
|
||||
using System.Windows.Forms;
|
||||
using System.Xml;
|
||||
|
||||
namespace Vocaluxe.Menu
|
||||
{
|
||||
@@ -109,54 +108,54 @@ namespace Vocaluxe.Menu
|
||||
UpdateList(0);
|
||||
}
|
||||
|
||||
public bool LoadTheme(string XmlPath, string ElementName, XPathNavigator navigator, int SkinIndex)
|
||||
public bool LoadTheme(string XmlPath, string ElementName, CXMLReader xmlReader, int SkinIndex)
|
||||
{
|
||||
string item = XmlPath + "/" + ElementName;
|
||||
_ThemeLoaded = true;
|
||||
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/X", navigator, ref Rect.X);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/Y", navigator, ref Rect.Y);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/Z", navigator, ref Rect.Z);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/W", navigator, ref Rect.W);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/H", navigator, ref Rect.H);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/X", ref Rect.X);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Y", ref Rect.Y);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Z", ref Rect.Z);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/W", ref Rect.W);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/H", ref Rect.H);
|
||||
|
||||
_ThemeLoaded &= CHelper.GetValueFromXML(item + "/SkinEmptyTile", navigator, ref _Theme.TextureEmptyTileName, String.Empty);
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/SkinEmptyTile", ref _Theme.TextureEmptyTileName, String.Empty);
|
||||
|
||||
if (CHelper.GetValueFromXML(item + "/ColorEmptyTile", navigator, ref _Theme.ColorEmptyTileName, String.Empty))
|
||||
if (xmlReader.GetValue(item + "/ColorEmptyTile", ref _Theme.ColorEmptyTileName, String.Empty))
|
||||
{
|
||||
_ThemeLoaded &= _Base.Theme.GetColor(_Theme.ColorEmptyTileName, SkinIndex, ref ColorEmptyTile);
|
||||
}
|
||||
else
|
||||
{
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/R", navigator, ref ColorEmptyTile.R);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/G", navigator, ref ColorEmptyTile.G);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/B", navigator, ref ColorEmptyTile.B);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/A", navigator, ref ColorEmptyTile.A);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/R", ref ColorEmptyTile.R);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/G", ref ColorEmptyTile.G);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/B", ref ColorEmptyTile.B);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/A", ref ColorEmptyTile.A);
|
||||
}
|
||||
|
||||
_ThemeLoaded &= CHelper.GetValueFromXML(item + "/SkinTileSelected", navigator, ref _Theme.TextureTileSelectedName, String.Empty);
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/SkinTileSelected", ref _Theme.TextureTileSelectedName, String.Empty);
|
||||
|
||||
_ThemeLoaded &= CHelper.TryGetIntValueFromXML(item + "/Tiles/W", navigator, ref _TileW);
|
||||
_ThemeLoaded &= CHelper.TryGetIntValueFromXML(item + "/Tiles/H", navigator, ref _TileH);
|
||||
_ThemeLoaded &= CHelper.TryGetIntValueFromXML(item + "/Tiles/NumW", navigator, ref _NumW);
|
||||
_ThemeLoaded &= CHelper.TryGetIntValueFromXML(item + "/Tiles/NumH", navigator, ref _NumH);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/Tiles/SpaceW", navigator, ref _SpaceW);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/Tiles/SpaceH", navigator, ref _SpaceH);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/Tiles/Name/Space", navigator, ref _Theme.NameSpace);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/Tiles/Name/H", navigator, ref _Theme.NameHeight);
|
||||
_ThemeLoaded &= CHelper.GetValueFromXML(item + "/Tiles/Name/Font", navigator, ref _Theme.NameFont, "Normal");
|
||||
_ThemeLoaded &= CHelper.TryGetEnumValueFromXML<EStyle>(item + "/Tiles/Name/Style", navigator, ref _Theme.NameStyle);
|
||||
if (CHelper.GetValueFromXML(item + "/Tiles/Name/Color", navigator, ref _Theme.NameColorName, String.Empty))
|
||||
_ThemeLoaded &= xmlReader.TryGetIntValue(item + "/Tiles/W", ref _TileW);
|
||||
_ThemeLoaded &= xmlReader.TryGetIntValue(item + "/Tiles/H", ref _TileH);
|
||||
_ThemeLoaded &= xmlReader.TryGetIntValue(item + "/Tiles/NumW", ref _NumW);
|
||||
_ThemeLoaded &= xmlReader.TryGetIntValue(item + "/Tiles/NumH", ref _NumH);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Tiles/SpaceW", ref _SpaceW);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Tiles/SpaceH", ref _SpaceH);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Tiles/Name/Space", ref _Theme.NameSpace);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Tiles/Name/H", ref _Theme.NameHeight);
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/Tiles/Name/Font", ref _Theme.NameFont, "Normal");
|
||||
_ThemeLoaded &= xmlReader.TryGetEnumValue<EStyle>(item + "/Tiles/Name/Style", ref _Theme.NameStyle);
|
||||
if (xmlReader.GetValue(item + "/Tiles/Name/Color", ref _Theme.NameColorName, String.Empty))
|
||||
{
|
||||
_ThemeLoaded &= _Base.Theme.GetColor(_Theme.NameColorName, SkinIndex, ref _Theme.NameColor);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (CHelper.TryGetFloatValueFromXML(item + "/Tiles/Name/R", navigator, ref _Theme.NameColor.R))
|
||||
if (xmlReader.TryGetFloatValue(item + "/Tiles/Name/R", ref _Theme.NameColor.R))
|
||||
{
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/Tiles/Name/G", navigator, ref _Theme.NameColor.G);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/Tiles/Name/B", navigator, ref _Theme.NameColor.B);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/Tiles/Name/A", navigator, ref _Theme.NameColor.A);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Tiles/Name/G", ref _Theme.NameColor.G);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Tiles/Name/B", ref _Theme.NameColor.B);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Tiles/Name/A", ref _Theme.NameColor.A);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -5,8 +5,6 @@ using System.Drawing;
|
||||
using System.IO;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
using System.Xml;
|
||||
using System.Xml.XPath;
|
||||
|
||||
using Vocaluxe.Menu;
|
||||
using Vocaluxe.Menu.SingNotes;
|
||||
|
||||
@@ -3,7 +3,6 @@ using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.Text;
|
||||
using System.Xml;
|
||||
using System.Xml.XPath;
|
||||
|
||||
namespace Vocaluxe.Menu
|
||||
{
|
||||
@@ -381,34 +380,34 @@ namespace Vocaluxe.Menu
|
||||
Visible = true;
|
||||
}
|
||||
|
||||
public bool LoadTheme(string XmlPath, string ElementName, XPathNavigator navigator, int SkinIndex)
|
||||
public bool LoadTheme(string XmlPath, string ElementName, CXMLReader xmlReader, int SkinIndex)
|
||||
{
|
||||
string item = XmlPath + "/" + ElementName;
|
||||
_ThemeLoaded = true;
|
||||
|
||||
_ThemeLoaded &= CHelper.GetValueFromXML(item + "/Skin", navigator, ref _Theme.TextureName, String.Empty);
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/Skin", ref _Theme.TextureName, String.Empty);
|
||||
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/X", navigator, ref Rect.X);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/Y", navigator, ref Rect.Y);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/Z", navigator, ref Rect.Z);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/W", navigator, ref Rect.W);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/H", navigator, ref Rect.H);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/X", ref Rect.X);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Y", ref Rect.Y);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Z", ref Rect.Z);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/W", ref Rect.W);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/H", ref Rect.H);
|
||||
|
||||
if (CHelper.GetValueFromXML(item + "/Color", navigator, ref _Theme.ColorName, String.Empty))
|
||||
if (xmlReader.GetValue(item + "/Color", ref _Theme.ColorName, String.Empty))
|
||||
{
|
||||
_ThemeLoaded &= _Base.Theme.GetColor(_Theme.ColorName, SkinIndex, ref Color);
|
||||
}
|
||||
else
|
||||
{
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/R", navigator, ref Color.R);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/G", navigator, ref Color.G);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/B", navigator, ref Color.B);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/A", navigator, ref Color.A);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/R", ref Color.R);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/G", ref Color.G);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/B", ref Color.B);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/A", ref Color.A);
|
||||
}
|
||||
|
||||
_ThemeLoaded &= CHelper.TryGetEnumValueFromXML<EParticleType>(item + "/Type", navigator, ref _Type);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/Size", navigator, ref _Size);
|
||||
_ThemeLoaded &= CHelper.TryGetIntValueFromXML(item + "/MaxNumber", navigator, ref _MaxNumber);
|
||||
_ThemeLoaded &= xmlReader.TryGetEnumValue<EParticleType>(item + "/Type", ref _Type);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Size", ref _Size);
|
||||
_ThemeLoaded &= xmlReader.TryGetIntValue(item + "/MaxNumber", ref _MaxNumber);
|
||||
|
||||
if (_ThemeLoaded)
|
||||
{
|
||||
|
||||
@@ -2,9 +2,8 @@
|
||||
using System.Drawing;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using System.Xml;
|
||||
using System.Xml.XPath;
|
||||
using System.Windows.Forms;
|
||||
using System.Xml;
|
||||
|
||||
using Vocaluxe.Menu.SongMenu;
|
||||
|
||||
@@ -236,57 +235,57 @@ namespace Vocaluxe.Menu
|
||||
_Interactions.AddButton(_Theme.ButtonPlaylistSing);
|
||||
}
|
||||
|
||||
public bool LoadTheme(string XmlPath, string ElementName, XPathNavigator navigator, int SkinIndex)
|
||||
public bool LoadTheme(string XmlPath, string ElementName, CXMLReader xmlReader, int SkinIndex)
|
||||
{
|
||||
string item = XmlPath + "/" + ElementName;
|
||||
_ThemeLoaded = true;
|
||||
|
||||
_ThemeLoaded &= CHelper.GetValueFromXML(item + "/SkinBackground", navigator, ref _Theme.TextureBackgroundName, String.Empty);
|
||||
_ThemeLoaded &= CHelper.GetValueFromXML(item + "/SkinBackgroundSelected", navigator, ref _Theme.STextureBackgroundName, String.Empty);
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/SkinBackground", ref _Theme.TextureBackgroundName, String.Empty);
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/SkinBackgroundSelected", ref _Theme.STextureBackgroundName, String.Empty);
|
||||
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/X", navigator, ref Rect.X);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/Y", navigator, ref Rect.Y);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/Z", navigator, ref Rect.Z);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/W", navigator, ref Rect.W);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/H", navigator, ref Rect.H);
|
||||
if (CHelper.GetValueFromXML(item + "/ColorBackground", navigator, ref _Theme.ColorBackgroundName, String.Empty))
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/X", ref Rect.X);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Y", ref Rect.Y);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Z", ref Rect.Z);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/W", ref Rect.W);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/H", ref Rect.H);
|
||||
if (xmlReader.GetValue(item + "/ColorBackground", ref _Theme.ColorBackgroundName, String.Empty))
|
||||
{
|
||||
_ThemeLoaded &= _Base.Theme.GetColor(_Theme.ColorBackgroundName, SkinIndex, ref BackgroundColor);
|
||||
}
|
||||
else
|
||||
{
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/BackgroundR", navigator, ref BackgroundColor.R);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/BackgroundG", navigator, ref BackgroundColor.G);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/BackgroundB", navigator, ref BackgroundColor.B);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/BackgroundA", navigator, ref BackgroundColor.A);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/BackgroundR", ref BackgroundColor.R);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/BackgroundG", ref BackgroundColor.G);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/BackgroundB", ref BackgroundColor.B);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/BackgroundA", ref BackgroundColor.A);
|
||||
}
|
||||
if (CHelper.GetValueFromXML(item + "/SColorBackground", navigator, ref _Theme.SColorBackgroundName, String.Empty))
|
||||
if (xmlReader.GetValue(item + "/SColorBackground", ref _Theme.SColorBackgroundName, String.Empty))
|
||||
{
|
||||
_ThemeLoaded &= _Base.Theme.GetColor(_Theme.SColorBackgroundName, SkinIndex, ref BackgroundSColor);
|
||||
}
|
||||
else
|
||||
{
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/SBackgroundR", navigator, ref BackgroundSColor.R);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/SBackgroundG", navigator, ref BackgroundSColor.G);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/SBackgroundB", navigator, ref BackgroundSColor.B);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/SBackgroundA", navigator, ref BackgroundSColor.A);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SBackgroundR", ref BackgroundSColor.R);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SBackgroundG", ref BackgroundSColor.G);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SBackgroundB", ref BackgroundSColor.B);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SBackgroundA", ref BackgroundSColor.A);
|
||||
}
|
||||
|
||||
_ThemeLoaded &= _Theme.Text1.LoadTheme(item, "TextPart1", navigator, SkinIndex);
|
||||
_ThemeLoaded &= _Theme.Text1.LoadTheme(item, "TextPart1", xmlReader, SkinIndex);
|
||||
|
||||
_ThemeLoaded &= _Theme.StaticCover.LoadTheme(item, "StaticCover", navigator, SkinIndex);
|
||||
_ThemeLoaded &= _Theme.StaticPlaylistHeader.LoadTheme(item, "StaticPlaylistHeader", navigator, SkinIndex);
|
||||
_ThemeLoaded &= _Theme.StaticPlaylistFooter.LoadTheme(item, "StaticPlaylistFooter", navigator, SkinIndex);
|
||||
_ThemeLoaded &= _Theme.StaticCover.LoadTheme(item, "StaticCover", xmlReader, SkinIndex);
|
||||
_ThemeLoaded &= _Theme.StaticPlaylistHeader.LoadTheme(item, "StaticPlaylistHeader", xmlReader, SkinIndex);
|
||||
_ThemeLoaded &= _Theme.StaticPlaylistFooter.LoadTheme(item, "StaticPlaylistFooter", xmlReader, SkinIndex);
|
||||
|
||||
_ThemeLoaded &= _Theme.ButtonPlaylistName.LoadTheme(item, "ButtonPlaylistName", navigator, SkinIndex);
|
||||
_ThemeLoaded &= _Theme.ButtonPlaylistSing.LoadTheme(item, "ButtonPlaylistSing", navigator, SkinIndex);
|
||||
_ThemeLoaded &= _Theme.ButtonPlaylistClose.LoadTheme(item, "ButtonPlaylistClose", navigator, SkinIndex);
|
||||
_ThemeLoaded &= _Theme.ButtonPlaylistSave.LoadTheme(item, "ButtonPlaylistSave", navigator, SkinIndex);
|
||||
_ThemeLoaded &= _Theme.ButtonPlaylistDelete.LoadTheme(item, "ButtonPlaylistDelete", navigator, SkinIndex);
|
||||
_ThemeLoaded &= _Theme.ButtonPlaylistName.LoadTheme(item, "ButtonPlaylistName", xmlReader, SkinIndex);
|
||||
_ThemeLoaded &= _Theme.ButtonPlaylistSing.LoadTheme(item, "ButtonPlaylistSing", xmlReader, SkinIndex);
|
||||
_ThemeLoaded &= _Theme.ButtonPlaylistClose.LoadTheme(item, "ButtonPlaylistClose", xmlReader, SkinIndex);
|
||||
_ThemeLoaded &= _Theme.ButtonPlaylistSave.LoadTheme(item, "ButtonPlaylistSave", xmlReader, SkinIndex);
|
||||
_ThemeLoaded &= _Theme.ButtonPlaylistDelete.LoadTheme(item, "ButtonPlaylistDelete", xmlReader, SkinIndex);
|
||||
|
||||
_ThemeLoaded &= _Theme.SelectSlideGameMode.LoadTheme(item, "SelectSlideGameMode", navigator, SkinIndex);
|
||||
_ThemeLoaded &= _Theme.SelectSlideGameMode.LoadTheme(item, "SelectSlideGameMode", xmlReader, SkinIndex);
|
||||
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/EntryHeight", navigator, ref _Theme.EntryHeight);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/EntryHeight", ref _Theme.EntryHeight);
|
||||
if (_ThemeLoaded)
|
||||
{
|
||||
_Theme.Name = ElementName;
|
||||
|
||||
@@ -3,7 +3,6 @@ using System.Collections.Generic;
|
||||
using System.Drawing;
|
||||
using System.Text;
|
||||
using System.Xml;
|
||||
using System.Xml.XPath;
|
||||
|
||||
namespace Vocaluxe.Menu
|
||||
{
|
||||
@@ -51,13 +50,13 @@ namespace Vocaluxe.Menu
|
||||
_ThemeLoaded = ts._ThemeLoaded;
|
||||
}
|
||||
|
||||
public bool LoadTheme(string XmlPath, string ElementName, XPathNavigator navigator, int SkinIndex)
|
||||
public bool LoadTheme(string XmlPath, string ElementName, CXMLReader xmlReader, int SkinIndex)
|
||||
{
|
||||
string item = XmlPath + "/" + ElementName;
|
||||
_ThemeLoaded = true;
|
||||
|
||||
_ThemeLoaded &= CHelper.GetValueFromXML(item + "/Value", navigator, ref _Theme.Value, String.Empty);
|
||||
_ThemeLoaded &= CHelper.TryGetEnumValueFromXML<ESettingType>(item + "/Type", navigator, ref _Theme.Type);
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/Value", ref _Theme.Value, String.Empty);
|
||||
_ThemeLoaded &= xmlReader.TryGetEnumValue<ESettingType>(item + "/Type", ref _Theme.Type);
|
||||
|
||||
if (_ThemeLoaded)
|
||||
{
|
||||
|
||||
@@ -3,7 +3,6 @@ using System.Collections.Generic;
|
||||
using System.Drawing;
|
||||
using System.Text;
|
||||
using System.Xml;
|
||||
using System.Xml.XPath;
|
||||
|
||||
namespace Vocaluxe.Menu
|
||||
{
|
||||
@@ -230,133 +229,133 @@ namespace Vocaluxe.Menu
|
||||
Visible = slide.Visible;
|
||||
}
|
||||
|
||||
public bool LoadTheme(string XmlPath, string ElementName, XPathNavigator navigator, int SkinIndex)
|
||||
public bool LoadTheme(string XmlPath, string ElementName, CXMLReader xmlReader, int SkinIndex)
|
||||
{
|
||||
string item = XmlPath + "/" + ElementName;
|
||||
_ThemeLoaded = true;
|
||||
|
||||
_ThemeLoaded &= CHelper.GetValueFromXML(item + "/Skin", navigator, ref _Theme.TextureName, String.Empty);
|
||||
_ThemeLoaded &= CHelper.GetValueFromXML(item + "/SkinArrowLeft", navigator, ref _Theme.TextureArrowLeftName, String.Empty);
|
||||
_ThemeLoaded &= CHelper.GetValueFromXML(item + "/SkinArrowRight", navigator, ref _Theme.TextureArrowRightName, String.Empty);
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/Skin", ref _Theme.TextureName, String.Empty);
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/SkinArrowLeft", ref _Theme.TextureArrowLeftName, String.Empty);
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/SkinArrowRight", ref _Theme.TextureArrowRightName, String.Empty);
|
||||
|
||||
_ThemeLoaded &= CHelper.GetValueFromXML(item + "/SkinSelected", navigator, ref _Theme.STextureName, String.Empty);
|
||||
_ThemeLoaded &= CHelper.GetValueFromXML(item + "/SkinArrowLeftSelected", navigator, ref _Theme.STextureArrowLeftName, String.Empty);
|
||||
_ThemeLoaded &= CHelper.GetValueFromXML(item + "/SkinArrowRightSelected", navigator, ref _Theme.STextureArrowRightName, String.Empty);
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/SkinSelected", ref _Theme.STextureName, String.Empty);
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/SkinArrowLeftSelected", ref _Theme.STextureArrowLeftName, String.Empty);
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/SkinArrowRightSelected", ref _Theme.STextureArrowRightName, String.Empty);
|
||||
|
||||
_ThemeLoaded &= CHelper.GetValueFromXML(item + "/SkinHighlighted", navigator, ref _Theme.HTextureName, String.Empty);
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/SkinHighlighted", ref _Theme.HTextureName, String.Empty);
|
||||
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/X", navigator, ref Rect.X);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/Y", navigator, ref Rect.Y);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/Z", navigator, ref Rect.Z);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/W", navigator, ref Rect.W);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/H", navigator, ref Rect.H);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/X", ref Rect.X);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Y", ref Rect.Y);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Z", ref Rect.Z);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/W", ref Rect.W);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/H", ref Rect.H);
|
||||
|
||||
if (CHelper.GetValueFromXML(item + "/Color", navigator, ref _Theme.ColorName, String.Empty))
|
||||
if (xmlReader.GetValue(item + "/Color", ref _Theme.ColorName, String.Empty))
|
||||
{
|
||||
_ThemeLoaded &= _Base.Theme.GetColor(_Theme.ColorName, SkinIndex, ref Color);
|
||||
}
|
||||
else
|
||||
{
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/R", navigator, ref Color.R);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/G", navigator, ref Color.G);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/B", navigator, ref Color.B);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/A", navigator, ref Color.A);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/R", ref Color.R);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/G", ref Color.G);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/B", ref Color.B);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/A", ref Color.A);
|
||||
}
|
||||
|
||||
if (CHelper.GetValueFromXML(item + "/SColor", navigator, ref _Theme.SColorName, String.Empty))
|
||||
if (xmlReader.GetValue(item + "/SColor", ref _Theme.SColorName, String.Empty))
|
||||
{
|
||||
_ThemeLoaded &= _Base.Theme.GetColor(_Theme.SColorName, SkinIndex, ref SColor);
|
||||
}
|
||||
else
|
||||
{
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/SR", navigator, ref SColor.R);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/SG", navigator, ref SColor.G);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/SB", navigator, ref SColor.B);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/SA", navigator, ref SColor.A);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SR", ref SColor.R);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SG", ref SColor.G);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SB", ref SColor.B);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SA", ref SColor.A);
|
||||
}
|
||||
|
||||
if (CHelper.GetValueFromXML(item + "/HColor", navigator, ref _Theme.HColorName, String.Empty))
|
||||
if (xmlReader.GetValue(item + "/HColor", ref _Theme.HColorName, String.Empty))
|
||||
{
|
||||
_ThemeLoaded &= _Base.Theme.GetColor(_Theme.HColorName, SkinIndex, ref HColor);
|
||||
}
|
||||
else
|
||||
{
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/HR", navigator, ref HColor.R);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/HG", navigator, ref HColor.G);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/HB", navigator, ref HColor.B);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/HA", navigator, ref HColor.A);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/HR", ref HColor.R);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/HG", ref HColor.G);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/HB", ref HColor.B);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/HA", ref HColor.A);
|
||||
}
|
||||
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/ArrowLeftX", navigator, ref RectArrowLeft.X);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/ArrowLeftY", navigator, ref RectArrowLeft.Y);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/ArrowLeftZ", navigator, ref RectArrowLeft.Z);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/ArrowLeftW", navigator, ref RectArrowLeft.W);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/ArrowLeftH", navigator, ref RectArrowLeft.H);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/ArrowLeftX", ref RectArrowLeft.X);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/ArrowLeftY", ref RectArrowLeft.Y);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/ArrowLeftZ", ref RectArrowLeft.Z);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/ArrowLeftW", ref RectArrowLeft.W);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/ArrowLeftH", ref RectArrowLeft.H);
|
||||
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/ArrowRightX", navigator, ref RectArrowRight.X);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/ArrowRightY", navigator, ref RectArrowRight.Y);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/ArrowRightZ", navigator, ref RectArrowRight.Z);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/ArrowRightW", navigator, ref RectArrowRight.W);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/ArrowRightH", navigator, ref RectArrowRight.H);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/ArrowRightX", ref RectArrowRight.X);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/ArrowRightY", ref RectArrowRight.Y);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/ArrowRightZ", ref RectArrowRight.Z);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/ArrowRightW", ref RectArrowRight.W);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/ArrowRightH", ref RectArrowRight.H);
|
||||
|
||||
if (CHelper.GetValueFromXML(item + "/ArrowColor", navigator, ref _Theme.ArrowColorName, String.Empty))
|
||||
if (xmlReader.GetValue(item + "/ArrowColor", ref _Theme.ArrowColorName, String.Empty))
|
||||
{
|
||||
_ThemeLoaded &= _Base.Theme.GetColor(_Theme.ArrowColorName, SkinIndex, ref ColorArrow);
|
||||
}
|
||||
else
|
||||
{
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/ArrowR", navigator, ref ColorArrow.R);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/ArrowG", navigator, ref ColorArrow.G);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/ArrowB", navigator, ref ColorArrow.B);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/ArrowA", navigator, ref ColorArrow.A);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/ArrowR", ref ColorArrow.R);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/ArrowG", ref ColorArrow.G);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/ArrowB", ref ColorArrow.B);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/ArrowA", ref ColorArrow.A);
|
||||
}
|
||||
|
||||
if (CHelper.GetValueFromXML(item + "/ArrowSColor", navigator, ref _Theme.SArrowColorName, String.Empty))
|
||||
if (xmlReader.GetValue(item + "/ArrowSColor", ref _Theme.SArrowColorName, String.Empty))
|
||||
{
|
||||
_ThemeLoaded &= _Base.Theme.GetColor(_Theme.SArrowColorName, SkinIndex, ref SColorArrow);
|
||||
}
|
||||
else
|
||||
{
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/ArrowSR", navigator, ref SColorArrow.R);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/ArrowSG", navigator, ref SColorArrow.G);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/ArrowSB", navigator, ref SColorArrow.B);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/ArrowSA", navigator, ref SColorArrow.A);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/ArrowSR", ref SColorArrow.R);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/ArrowSG", ref SColorArrow.G);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/ArrowSB", ref SColorArrow.B);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/ArrowSA", ref SColorArrow.A);
|
||||
}
|
||||
|
||||
if (CHelper.GetValueFromXML(item + "/TextColor", navigator, ref _Theme.TextColorName, String.Empty))
|
||||
if (xmlReader.GetValue(item + "/TextColor", ref _Theme.TextColorName, String.Empty))
|
||||
{
|
||||
_ThemeLoaded &= _Base.Theme.GetColor(_Theme.TextColorName, SkinIndex, ref TextColor);
|
||||
}
|
||||
else
|
||||
{
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/TextR", navigator, ref TextColor.R);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/TextG", navigator, ref TextColor.G);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/TextB", navigator, ref TextColor.B);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/TextA", navigator, ref TextColor.A);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/TextR", ref TextColor.R);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/TextG", ref TextColor.G);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/TextB", ref TextColor.B);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/TextA", ref TextColor.A);
|
||||
}
|
||||
|
||||
if (CHelper.GetValueFromXML(item + "/TextSColor", navigator, ref _Theme.STextColorName, String.Empty))
|
||||
if (xmlReader.GetValue(item + "/TextSColor", ref _Theme.STextColorName, String.Empty))
|
||||
{
|
||||
_ThemeLoaded &= _Base.Theme.GetColor(_Theme.STextColorName, SkinIndex, ref STextColor);
|
||||
}
|
||||
else
|
||||
{
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/TextSR", navigator, ref STextColor.R);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/TextSG", navigator, ref STextColor.G);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/TextSB", navigator, ref STextColor.B);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/TextSA", navigator, ref STextColor.A);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/TextSR", ref STextColor.R);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/TextSG", ref STextColor.G);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/TextSB", ref STextColor.B);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/TextSA", ref STextColor.A);
|
||||
}
|
||||
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/TextH", navigator, ref TextH);
|
||||
if(CHelper.TryGetFloatValueFromXML(item + "/TextRelativeX", navigator, ref TextRelativeX))
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/TextRelativeX", navigator, ref TextRelativeX);
|
||||
if(CHelper.TryGetFloatValueFromXML(item + "/TextRelativeY", navigator, ref TextRelativeY))
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/TextRelativeY", navigator, ref TextRelativeY);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/TextMaxW", navigator, ref MaxW);
|
||||
_ThemeLoaded &= CHelper.GetValueFromXML(item + "/TextFont", navigator, ref _Theme.TextFont, "Normal");
|
||||
_ThemeLoaded &= CHelper.TryGetEnumValueFromXML<EStyle>(item + "/TextStyle", navigator, ref _Theme.TextStyle);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/TextH", ref TextH);
|
||||
if(xmlReader.TryGetFloatValue(item + "/TextRelativeX", ref TextRelativeX))
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/TextRelativeX", ref TextRelativeX);
|
||||
if(xmlReader.TryGetFloatValue(item + "/TextRelativeY", ref TextRelativeY))
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/TextRelativeY", ref TextRelativeY);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/TextMaxW", ref MaxW);
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/TextFont", ref _Theme.TextFont, "Normal");
|
||||
_ThemeLoaded &= xmlReader.TryGetEnumValue<EStyle>(item + "/TextStyle", ref _Theme.TextStyle);
|
||||
|
||||
_ThemeLoaded &= CHelper.TryGetIntValueFromXML(item + "/NumVisible", navigator, ref _NumVisible);
|
||||
_ThemeLoaded &= xmlReader.TryGetIntValue(item + "/NumVisible", ref _NumVisible);
|
||||
|
||||
if (_ThemeLoaded)
|
||||
{
|
||||
|
||||
+15
-16
@@ -3,7 +3,6 @@ using System.Collections.Generic;
|
||||
using System.Drawing;
|
||||
using System.Text;
|
||||
using System.Xml;
|
||||
using System.Xml.XPath;
|
||||
|
||||
namespace Vocaluxe.Menu
|
||||
{
|
||||
@@ -132,36 +131,36 @@ namespace Vocaluxe.Menu
|
||||
Visible = true;
|
||||
}
|
||||
|
||||
public bool LoadTheme(string XmlPath, string ElementName, XPathNavigator navigator, int SkinIndex)
|
||||
public bool LoadTheme(string XmlPath, string ElementName, CXMLReader xmlReader, int SkinIndex)
|
||||
{
|
||||
string item = XmlPath + "/" + ElementName;
|
||||
_ThemeLoaded = true;
|
||||
|
||||
_ThemeLoaded &= CHelper.GetValueFromXML(item + "/Skin", navigator, ref _Theme.TextureName, String.Empty);
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/Skin", ref _Theme.TextureName, String.Empty);
|
||||
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/X", navigator, ref Rect.X);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/Y", navigator, ref Rect.Y);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/Z", navigator, ref Rect.Z);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/W", navigator, ref Rect.W);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/H", navigator, ref Rect.H);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/X", ref Rect.X);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Y", ref Rect.Y);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Z", ref Rect.Z);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/W", ref Rect.W);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/H", ref Rect.H);
|
||||
|
||||
if (CHelper.GetValueFromXML(item + "/Color", navigator, ref _Theme.ColorName, String.Empty))
|
||||
if (xmlReader.GetValue(item + "/Color", ref _Theme.ColorName, String.Empty))
|
||||
{
|
||||
_ThemeLoaded &= _Base.Theme.GetColor(_Theme.ColorName, SkinIndex, ref Color);
|
||||
}
|
||||
else
|
||||
{
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/R", navigator, ref Color.R);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/G", navigator, ref Color.G);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/B", navigator, ref Color.B);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/A", navigator, ref Color.A);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/R", ref Color.R);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/G", ref Color.G);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/B", ref Color.B);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/A", ref Color.A);
|
||||
}
|
||||
|
||||
if (CHelper.ItemExistsInXML(item + "/Reflection", navigator))
|
||||
if (xmlReader.ItemExists(item + "/Reflection"))
|
||||
{
|
||||
Reflection = true;
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/Reflection/Space", navigator, ref ReflectionSpace);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/Reflection/Height", navigator, ref ReflectionHeight);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Reflection/Space", ref ReflectionSpace);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Reflection/Height", ref ReflectionHeight);
|
||||
}
|
||||
else
|
||||
Reflection = false;
|
||||
|
||||
+26
-27
@@ -3,7 +3,6 @@ using System.Collections.Generic;
|
||||
using System.Drawing;
|
||||
using System.Text;
|
||||
using System.Xml;
|
||||
using System.Xml.XPath;
|
||||
|
||||
namespace Vocaluxe.Menu
|
||||
{
|
||||
@@ -471,63 +470,63 @@ namespace Vocaluxe.Menu
|
||||
Reflection = false;
|
||||
}
|
||||
|
||||
public bool LoadTheme(string XmlPath, string ElementName, XPathNavigator navigator, int SkinIndex)
|
||||
public bool LoadTheme(string XmlPath, string ElementName, CXMLReader xmlReader, int SkinIndex)
|
||||
{
|
||||
return LoadTheme(XmlPath, ElementName, navigator, SkinIndex, false);
|
||||
return LoadTheme(XmlPath, ElementName, xmlReader, SkinIndex, false);
|
||||
}
|
||||
|
||||
public bool LoadTheme(string XmlPath, string ElementName, XPathNavigator navigator, int SkinIndex, bool ButtonText)
|
||||
public bool LoadTheme(string XmlPath, string ElementName, CXMLReader xmlReader, int SkinIndex, bool ButtonText)
|
||||
{
|
||||
string item = XmlPath + "/" + ElementName;
|
||||
_ThemeLoaded = true;
|
||||
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/X", navigator, ref _X);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/Y", navigator, ref _Y);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/X", ref _X);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Y", ref _Y);
|
||||
|
||||
if (!ButtonText)
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/Z", navigator, ref _Z);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Z", ref _Z);
|
||||
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/H", navigator, ref _Height);
|
||||
CHelper.TryGetFloatValueFromXML(item + "/MaxW", navigator, ref _MaxWidth);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/H", ref _Height);
|
||||
xmlReader.TryGetFloatValue(item + "/MaxW", ref _MaxWidth);
|
||||
|
||||
if (CHelper.GetValueFromXML(item + "/Color", navigator, ref _Theme.ColorName, String.Empty))
|
||||
if (xmlReader.GetValue(item + "/Color", ref _Theme.ColorName, String.Empty))
|
||||
{
|
||||
_ThemeLoaded &= _Base.Theme.GetColor(_Theme.ColorName, SkinIndex, ref Color);
|
||||
}
|
||||
else
|
||||
{
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/R", navigator, ref Color.R);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/G", navigator, ref Color.G);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/B", navigator, ref Color.B);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/A", navigator, ref Color.A);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/R", ref Color.R);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/G", ref Color.G);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/B", ref Color.B);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/A", ref Color.A);
|
||||
}
|
||||
|
||||
if (CHelper.GetValueFromXML(item + "/SColor", navigator, ref _Theme.SColorName, String.Empty))
|
||||
if (xmlReader.GetValue(item + "/SColor", ref _Theme.SColorName, String.Empty))
|
||||
{
|
||||
_ThemeLoaded &= _Base.Theme.GetColor(_Theme.SColorName, SkinIndex, ref SColor);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (CHelper.TryGetFloatValueFromXML(item + "/SR", navigator, ref SColor.R))
|
||||
if (xmlReader.TryGetFloatValue(item + "/SR", ref SColor.R))
|
||||
{
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/SG", navigator, ref SColor.G);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/SB", navigator, ref SColor.B);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/SA", navigator, ref SColor.A);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SG", ref SColor.G);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SB", ref SColor.B);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SA", ref SColor.A);
|
||||
}
|
||||
}
|
||||
|
||||
_ThemeLoaded &= CHelper.TryGetEnumValueFromXML<EAlignment>(item + "/Align", navigator, ref _Align);
|
||||
CHelper.TryGetEnumValueFromXML<EHAlignment>(item + "/HAlign", navigator, ref _HAlign);
|
||||
_ThemeLoaded &= CHelper.TryGetEnumValueFromXML<EStyle>(item + "/Style", navigator, ref _Style);
|
||||
_ThemeLoaded &= CHelper.GetValueFromXML(item + "/Font", navigator, ref _Fon, "Normal");
|
||||
_ThemeLoaded &= xmlReader.TryGetEnumValue<EAlignment>(item + "/Align", ref _Align);
|
||||
xmlReader.TryGetEnumValue<EHAlignment>(item + "/HAlign", ref _HAlign);
|
||||
_ThemeLoaded &= xmlReader.TryGetEnumValue<EStyle>(item + "/Style", ref _Style);
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/Font", ref _Fon, "Normal");
|
||||
|
||||
_ThemeLoaded &= CHelper.GetValueFromXML(item + "/Text", navigator, ref _Theme.Text, String.Empty);
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/Text", ref _Theme.Text, String.Empty);
|
||||
|
||||
if (CHelper.ItemExistsInXML(item + "/Reflection", navigator) && !ButtonText)
|
||||
if (xmlReader.ItemExists(item + "/Reflection") && !ButtonText)
|
||||
{
|
||||
Reflection = true;
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/Reflection/Space", navigator, ref ReflectionSpace);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/Reflection/Height", navigator, ref ReflectionHeight);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Reflection/Space", ref ReflectionSpace);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Reflection/Height", ref ReflectionHeight);
|
||||
}
|
||||
else
|
||||
Reflection = false;
|
||||
|
||||
@@ -0,0 +1,221 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using System.Xml.XPath;
|
||||
|
||||
namespace Vocaluxe.Menu
|
||||
{
|
||||
public class CXMLReader
|
||||
{
|
||||
private XPathNavigator _Navigator;
|
||||
|
||||
public CXMLReader(string uri)
|
||||
{
|
||||
XPathDocument xPathDoc = new XPathDocument(uri);
|
||||
_Navigator = xPathDoc.CreateNavigator();
|
||||
}
|
||||
|
||||
public XPathNavigator Navigator
|
||||
{
|
||||
get { return _Navigator; }
|
||||
}
|
||||
|
||||
public static CXMLReader OpenFile(string sUri)
|
||||
{
|
||||
try
|
||||
{
|
||||
return new CXMLReader(sUri);
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
//TODO: How to log from here?
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public bool TryGetEnumValue<T>(string Cast, ref T value)
|
||||
where T : struct
|
||||
{
|
||||
string val = String.Empty;
|
||||
if (GetValue(Cast, ref val, Enum.GetName(typeof(T), value)))
|
||||
{
|
||||
CHelper.TryParse<T>(val, out value, true);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public bool TryGetIntValue(string Cast, ref int value)
|
||||
{
|
||||
string val = String.Empty;
|
||||
if (GetValue(Cast, ref val, value.ToString()))
|
||||
{
|
||||
return int.TryParse(val, out value);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public bool TryGetIntValueRange(string Cast,ref int value, int min = 0, int max = 100)
|
||||
{
|
||||
bool result = TryGetIntValue(Cast, ref value);
|
||||
if (result)
|
||||
{
|
||||
if (value < min)
|
||||
value = min;
|
||||
else if (value > max)
|
||||
value = max;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
public bool TryGetFloatValue(string Cast, ref float value)
|
||||
{
|
||||
string val = String.Empty;
|
||||
if (GetValue(Cast, ref val, value.ToString()))
|
||||
{
|
||||
return CHelper.TryParse(val, out value);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public bool GetValue(string Cast, ref string Value, string DefaultValue)
|
||||
{
|
||||
XPathNodeIterator iterator;
|
||||
int results = 0;
|
||||
string val = string.Empty;
|
||||
|
||||
try
|
||||
{
|
||||
_Navigator.MoveToFirstChild();
|
||||
iterator = _Navigator.Select(Cast);
|
||||
|
||||
while (iterator.MoveNext())
|
||||
{
|
||||
val = iterator.Current.Value;
|
||||
results++;
|
||||
}
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
results = 0;
|
||||
}
|
||||
|
||||
if ((results == 0) || (results > 1))
|
||||
{
|
||||
Value = DefaultValue;
|
||||
return false;
|
||||
}
|
||||
else
|
||||
{
|
||||
Value = val;
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public List<string> GetValues(string Cast)
|
||||
{
|
||||
List<string> values = new List<string>();
|
||||
|
||||
try
|
||||
{
|
||||
_Navigator.MoveToRoot();
|
||||
_Navigator.MoveToFirstChild();
|
||||
_Navigator.MoveToFirstChild();
|
||||
|
||||
while (_Navigator.Name != Cast)
|
||||
_Navigator.MoveToNext();
|
||||
|
||||
_Navigator.MoveToFirstChild();
|
||||
|
||||
values.Add(_Navigator.LocalName);
|
||||
while (_Navigator.MoveToNext())
|
||||
values.Add(_Navigator.LocalName);
|
||||
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
return values;
|
||||
}
|
||||
|
||||
public List<string> GetAttributes(string Cast, string attribute)
|
||||
{
|
||||
List<string> values = new List<string>();
|
||||
|
||||
try
|
||||
{
|
||||
_Navigator.MoveToRoot();
|
||||
_Navigator.MoveToFirstChild();
|
||||
|
||||
while (_Navigator.Name != Cast)
|
||||
_Navigator.MoveToNext();
|
||||
|
||||
_Navigator.MoveToFirstChild();
|
||||
|
||||
values.Add(_Navigator.LocalName);
|
||||
while (_Navigator.MoveToNext())
|
||||
values.Add(_Navigator.GetAttribute(attribute, ""));
|
||||
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
return values;
|
||||
}
|
||||
|
||||
public bool GetInnerValues(string Cast, ref List<string> Values)
|
||||
{
|
||||
try
|
||||
{
|
||||
_Navigator.MoveToRoot();
|
||||
_Navigator.MoveToFirstChild();
|
||||
_Navigator.MoveToFirstChild();
|
||||
|
||||
while (_Navigator.Name != Cast)
|
||||
_Navigator.MoveToNext();
|
||||
|
||||
_Navigator.MoveToFirstChild();
|
||||
|
||||
Values.Add(_Navigator.Value);
|
||||
while (_Navigator.MoveToNext())
|
||||
Values.Add(_Navigator.Value);
|
||||
|
||||
}
|
||||
catch
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public bool ItemExists(string Cast)
|
||||
{
|
||||
XPathNodeIterator iterator;
|
||||
int results = 0;
|
||||
|
||||
try
|
||||
{
|
||||
_Navigator.MoveToFirstChild();
|
||||
iterator = _Navigator.Select(Cast);
|
||||
|
||||
while (iterator.MoveNext())
|
||||
results++;
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
results = 0;
|
||||
}
|
||||
|
||||
if (results == 0)
|
||||
return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2,7 +2,6 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using System.Xml;
|
||||
using System.Xml.XPath;
|
||||
|
||||
namespace Vocaluxe.Menu
|
||||
{
|
||||
@@ -10,7 +9,7 @@ namespace Vocaluxe.Menu
|
||||
{
|
||||
string GetThemeName();
|
||||
|
||||
bool LoadTheme(string XmlPath, string ElementName, XPathNavigator navigator, int SkinIndex);
|
||||
bool LoadTheme(string XmlPath, string ElementName, CXMLReader xmlReader, int SkinIndex);
|
||||
bool SaveTheme(XmlWriter writer);
|
||||
|
||||
void UnloadTextures();
|
||||
|
||||
@@ -636,7 +636,7 @@ namespace Vocaluxe.Menu.SingNotes
|
||||
#region Methods
|
||||
public void AddLine(CLine Line)
|
||||
{
|
||||
AddLine(Line, true);
|
||||
AddLine(Line, false);
|
||||
}
|
||||
public void AddLine(CLine Line, bool updateTimings)
|
||||
{
|
||||
|
||||
@@ -3,7 +3,6 @@ using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.Text;
|
||||
using System.Xml;
|
||||
using System.Xml.XPath;
|
||||
|
||||
namespace Vocaluxe.Menu.SingNotes
|
||||
{
|
||||
@@ -80,22 +79,22 @@ namespace Vocaluxe.Menu.SingNotes
|
||||
return _Theme.Name;
|
||||
}
|
||||
|
||||
public bool LoadTheme(string XmlPath, string ElementName, XPathNavigator navigator, int SkinIndex)
|
||||
public bool LoadTheme(string XmlPath, string ElementName, CXMLReader xmlReader, int SkinIndex)
|
||||
{
|
||||
string item = XmlPath + "/" + ElementName;
|
||||
_ThemeLoaded = true;
|
||||
|
||||
_ThemeLoaded &= CHelper.GetValueFromXML(item + "/SkinLeft", navigator, ref _Theme.SkinLeftName, String.Empty);
|
||||
_ThemeLoaded &= CHelper.GetValueFromXML(item + "/SkinMiddle", navigator, ref _Theme.SkinMiddleName, String.Empty);
|
||||
_ThemeLoaded &= CHelper.GetValueFromXML(item + "/SkinRight", navigator, ref _Theme.SkinRightName, String.Empty);
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/SkinLeft", ref _Theme.SkinLeftName, String.Empty);
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/SkinMiddle", ref _Theme.SkinMiddleName, String.Empty);
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/SkinRight", ref _Theme.SkinRightName, String.Empty);
|
||||
|
||||
_ThemeLoaded &= CHelper.GetValueFromXML(item + "/SkinBackgroundLeft", navigator, ref _Theme.SkinBackgroundLeftName, String.Empty);
|
||||
_ThemeLoaded &= CHelper.GetValueFromXML(item + "/SkinBackgroundMiddle", navigator, ref _Theme.SkinBackgroundMiddleName, String.Empty);
|
||||
_ThemeLoaded &= CHelper.GetValueFromXML(item + "/SkinBackgroundRight", navigator, ref _Theme.SkinBackgroundRightName, String.Empty);
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/SkinBackgroundLeft", ref _Theme.SkinBackgroundLeftName, String.Empty);
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/SkinBackgroundMiddle", ref _Theme.SkinBackgroundMiddleName, String.Empty);
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/SkinBackgroundRight", ref _Theme.SkinBackgroundRightName, String.Empty);
|
||||
|
||||
_ThemeLoaded &= CHelper.GetValueFromXML(item + "/SkinGoldenStar", navigator, ref _Theme.SkinGoldenStarName, String.Empty);
|
||||
_ThemeLoaded &= CHelper.GetValueFromXML(item + "/SkinToneHelper", navigator, ref _Theme.SkinToneHelperName, String.Empty);
|
||||
_ThemeLoaded &= CHelper.GetValueFromXML(item + "/SkinPerfectNoteStar", navigator, ref _Theme.SkinPerfectNoteStarName, String.Empty);
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/SkinGoldenStar", ref _Theme.SkinGoldenStarName, String.Empty);
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/SkinToneHelper", ref _Theme.SkinToneHelperName, String.Empty);
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/SkinPerfectNoteStar", ref _Theme.SkinPerfectNoteStarName, String.Empty);
|
||||
|
||||
_BarPos = new SRectF[_Base.Settings.GetMaxNumPlayer(), _Base.Settings.GetMaxNumPlayer()];
|
||||
for (int numplayer = 0; numplayer < _Base.Settings.GetMaxNumPlayer(); numplayer++)
|
||||
@@ -106,11 +105,11 @@ namespace Vocaluxe.Menu.SingNotes
|
||||
{
|
||||
_BarPos[player, numplayer] = new SRectF();
|
||||
string target = "/BarPositions/P" + (player + 1).ToString() + "N" + (numplayer + 1).ToString();
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + target + "X", navigator, ref _BarPos[player, numplayer].X);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + target + "Y", navigator, ref _BarPos[player, numplayer].Y);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + target + "Z", navigator, ref _BarPos[player, numplayer].Z);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + target + "W", navigator, ref _BarPos[player, numplayer].W);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + target + "H", navigator, ref _BarPos[player, numplayer].H);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + target + "X", ref _BarPos[player, numplayer].X);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + target + "Y", ref _BarPos[player, numplayer].Y);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + target + "Z", ref _BarPos[player, numplayer].Z);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + target + "W", ref _BarPos[player, numplayer].W);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + target + "H", ref _BarPos[player, numplayer].H);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using System.Xml;
|
||||
using System.Xml.XPath;
|
||||
|
||||
using Vocaluxe.Menu;
|
||||
using Vocaluxe.PartyModes;
|
||||
@@ -166,9 +165,9 @@ namespace Vocaluxe.Menu.SongMenu
|
||||
return _SongMenu.GetThemeName();
|
||||
}
|
||||
|
||||
public bool LoadTheme(string XmlPath, string ElementName, XPathNavigator navigator, int SkinIndex)
|
||||
public bool LoadTheme(string XmlPath, string ElementName, CXMLReader xmlReader, int SkinIndex)
|
||||
{
|
||||
return _SongMenu.LoadTheme(XmlPath, ElementName, navigator, SkinIndex);
|
||||
return _SongMenu.LoadTheme(XmlPath, ElementName, xmlReader, SkinIndex);
|
||||
}
|
||||
|
||||
public bool SaveTheme(XmlWriter writer)
|
||||
|
||||
@@ -4,7 +4,6 @@ using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Text;
|
||||
using System.Xml;
|
||||
using System.Xml.XPath;
|
||||
|
||||
using Vocaluxe.PartyModes;
|
||||
|
||||
@@ -259,61 +258,61 @@ namespace Vocaluxe.Menu.SongMenu
|
||||
return _Theme.Name;
|
||||
}
|
||||
|
||||
public bool LoadTheme(string XmlPath, string ElementName, XPathNavigator navigator, int SkinIndex)
|
||||
public bool LoadTheme(string XmlPath, string ElementName, CXMLReader xmlReader, int SkinIndex)
|
||||
{
|
||||
string item = XmlPath + "/" + ElementName;
|
||||
_ThemeLoaded = true;
|
||||
|
||||
_ThemeLoaded &= CHelper.GetValueFromXML(item + "/CoverBackground", navigator, ref _Theme.CoverBackgroundName, String.Empty);
|
||||
_ThemeLoaded &= CHelper.GetValueFromXML(item + "/CoverBigBackground", navigator, ref _Theme.CoverBigBackgroundName, String.Empty);
|
||||
_ThemeLoaded &= CHelper.GetValueFromXML(item + "/DuetIcon", navigator, ref _Theme.DuetIconName, String.Empty);
|
||||
_ThemeLoaded &= CHelper.GetValueFromXML(item + "/VideoIcon", navigator, ref _Theme.VideoIconName, String.Empty);
|
||||
_ThemeLoaded &= CHelper.GetValueFromXML(item + "/MedleyCalcIcon", navigator, ref _Theme.MedleyCalcIcon, String.Empty);
|
||||
_ThemeLoaded &= CHelper.GetValueFromXML(item + "/MedleyTagIcon", navigator, ref _Theme.MedleyTagIcon, String.Empty);
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/CoverBackground", ref _Theme.CoverBackgroundName, String.Empty);
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/CoverBigBackground", ref _Theme.CoverBigBackgroundName, String.Empty);
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/DuetIcon", ref _Theme.DuetIconName, String.Empty);
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/VideoIcon", ref _Theme.VideoIconName, String.Empty);
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/MedleyCalcIcon", ref _Theme.MedleyCalcIcon, String.Empty);
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/MedleyTagIcon", ref _Theme.MedleyTagIcon, String.Empty);
|
||||
|
||||
if (CHelper.GetValueFromXML(item + "/Color", navigator, ref _Theme.ColorName, String.Empty))
|
||||
if (xmlReader.GetValue(item + "/Color", ref _Theme.ColorName, String.Empty))
|
||||
{
|
||||
_ThemeLoaded &= _Base.Theme.GetColor(_Theme.ColorName, SkinIndex, ref _Color);
|
||||
}
|
||||
else
|
||||
{
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/R", navigator, ref _Color.R);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/G", navigator, ref _Color.G);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/B", navigator, ref _Color.B);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/A", navigator, ref _Color.A);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/R", ref _Color.R);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/G", ref _Color.G);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/B", ref _Color.B);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/A", ref _Color.A);
|
||||
}
|
||||
|
||||
#region SongMenuTileBoard
|
||||
_ThemeLoaded &= CHelper.TryGetIntValueFromXML(item + "/SongMenuTileBoard/NumW", navigator, ref _Theme.songMenuTileBoard.numW);
|
||||
_ThemeLoaded &= CHelper.TryGetIntValueFromXML(item + "/SongMenuTileBoard/NumH", navigator, ref _Theme.songMenuTileBoard.numH);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/SongMenuTileBoard/SpaceW", navigator, ref _Theme.songMenuTileBoard.spaceW);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/SongMenuTileBoard/SpaceH", navigator, ref _Theme.songMenuTileBoard.spaceH);
|
||||
_ThemeLoaded &= xmlReader.TryGetIntValue(item + "/SongMenuTileBoard/NumW", ref _Theme.songMenuTileBoard.numW);
|
||||
_ThemeLoaded &= xmlReader.TryGetIntValue(item + "/SongMenuTileBoard/NumH", ref _Theme.songMenuTileBoard.numH);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SongMenuTileBoard/SpaceW", ref _Theme.songMenuTileBoard.spaceW);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SongMenuTileBoard/SpaceH", ref _Theme.songMenuTileBoard.spaceH);
|
||||
|
||||
_ThemeLoaded &= CHelper.TryGetIntValueFromXML(item + "/SongMenuTileBoard/NumWsmall", navigator, ref _Theme.songMenuTileBoard.numWsmall);
|
||||
_ThemeLoaded &= CHelper.TryGetIntValueFromXML(item + "/SongMenuTileBoard/NumHsmall", navigator, ref _Theme.songMenuTileBoard.numHsmall);
|
||||
_ThemeLoaded &= xmlReader.TryGetIntValue(item + "/SongMenuTileBoard/NumWsmall", ref _Theme.songMenuTileBoard.numWsmall);
|
||||
_ThemeLoaded &= xmlReader.TryGetIntValue(item + "/SongMenuTileBoard/NumHsmall", ref _Theme.songMenuTileBoard.numHsmall);
|
||||
|
||||
_ThemeLoaded &= _Theme.songMenuTileBoard.TextArtist.LoadTheme(item + "/SongMenuTileBoard", "TextArtist", navigator, SkinIndex);
|
||||
_ThemeLoaded &= _Theme.songMenuTileBoard.TextTitle.LoadTheme(item + "/SongMenuTileBoard", "TextTitle", navigator, SkinIndex);
|
||||
_ThemeLoaded &= _Theme.songMenuTileBoard.TextSongLength.LoadTheme(item + "/SongMenuTileBoard", "TextSongLength", navigator, SkinIndex);
|
||||
_ThemeLoaded &= _Theme.songMenuTileBoard.TextArtist.LoadTheme(item + "/SongMenuTileBoard", "TextArtist", xmlReader, SkinIndex);
|
||||
_ThemeLoaded &= _Theme.songMenuTileBoard.TextTitle.LoadTheme(item + "/SongMenuTileBoard", "TextTitle", xmlReader, SkinIndex);
|
||||
_ThemeLoaded &= _Theme.songMenuTileBoard.TextSongLength.LoadTheme(item + "/SongMenuTileBoard", "TextSongLength", xmlReader, SkinIndex);
|
||||
|
||||
_ThemeLoaded &= _Theme.songMenuTileBoard.StaticCoverBig.LoadTheme(item + "/SongMenuTileBoard", "StaticCoverBig", navigator, SkinIndex);
|
||||
_ThemeLoaded &= _Theme.songMenuTileBoard.StaticTextBG.LoadTheme(item + "/SongMenuTileBoard", "StaticTextBG", navigator, SkinIndex);
|
||||
_ThemeLoaded &= _Theme.songMenuTileBoard.StaticDuetIcon.LoadTheme(item + "/SongMenuTileBoard", "StaticDuetIcon", navigator, SkinIndex);
|
||||
_ThemeLoaded &= _Theme.songMenuTileBoard.StaticVideoIcon.LoadTheme(item + "/SongMenuTileBoard", "StaticVideoIcon", navigator, SkinIndex);
|
||||
_ThemeLoaded &= _Theme.songMenuTileBoard.StaticMedleyCalcIcon.LoadTheme(item + "/SongMenuTileBoard", "StaticMedleyCalcIcon", navigator, SkinIndex);
|
||||
_ThemeLoaded &= _Theme.songMenuTileBoard.StaticMedleyTagIcon.LoadTheme(item + "/SongMenuTileBoard", "StaticMedleyTagIcon", navigator, SkinIndex);
|
||||
_ThemeLoaded &= _Theme.songMenuTileBoard.StaticCoverBig.LoadTheme(item + "/SongMenuTileBoard", "StaticCoverBig", xmlReader, SkinIndex);
|
||||
_ThemeLoaded &= _Theme.songMenuTileBoard.StaticTextBG.LoadTheme(item + "/SongMenuTileBoard", "StaticTextBG", xmlReader, SkinIndex);
|
||||
_ThemeLoaded &= _Theme.songMenuTileBoard.StaticDuetIcon.LoadTheme(item + "/SongMenuTileBoard", "StaticDuetIcon", xmlReader, SkinIndex);
|
||||
_ThemeLoaded &= _Theme.songMenuTileBoard.StaticVideoIcon.LoadTheme(item + "/SongMenuTileBoard", "StaticVideoIcon", xmlReader, SkinIndex);
|
||||
_ThemeLoaded &= _Theme.songMenuTileBoard.StaticMedleyCalcIcon.LoadTheme(item + "/SongMenuTileBoard", "StaticMedleyCalcIcon", xmlReader, SkinIndex);
|
||||
_ThemeLoaded &= _Theme.songMenuTileBoard.StaticMedleyTagIcon.LoadTheme(item + "/SongMenuTileBoard", "StaticMedleyTagIcon", xmlReader, SkinIndex);
|
||||
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/SongMenuTileBoard/TileRectX", navigator, ref _Theme.songMenuTileBoard.TileRect.X);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/SongMenuTileBoard/TileRectY", navigator, ref _Theme.songMenuTileBoard.TileRect.Y);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/SongMenuTileBoard/TileRectZ", navigator, ref _Theme.songMenuTileBoard.TileRect.Z);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/SongMenuTileBoard/TileRectW", navigator, ref _Theme.songMenuTileBoard.TileRect.W);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/SongMenuTileBoard/TileRectH", navigator, ref _Theme.songMenuTileBoard.TileRect.H);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SongMenuTileBoard/TileRectX", ref _Theme.songMenuTileBoard.TileRect.X);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SongMenuTileBoard/TileRectY", ref _Theme.songMenuTileBoard.TileRect.Y);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SongMenuTileBoard/TileRectZ", ref _Theme.songMenuTileBoard.TileRect.Z);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SongMenuTileBoard/TileRectW", ref _Theme.songMenuTileBoard.TileRect.W);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SongMenuTileBoard/TileRectH", ref _Theme.songMenuTileBoard.TileRect.H);
|
||||
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/SongMenuTileBoard/TileRectSmallX", navigator, ref _Theme.songMenuTileBoard.TileRectSmall.X);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/SongMenuTileBoard/TileRectSmallY", navigator, ref _Theme.songMenuTileBoard.TileRectSmall.Y);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/SongMenuTileBoard/TileRectSmallZ", navigator, ref _Theme.songMenuTileBoard.TileRectSmall.Z);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/SongMenuTileBoard/TileRectSmallW", navigator, ref _Theme.songMenuTileBoard.TileRectSmall.W);
|
||||
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/SongMenuTileBoard/TileRectSmallH", navigator, ref _Theme.songMenuTileBoard.TileRectSmall.H);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SongMenuTileBoard/TileRectSmallX", ref _Theme.songMenuTileBoard.TileRectSmall.X);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SongMenuTileBoard/TileRectSmallY", ref _Theme.songMenuTileBoard.TileRectSmall.Y);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SongMenuTileBoard/TileRectSmallZ", ref _Theme.songMenuTileBoard.TileRectSmall.Z);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SongMenuTileBoard/TileRectSmallW", ref _Theme.songMenuTileBoard.TileRectSmall.W);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SongMenuTileBoard/TileRectSmallH", ref _Theme.songMenuTileBoard.TileRectSmall.H);
|
||||
|
||||
#endregion SongMenuTileBoard
|
||||
|
||||
|
||||
@@ -126,6 +126,7 @@
|
||||
<Compile Include="Menu\CStatic.cs" />
|
||||
<Compile Include="Menu\CText.cs" />
|
||||
<Compile Include="Menu\CScreenSetting.cs" />
|
||||
<Compile Include="Menu\CXMLReader.cs" />
|
||||
<Compile Include="Menu\IMenu.cs" />
|
||||
<Compile Include="Menu\IMenuElement.cs" />
|
||||
<Compile Include="Menu\SingNotes\CNotes.cs" />
|
||||
|
||||
Reference in new issue
Block a user