Merge remote-tracking branch 'remotes/Flamefire/Better_note_timing' into develop

This commit is contained in:
Alexander Eckart committed 2013-02-22 16:58:58 +01:00
commit 406e75408b
33 files changed
+1175 -1327

No files matched your search

+30
View File
@@ -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
View File
@@ -6,7 +6,6 @@ using System.Text;
using System.Text.RegularExpressions; using System.Text.RegularExpressions;
using System.Windows.Forms; using System.Windows.Forms;
using System.Xml; using System.Xml;
using System.Xml.XPath;
using OpenTK.Platform; using OpenTK.Platform;
@@ -80,6 +79,8 @@ namespace Vocaluxe.Base
public static string Language = "English"; public static string Language = "English";
public static EOffOn LyricsOnTop = EOffOn.TR_CONFIG_OFF; public static EOffOn LyricsOnTop = EOffOn.TR_CONFIG_OFF;
public static string[] Players = new string[CSettings.MaxNumPlayer]; 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 // Video
public static EVideoDecoder VideoDecoder = EVideoDecoder.FFmpeg; public static EVideoDecoder VideoDecoder = EVideoDecoder.FFmpeg;
@@ -121,196 +122,163 @@ namespace Vocaluxe.Base
public static bool LoadConfig() public static bool LoadConfig()
{ {
#region Inits #region Inits
bool loaded = false; CXMLReader xmlReader;
XPathDocument xPathDoc = null;
XPathNavigator navigator = null;
try try
{ {
xPathDoc = new XPathDocument(CSettings.sFileConfig); xmlReader = new CXMLReader(CSettings.sFileConfig);
navigator = xPathDoc.CreateNavigator();
loaded = true;
} }
catch (Exception) catch (Exception e)
{ {
CLog.LogError("Error opening Config.xml (FileName: " + CSettings.sFileConfig); CLog.LogError("Error opening Config.xml " + CSettings.sFileConfig + ": " + e.Message);
loaded = false; return false;
if (navigator != null)
navigator = null;
if (xPathDoc != null)
xPathDoc = null;
} }
#endregion Inits #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 SongFolder.Add(value);
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
value = string.Empty; value = string.Empty;
int i = 1; i++;
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;
} }
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() 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.WriteComment("Lyrics also on Top of screen: " + CHelper.ListStrings(Enum.GetNames(typeof(EOffOn))));
writer.WriteElementString("LyricsOnTop", Enum.GetName(typeof(EOffOn), LyricsOnTop)); 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.WriteComment("Default profile for players 1..." + CSettings.MaxNumPlayer.ToString() + ":");
writer.WriteStartElement("Players"); writer.WriteStartElement("Players");
for (int i = 1; i <= CSettings.MaxNumPlayer; i++) for (int i = 1; i <= CSettings.MaxNumPlayer; i++)
+9 -46
View File
@@ -3,7 +3,6 @@ using System.Collections.Generic;
using System.IO; using System.IO;
using System.Text; using System.Text;
using System.Xml; using System.Xml;
using System.Xml.XPath;
using Vocaluxe.Lib.Draw; using Vocaluxe.Lib.Draw;
using Vocaluxe.Menu; using Vocaluxe.Menu;
@@ -164,32 +163,14 @@ namespace Vocaluxe.Base
foreach (string file in files) foreach (string file in files)
{ {
bool loaded = false; CXMLReader xmlReader = CXMLReader.OpenFile(Path.Combine(path, file));
XPathDocument xPathDoc = null;
XPathNavigator navigator = null;
try if (xmlReader != null)
{
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)
{ {
SCoverTheme coverTheme = new SCoverTheme(); SCoverTheme coverTheme = new SCoverTheme();
CHelper.GetValueFromXML("//root/Info/Name", navigator, ref coverTheme.Name, String.Empty); xmlReader.GetValue("//root/Info/Name", ref coverTheme.Name, String.Empty);
CHelper.GetValueFromXML("//root/Info/Folder", navigator, ref coverTheme.Folder, String.Empty); xmlReader.GetValue("//root/Info/Folder", ref coverTheme.Folder, String.Empty);
if (coverTheme.Folder != String.Empty && coverTheme.Name != String.Empty) if (coverTheme.Folder != String.Empty && coverTheme.Name != String.Empty)
{ {
@@ -213,39 +194,21 @@ namespace Vocaluxe.Base
if (coverTheme.Name != String.Empty) if (coverTheme.Name != String.Empty)
{ {
bool loaded = false; CXMLReader xmlReader = CXMLReader.OpenFile(Path.Combine(CSettings.sFolderCover, coverTheme.File));
XPathDocument xPathDoc = null;
XPathNavigator navigator = null;
try if (xmlReader != null)
{
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)
{ {
lock (_MutexCover) lock (_MutexCover)
{ {
_Cover.Clear(); _Cover.Clear();
List<string> cover = CHelper.GetValuesFromXML("Cover", navigator); List<string> cover = xmlReader.GetValues("Cover");
for (int i = 0; i < cover.Count; i++) for (int i = 0; i < cover.Count; i++)
{ {
SCover sk = new SCover(); SCover sk = new SCover();
string name = String.Empty; string name = String.Empty;
string value = String.Empty; string value = String.Empty;
CHelper.GetValueFromXML("//root/Cover/" + cover[i] + "/Name", navigator, ref name, String.Empty); xmlReader.GetValue("//root/Cover/" + cover[i] + "/Name", ref name, String.Empty);
CHelper.GetValueFromXML("//root/Cover/" + cover[i] + "/Path", navigator, ref value, String.Empty); xmlReader.GetValue("//root/Cover/" + cover[i] + "/Path", ref value, String.Empty);
sk.Name = name; sk.Name = name;
sk.Value = Path.Combine(coverTheme.Folder,value); sk.Value = Path.Combine(coverTheme.Folder,value);
if (File.Exists(Path.Combine(CSettings.sFolderCover, Path.Combine(coverTheme.Folder, value)))) if (File.Exists(Path.Combine(CSettings.sFolderCover, Path.Combine(coverTheme.Folder, value))))
+68 -81
View File
@@ -9,7 +9,6 @@ using System.IO;
using System.Text; using System.Text;
using System.Windows.Forms; using System.Windows.Forms;
using System.Xml; using System.Xml;
using System.Xml.XPath;
using Vocaluxe.Lib.Draw; using Vocaluxe.Lib.Draw;
using Vocaluxe.Menu; using Vocaluxe.Menu;
@@ -674,92 +673,80 @@ namespace Vocaluxe.Base
/// <returns></returns> /// <returns></returns>
private static bool LoadFontList() private static bool LoadFontList()
{ {
bool loaded = false; CXMLReader xmlReader;
XPathDocument xPathDoc = null;
XPathNavigator navigator = null;
try try
{ {
xPathDoc = new XPathDocument(System.IO.Path.Combine(CSettings.sFolderFonts, CSettings.sFileFonts)); xmlReader = new CXMLReader(System.IO.Path.Combine(CSettings.sFolderFonts, CSettings.sFileFonts));
navigator = xPathDoc.CreateNavigator();
loaded = true;
} }
catch (Exception e) catch (Exception e)
{ {
CLog.LogError("Error loading default fonts: " + e.Message); CLog.LogError("Error loading default fonts: " + e.Message);
loaded = false; return false;
if (navigator != null)
navigator = null;
if (xPathDoc != null)
xPathDoc = null;
} }
_Fonts.Clear(); _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; string Folder = value;
int i = 1;
while (CHelper.GetValueFromXML("//root/Font" + i.ToString() + "/Folder", navigator, ref value, value))
{
string Folder = value;
CHelper.GetValueFromXML("//root/Font" + i.ToString() + "/FileNormal", navigator, ref value, value); xmlReader.GetValue("//root/Font" + i.ToString() + "/FileNormal", ref value, value);
value = Path.Combine(Directory.GetCurrentDirectory(), value = Path.Combine(Directory.GetCurrentDirectory(),
Path.Combine(CSettings.sFolderFonts, Path.Combine(Folder, value))); Path.Combine(CSettings.sFolderFonts, Path.Combine(Folder, value)));
CFont f = new CFont(value); CFont f = new CFont(value);
SFont sf = new SFont(); SFont sf = new SFont();
sf.Normal = f; sf.Normal = f;
string name = String.Empty; string name = String.Empty;
CHelper.GetValueFromXML("//root/Font" + i.ToString() + "/Name", navigator, ref name, value); xmlReader.GetValue("//root/Font" + i.ToString() + "/Name", ref name, value);
sf.Name = name; sf.Name = name;
sf.IsThemeFont = false; sf.IsThemeFont = false;
sf.ThemeName = String.Empty; sf.ThemeName = String.Empty;
sf.PartyModeID = -1; sf.PartyModeID = -1;
CHelper.GetValueFromXML("//root/Font" + i.ToString() + "/FileItalic", navigator, ref value, value); xmlReader.GetValue("//root/Font" + i.ToString() + "/FileItalic", ref value, value);
value = Path.Combine(Directory.GetCurrentDirectory(), value = Path.Combine(Directory.GetCurrentDirectory(),
Path.Combine(CSettings.sFolderFonts, Path.Combine(Folder, value))); Path.Combine(CSettings.sFolderFonts, Path.Combine(Folder, value)));
f = new CFont(value); f = new CFont(value);
sf.Italic = f; sf.Italic = f;
CHelper.GetValueFromXML("//root/Font" + i.ToString() + "/FileBold", navigator, ref value, value); xmlReader.GetValue("//root/Font" + i.ToString() + "/FileBold", ref value, value);
value = Path.Combine(Directory.GetCurrentDirectory(), value = Path.Combine(Directory.GetCurrentDirectory(),
Path.Combine(CSettings.sFolderFonts, Path.Combine(Folder, value))); Path.Combine(CSettings.sFolderFonts, Path.Combine(Folder, value)));
f = new CFont(value); f = new CFont(value);
sf.Bold = f; sf.Bold = f;
CHelper.GetValueFromXML("//root/Font" + i.ToString() + "/FileBoldItalic", navigator, ref value, value); xmlReader.GetValue("//root/Font" + i.ToString() + "/FileBoldItalic", ref value, value);
value = Path.Combine(Directory.GetCurrentDirectory(), value = Path.Combine(Directory.GetCurrentDirectory(),
Path.Combine(CSettings.sFolderFonts, Path.Combine(Folder, value))); Path.Combine(CSettings.sFolderFonts, Path.Combine(Folder, value)));
f = new CFont(value); f = new CFont(value);
sf.BoldItalic = f; sf.BoldItalic = f;
sf.Outline = 0f; sf.Outline = 0f;
CHelper.TryGetFloatValueFromXML("//root/Font" + i.ToString() + "/Outline", navigator, ref sf.Outline); xmlReader.TryGetFloatValue("//root/Font" + i.ToString() + "/Outline", ref sf.Outline);
sf.OutlineColor = new SColorF(0f, 0f, 0f, 1f); sf.OutlineColor = new SColorF(0f, 0f, 0f, 1f);
CHelper.TryGetFloatValueFromXML("//root/Font" + i.ToString() + "/OutlineColorR", navigator, ref sf.OutlineColor.R); xmlReader.TryGetFloatValue("//root/Font" + i.ToString() + "/OutlineColorR", ref sf.OutlineColor.R);
CHelper.TryGetFloatValueFromXML("//root/Font" + i.ToString() + "/OutlineColorG", navigator, ref sf.OutlineColor.G); xmlReader.TryGetFloatValue("//root/Font" + i.ToString() + "/OutlineColorG", ref sf.OutlineColor.G);
CHelper.TryGetFloatValueFromXML("//root/Font" + i.ToString() + "/OutlineColorB", navigator, ref sf.OutlineColor.B); xmlReader.TryGetFloatValue("//root/Font" + i.ToString() + "/OutlineColorB", ref sf.OutlineColor.B);
CHelper.TryGetFloatValueFromXML("//root/Font" + i.ToString() + "/OutlineColorA", navigator, ref sf.OutlineColor.A); xmlReader.TryGetFloatValue("//root/Font" + i.ToString() + "/OutlineColorA", ref sf.OutlineColor.A);
_Fonts.Add(sf); _Fonts.Add(sf);
i++; i++;
}
} }
return loaded; return true;
} }
/// <summary> /// <summary>
/// Loads theme fonts from skin file /// Loads theme fonts from skin file
/// </summary> /// </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; string value = string.Empty;
int i = 1; 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(); SFont sf = new SFont();
sf.Folder = value; sf.Folder = value;
@@ -770,42 +757,42 @@ namespace Vocaluxe.Base
bool ok = true; 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; sf.FileNormal = value;
value = Path.Combine(FontFolder, Path.Combine(sf.Folder, value)); value = Path.Combine(FontFolder, Path.Combine(sf.Folder, value));
CFont f = new CFont(value); CFont f = new CFont(value);
sf.Normal = f; sf.Normal = f;
string name = String.Empty; 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; 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; sf.FileItalic = value;
value = Path.Combine(FontFolder, Path.Combine(sf.Folder, value)); value = Path.Combine(FontFolder, Path.Combine(sf.Folder, value));
f = new CFont(value); f = new CFont(value);
sf.Italic = f; 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; sf.FileBold = value;
value = Path.Combine(FontFolder, Path.Combine(sf.Folder, value)); value = Path.Combine(FontFolder, Path.Combine(sf.Folder, value));
f = new CFont(value); f = new CFont(value);
sf.Bold = f; 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; sf.FileBoldItalic = value;
value = Path.Combine(FontFolder, Path.Combine(sf.Folder, value)); value = Path.Combine(FontFolder, Path.Combine(sf.Folder, value));
f = new CFont(value); f = new CFont(value);
sf.BoldItalic = f; sf.BoldItalic = f;
sf.Outline = 0f; 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); sf.OutlineColor = new SColorF(0f, 0f, 0f, 1f);
ok &= CHelper.TryGetFloatValueFromXML("//root/Fonts/Font" + i.ToString() + "/OutlineColorR", navigator, ref sf.OutlineColor.R); ok &= xmlReader.TryGetFloatValue("//root/Fonts/Font" + i.ToString() + "/OutlineColorR", ref sf.OutlineColor.R);
ok &= CHelper.TryGetFloatValueFromXML("//root/Fonts/Font" + i.ToString() + "/OutlineColorG", navigator, ref sf.OutlineColor.G); ok &= xmlReader.TryGetFloatValue("//root/Fonts/Font" + i.ToString() + "/OutlineColorG", ref sf.OutlineColor.G);
ok &= CHelper.TryGetFloatValueFromXML("//root/Fonts/Font" + i.ToString() + "/OutlineColorB", navigator, ref sf.OutlineColor.B); ok &= xmlReader.TryGetFloatValue("//root/Fonts/Font" + i.ToString() + "/OutlineColorB", 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() + "/OutlineColorA", ref sf.OutlineColor.A);
if (ok) if (ok)
_Fonts.Add(sf); _Fonts.Add(sf);
@@ -890,11 +877,11 @@ namespace Vocaluxe.Base
/// <summary> /// <summary>
/// Loads party mode fonts from skin file /// Loads party mode fonts from skin file
/// </summary> /// </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; string value = string.Empty;
int i = 1; 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(); SFont sf = new SFont();
sf.Folder = value; sf.Folder = value;
@@ -905,42 +892,42 @@ namespace Vocaluxe.Base
bool ok = true; 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; sf.FileNormal = value;
value = Path.Combine(FontFolder, Path.Combine(sf.Folder, value)); value = Path.Combine(FontFolder, Path.Combine(sf.Folder, value));
CFont f = new CFont(value); CFont f = new CFont(value);
sf.Normal = f; sf.Normal = f;
string name = String.Empty; 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; 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; sf.FileItalic = value;
value = Path.Combine(FontFolder, Path.Combine(sf.Folder, value)); value = Path.Combine(FontFolder, Path.Combine(sf.Folder, value));
f = new CFont(value); f = new CFont(value);
sf.Italic = f; 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; sf.FileBold = value;
value = Path.Combine(FontFolder, Path.Combine(sf.Folder, value)); value = Path.Combine(FontFolder, Path.Combine(sf.Folder, value));
f = new CFont(value); f = new CFont(value);
sf.Bold = f; 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; sf.FileBoldItalic = value;
value = Path.Combine(FontFolder, Path.Combine(sf.Folder, value)); value = Path.Combine(FontFolder, Path.Combine(sf.Folder, value));
f = new CFont(value); f = new CFont(value);
sf.BoldItalic = f; sf.BoldItalic = f;
sf.Outline = 0f; 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); sf.OutlineColor = new SColorF(0f, 0f, 0f, 1f);
ok &= CHelper.TryGetFloatValueFromXML("//root/Fonts/Font" + i.ToString() + "/OutlineColorR", navigator, ref sf.OutlineColor.R); ok &= xmlReader.TryGetFloatValue("//root/Fonts/Font" + i.ToString() + "/OutlineColorR", ref sf.OutlineColor.R);
ok &= CHelper.TryGetFloatValueFromXML("//root/Fonts/Font" + i.ToString() + "/OutlineColorG", navigator, ref sf.OutlineColor.G); ok &= xmlReader.TryGetFloatValue("//root/Fonts/Font" + i.ToString() + "/OutlineColorG", ref sf.OutlineColor.G);
ok &= CHelper.TryGetFloatValueFromXML("//root/Fonts/Font" + i.ToString() + "/OutlineColorB", navigator, ref sf.OutlineColor.B); ok &= xmlReader.TryGetFloatValue("//root/Fonts/Font" + i.ToString() + "/OutlineColorB", 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() + "/OutlineColorA", ref sf.OutlineColor.A);
if (ok) if (ok)
_Fonts.Add(sf); _Fonts.Add(sf);
+62 -85
View File
@@ -4,7 +4,6 @@ using System.Collections.Generic;
using System.IO; using System.IO;
using System.Text; using System.Text;
using System.Xml; using System.Xml;
using System.Xml.XPath;
using Vocaluxe.Menu; using Vocaluxe.Menu;
@@ -241,125 +240,103 @@ namespace Vocaluxe.Base
private static bool LoadPartyLanguageFile(int PartyModeID, string file) private static bool LoadPartyLanguageFile(int PartyModeID, string file)
{ {
bool loaded = false; CXMLReader xmlReader;
XPathDocument xPathDoc = null;
XPathNavigator navigator = null;
try try
{ {
xPathDoc = new XPathDocument(file); xmlReader = new CXMLReader(file);
navigator = xPathDoc.CreateNavigator();
loaded = true;
} }
catch (Exception e) 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); 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; int nr = GetLanguageNr(value);
if (loaded == CHelper.GetValueFromXML("//resources/string[@name='language']", navigator, ref value, value))
{
int nr = GetLanguageNr(value);
if (nr == -1) 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);
return true; 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) private static void LoadLanguageFile(string FileName)
{ {
bool loaded = false;
XPathDocument xPathDoc = null;
XPathNavigator navigator = null;
SLanguage lang = new SLanguage(); SLanguage lang = new SLanguage();
lang.LanguageFilePath = Path.Combine(CSettings.sFolderLanguages, FileName); lang.LanguageFilePath = Path.Combine(CSettings.sFolderLanguages, FileName);
CXMLReader xmlReader;
try try
{ {
xPathDoc = new XPathDocument(lang.LanguageFilePath); xmlReader = new CXMLReader(lang.LanguageFilePath);
navigator = xPathDoc.CreateNavigator();
loaded = true;
} }
catch (Exception e) catch (Exception e)
{ {
loaded = false; CLog.LogError("Error opening Language File " + FileName + ": " + e.Message);
if (navigator != null) return;
navigator = null;
if (xPathDoc != null)
xPathDoc = null;
CLog.LogError("Error opening Language File " + FileName + ": " + e.Message);
} }
if (loaded) string value = string.Empty;
if (xmlReader.GetValue("//resources/string[@name='language']", ref value, value))
{ {
string value = string.Empty; lang.Name = value;
if (CHelper.GetValueFromXML("//resources/string[@name='language']", navigator, ref value, 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 (xmlReader.GetValue("//resources/string[@name='" + texts[i] + "']", ref value, 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 (CHelper.GetValueFromXML("//resources/string[@name='" + texts[i] + "']", navigator, ref value, value)) try
{ {
try lang.Texts.Add(texts[i], value);
{ }
lang.Texts.Add(texts[i], value); catch (Exception e)
} {
catch (Exception e) CLog.LogError("Error reading Language File " + FileName + ": " + e.Message);
{
CLog.LogError("Error reading Language File " + FileName + ": " + e.Message);
}
} }
} }
_Languages.Add(lang);
} }
_Languages.Add(lang);
} }
} }
+27 -39
View File
@@ -4,8 +4,6 @@ using System.Collections.Generic;
using System.IO; using System.IO;
using System.Reflection; using System.Reflection;
using System.Text; using System.Text;
using System.Xml;
using System.Xml.XPath;
using Vocaluxe.Menu; using Vocaluxe.Menu;
using Vocaluxe.PartyModes; using Vocaluxe.PartyModes;
@@ -224,53 +222,31 @@ namespace Vocaluxe.Base
pm.ScreenFiles = new List<string>(); pm.ScreenFiles = new List<string>();
pm.NoErrors = false; pm.NoErrors = false;
bool loaded = false; CXMLReader xmlReader;
XPathDocument xPathDoc = null;
XPathNavigator navigator = null;
try try
{ {
xPathDoc = new XPathDocument(file); xmlReader = new CXMLReader(file);
navigator = xPathDoc.CreateNavigator();
loaded = true;
} }
catch (Exception e) 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); CLog.LogError("Error opening party mode file " + file + ": " + e.Message);
return pm;
} }
if (loaded) bool loaded = true;
{
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");
if (pm.PartyModeSystemVersion != PartyModeSystemVersion) loaded &= xmlReader.TryGetIntValue("//root/PartyModeSystemVersion", ref pm.PartyModeSystemVersion);
{ loaded &= xmlReader.GetValue("//root/Info/Name", ref pm.Name, "ERROR Name");
CLog.LogError("Error loading PartyMode file (wrong PartyModeSystemVersion): " + file); loaded &= xmlReader.GetValue("//root/Info/Description", ref pm.Description, "ERROR Description");
return pm; 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");
if (pm.ScreenFiles.Count == 0) loaded &= xmlReader.GetInnerValues("PartyScreens", ref pm.ScreenFiles);
{ loaded &= xmlReader.TryGetIntValue("//root/Info/PartyModeVersionMajor", ref pm.PartyModeVersionMajor);
CLog.LogError("Error loading PartyMode file (no ScreenFiles found): " + file); loaded &= xmlReader.TryGetIntValue("//root/Info/PartyModeVersionMinor", ref pm.PartyModeVersionMinor);
return pm; loaded &= xmlReader.GetValue("//root/Info/TargetAudience", ref pm.TargetAudience, "ERROR TargetAudience");
}
}
if (!loaded) if (!loaded)
{ {
@@ -278,6 +254,18 @@ namespace Vocaluxe.Base
return pm; 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); string PathToCode = Path.Combine(Path.Combine(CSettings.sFolderPartyModes, pm.Folder), CSettings.sFolderPartyModeCode);
List<string> FilesToCompile = new List<string>(); List<string> FilesToCompile = new List<string>();
-2
View File
@@ -3,8 +3,6 @@ using System.Collections.Generic;
using System.IO; using System.IO;
using System.Text; using System.Text;
using System.Text.RegularExpressions; using System.Text.RegularExpressions;
using System.Xml;
using System.Xml.XPath;
using Vocaluxe.Lib.Playlist; using Vocaluxe.Lib.Playlist;
using Vocaluxe.GameModes; using Vocaluxe.GameModes;
+27 -41
View File
@@ -3,7 +3,6 @@ using System.Collections.Generic;
using System.IO; using System.IO;
using System.Text; using System.Text;
using System.Xml; using System.Xml;
using System.Xml.XPath;
using Vocaluxe.Lib.Draw; using Vocaluxe.Lib.Draw;
using Vocaluxe.Menu; using Vocaluxe.Menu;
@@ -359,59 +358,46 @@ namespace Vocaluxe.Base
private static void LoadProfile(string FileName) private static void LoadProfile(string FileName)
{ {
bool loaded = false;
XPathDocument xPathDoc = null;
XPathNavigator navigator = null;
SProfile profile = new SProfile(); SProfile profile = new SProfile();
profile.ProfileFile = Path.Combine(CSettings.sFolderProfiles, FileName); profile.ProfileFile = Path.Combine(CSettings.sFolderProfiles, FileName);
CXMLReader xmlReader;
try try
{ {
xPathDoc = new XPathDocument(profile.ProfileFile); xmlReader = new CXMLReader(profile.ProfileFile);
navigator = xPathDoc.CreateNavigator();
loaded = true;
} }
catch (Exception e) catch (Exception e)
{ {
loaded = false; CLog.LogError("Error opening Profile File " + FileName + ": " + e.Message);
if (navigator != null) return;
navigator = null;
if (xPathDoc != null)
xPathDoc = null;
CLog.LogError("Error opening Profile File " + FileName + ": " + e.Message);
} }
if (loaded) string value = String.Empty;
if (xmlReader.GetValue("//root/Info/PlayerName", ref value, value))
{ {
string value = String.Empty; profile.PlayerName = value;
if (CHelper.GetValueFromXML("//root/Info/PlayerName", navigator, ref value, 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.Avatar = GetAvatar(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.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 #endregion private methods
+168 -218
View File
@@ -4,7 +4,6 @@ using System.IO;
using System.Text; using System.Text;
using System.Windows.Forms; using System.Windows.Forms;
using System.Xml; using System.Xml;
using System.Xml.XPath;
using Vocaluxe.Lib.Draw; using Vocaluxe.Lib.Draw;
using Vocaluxe.Menu; using Vocaluxe.Menu;
@@ -148,80 +147,68 @@ namespace Vocaluxe.Base
public static bool LoadSkin(int SkinIndex) public static bool LoadSkin(int SkinIndex)
{ {
bool loaded = false; CXMLReader xmlReader;
XPathDocument xPathDoc = null;
XPathNavigator navigator = null;
try try
{ {
xPathDoc = new XPathDocument(Path.Combine(_Skins[SkinIndex].Path, _Skins[SkinIndex].FileName)); xmlReader = new CXMLReader(Path.Combine(_Skins[SkinIndex].Path, _Skins[SkinIndex].FileName));
navigator = xPathDoc.CreateNavigator();
loaded = true;
} }
catch (Exception e) catch (Exception e)
{ {
CLog.LogError("Error loading skin " + _Skins[SkinIndex].FileName + ": " + e.Message); CLog.LogError("Error loading skin " + _Skins[SkinIndex].FileName + ": " + e.Message);
loaded = false; return false;
if (navigator != null)
navigator = null;
if (xPathDoc != null)
xPathDoc = null;
} }
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; try
// load skins/textures
List<string> keys = new List<string>(_Skins[SkinIndex].SkinList.Keys);
foreach (string name in keys)
{ {
try xmlReader.GetValue("//root/Skins/" + name, ref value, String.Empty);
{ SkinElement sk = _Skins[SkinIndex].SkinList[name];
CHelper.GetValueFromXML("//root/Skins/" + name, navigator, ref value, String.Empty); sk.Value = value;
SkinElement sk = _Skins[SkinIndex].SkinList[name]; sk.VideoIndex = -1;
sk.Value = value; sk.Texture = CDraw.AddTexture(Path.Combine(_Skins[SkinIndex].Path, sk.Value));
sk.VideoIndex = -1; _Skins[SkinIndex].SkinList[name] = sk;
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);
}
} }
catch (Exception e)
// load videos
for (int i = 0; i < _Skins[SkinIndex].VideoList.Count; i++)
{ {
try MessageBox.Show("Error on loading texture \"" + name + "\": " + e.Message + e.StackTrace);
{ CLog.LogError("Error on loading texture \"" + name + "\": " + e.Message + e.StackTrace);
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);
}
} }
// 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() public static void UnloadSkins()
@@ -271,57 +258,45 @@ namespace Vocaluxe.Base
public static bool LoadTheme(int ThemeIndex) public static bool LoadTheme(int ThemeIndex)
{ {
bool loaded = false;
XPathDocument xPathDoc = null;
XPathNavigator navigator = null;
if (ThemeIndex < 0 || ThemeIndex >= _Themes.Count) if (ThemeIndex < 0 || ThemeIndex >= _Themes.Count)
{ {
CLog.LogError("Can't find Theme Index " + ThemeIndex.ToString()); CLog.LogError("Can't find Theme Index " + ThemeIndex.ToString());
return false; return false;
} }
CXMLReader xmlReader;
try try
{ {
xPathDoc = new XPathDocument(Path.Combine(_Themes[ThemeIndex].Path, _Themes[ThemeIndex].FileName)); xmlReader = new CXMLReader(Path.Combine(_Themes[ThemeIndex].Path, _Themes[ThemeIndex].FileName));
navigator = xPathDoc.CreateNavigator();
loaded = true;
} }
catch (Exception e) catch (Exception e)
{ {
CLog.LogError("Error loading theme " + _Themes[ThemeIndex].FileName + ": " + e.Message); CLog.LogError("Error loading theme " + _Themes[ThemeIndex].FileName + ": " + e.Message);
loaded = false; return false;
if (navigator != null)
navigator = null;
if (xPathDoc != null)
xPathDoc = null;
} }
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); CFonts.LoadThemeFonts(
_Themes[ThemeIndex].Name,
// Load Cursor Path.Combine(Path.Combine(_Themes[ThemeIndex].Path, _Themes[ThemeIndex].SkinFolder), CSettings.sFolderThemeFonts),
if (_Themes[ThemeIndex].PartyModeID == -1) xmlReader);
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);
}
} }
return loaded; else
{
CFonts.LoadPartyModeFonts(_Themes[ThemeIndex].PartyModeID,
Path.Combine(_Themes[ThemeIndex].Path, CSettings.sFolderPartyModeFonts),
xmlReader);
}
return true;
} }
public static void SaveTheme() public static void SaveTheme()
@@ -445,64 +420,51 @@ namespace Vocaluxe.Base
public static bool AddTheme(string FilePath, int PartyModeID) public static bool AddTheme(string FilePath, int PartyModeID)
{ {
bool loaded = false; CXMLReader xmlReader;
XPathDocument xPathDoc = null;
XPathNavigator navigator = null;
try try
{ {
xPathDoc = new XPathDocument(FilePath); xmlReader = new CXMLReader(FilePath);
navigator = xPathDoc.CreateNavigator();
loaded = true;
} }
catch (Exception e) catch (Exception e)
{ {
CLog.LogError("Error loading theme " + FilePath + ": " + e.Message); CLog.LogError("Error loading theme " + FilePath + ": " + e.Message);
loaded = false; return false;
if (navigator != null)
navigator = null;
if (xPathDoc != null)
xPathDoc = null;
} }
if (loaded) Theme theme = new Theme();
int version = 0;
xmlReader.TryGetIntValue("//root/ThemeSystemVersion", ref version);
if (version == ThemeSystemVersion)
{ {
Theme theme = new Theme(); xmlReader.GetValue("//root/Info/Name", ref theme.Name, String.Empty);
if (theme.Name != String.Empty)
int version = 0;
CHelper.TryGetIntValueFromXML("//root/ThemeSystemVersion", navigator, ref version);
if (version == ThemeSystemVersion)
{ {
CHelper.GetValueFromXML("//root/Info/Name", navigator, ref theme.Name, String.Empty); xmlReader.GetValue("//root/Info/Author", ref theme.Author, String.Empty);
if (theme.Name != String.Empty) xmlReader.GetValue("//root/Info/SkinFolder", ref theme.SkinFolder, String.Empty);
{ xmlReader.TryGetIntValue("//root/Info/ThemeVersionMajor", ref theme.ThemeVersionMajor);
CHelper.GetValueFromXML("//root/Info/Author", navigator, ref theme.Author, String.Empty); xmlReader.TryGetIntValue("//root/Info/ThemeVersionMinor", ref theme.ThemeVersionMinor);
CHelper.GetValueFromXML("//root/Info/SkinFolder", navigator, ref theme.SkinFolder, String.Empty); theme.Path = Path.GetDirectoryName(FilePath);
CHelper.TryGetIntValueFromXML("//root/Info/ThemeVersionMajor", navigator, ref theme.ThemeVersionMajor); theme.FileName = Path.GetFileName(FilePath);
CHelper.TryGetIntValueFromXML("//root/Info/ThemeVersionMinor", navigator, ref theme.ThemeVersionMinor); theme.PartyModeID = PartyModeID;
theme.Path = Path.GetDirectoryName(FilePath);
theme.FileName = Path.GetFileName(FilePath);
theme.PartyModeID = PartyModeID;
_Themes.Add(theme); _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;
} }
} }
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() public static void ListSkins()
@@ -536,82 +498,70 @@ namespace Vocaluxe.Base
foreach (string file in files) foreach (string file in files)
{ {
bool loaded = false; CXMLReader xmlReader;
XPathDocument xPathDoc = null;
XPathNavigator navigator = null;
try try
{ {
xPathDoc = new XPathDocument(Path.Combine(path, file)); xmlReader = new CXMLReader(Path.Combine(path, file));
navigator = xPathDoc.CreateNavigator();
loaded = true;
} }
catch (Exception e) catch (Exception e)
{ {
CLog.LogError("Error loading skin " + file + ": " + e.Message); CLog.LogError("Error loading skin " + file + ": " + e.Message);
loaded = false; continue;
if (navigator != null)
navigator = null;
if (xPathDoc != null)
xPathDoc = null;
} }
if (loaded) Skin skin = new Skin();
int version = 0;
xmlReader.TryGetIntValue("//root/SkinSystemVersion", ref version);
if (version == SkinSystemVersion)
{ {
Skin skin = new Skin(); xmlReader.GetValue("//root/Info/Name", ref skin.Name, String.Empty);
if (skin.Name != String.Empty)
int version = 0;
CHelper.TryGetIntValueFromXML("//root/SkinSystemVersion", navigator, ref version);
if (version == SkinSystemVersion)
{ {
CHelper.GetValueFromXML("//root/Info/Name", navigator, ref skin.Name, String.Empty); xmlReader.GetValue("//root/Info/Author", ref skin.Author, String.Empty);
if (skin.Name != 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); SkinElement sk = new SkinElement();
CHelper.TryGetIntValueFromXML("//root/Info/SkinVersionMajor", navigator, ref skin.SkinVersionMajor); sk.Name = str;
CHelper.TryGetIntValueFromXML("//root/Info/SkinVersionMinor", navigator, ref skin.SkinVersionMinor); sk.Value = String.Empty;
skin.SkinList[str] = sk;
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);
} }
}
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(); skin.VideoList = new List<SkinElement>();
CLog.LogError(msg); 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 #endregion Theme and Skin loading and writing
@@ -804,7 +754,7 @@ namespace Vocaluxe.Base
#endregion Theme and Skin index handling #endregion Theme and Skin index handling
#region Element loading #region Element loading
private static void LoadColors(XPathNavigator navigator, int SkinIndex) private static void LoadColors(CXMLReader xmlReader, int SkinIndex)
{ {
Skin skin = _Skins[SkinIndex]; Skin skin = _Skins[SkinIndex];
@@ -814,14 +764,14 @@ namespace Vocaluxe.Base
float value = 0f; float value = 0f;
int i = 1; 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(); SColorF color = new SColorF();
color.R = value; color.R = value;
CHelper.TryGetFloatValueFromXML("//root/Colors/Player" + i.ToString() + "/G", navigator, ref color.G); xmlReader.TryGetFloatValue("//root/Colors/Player" + i.ToString() + "/G", ref color.G);
CHelper.TryGetFloatValueFromXML("//root/Colors/Player" + i.ToString() + "/B", navigator, ref color.B); xmlReader.TryGetFloatValue("//root/Colors/Player" + i.ToString() + "/B", ref color.B);
CHelper.TryGetFloatValueFromXML("//root/Colors/Player" + i.ToString() + "/A", navigator, ref color.A); xmlReader.TryGetFloatValue("//root/Colors/Player" + i.ToString() + "/A", ref color.A);
PlayerColors.Add(color); PlayerColors.Add(color);
i++; i++;
@@ -830,16 +780,16 @@ namespace Vocaluxe.Base
} }
List<SColorScheme> ColorScheme = new List<SColorScheme>(); List<SColorScheme> ColorScheme = new List<SColorScheme>();
List<string> names = CHelper.GetValuesFromXML("ColorSchemes", navigator); List<string> names = xmlReader.GetValues("ColorSchemes");
foreach (string str in names) foreach (string str in names)
{ {
SColorScheme scheme = new SColorScheme(); SColorScheme scheme = new SColorScheme();
scheme.Name = str; scheme.Name = str;
CHelper.TryGetFloatValueFromXML("//root/ColorSchemes/" + str + "/R", navigator, ref scheme.Color.R); xmlReader.TryGetFloatValue("//root/ColorSchemes/" + str + "/R", ref scheme.Color.R);
CHelper.TryGetFloatValueFromXML("//root/ColorSchemes/" + str + "/G", navigator, ref scheme.Color.G); xmlReader.TryGetFloatValue("//root/ColorSchemes/" + str + "/G", ref scheme.Color.G);
CHelper.TryGetFloatValueFromXML("//root/ColorSchemes/" + str + "/B", navigator, ref scheme.Color.B); xmlReader.TryGetFloatValue("//root/ColorSchemes/" + str + "/B", ref scheme.Color.B);
CHelper.TryGetFloatValueFromXML("//root/ColorSchemes/" + str + "/A", navigator, ref scheme.Color.A); xmlReader.TryGetFloatValue("//root/ColorSchemes/" + str + "/A", ref scheme.Color.A);
ColorScheme.Add(scheme); ColorScheme.Add(scheme);
} }
@@ -848,15 +798,15 @@ namespace Vocaluxe.Base
_Skins[SkinIndex] = skin; _Skins[SkinIndex] = skin;
} }
private static void LoadCursor(XPathNavigator navigator, int SkinIndex) private static void LoadCursor(CXMLReader xmlReader, int SkinIndex)
{ {
string value = String.Empty; 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); xmlReader.TryGetFloatValue("//root/Cursor/W", ref Cursor.w);
CHelper.TryGetFloatValueFromXML("//root/Cursor/H", navigator, ref Cursor.h); 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); SColorF color = GetColor(value, _Skins[SkinIndex].PartyModeID);
Cursor.r = color.R; Cursor.r = color.R;
@@ -868,10 +818,10 @@ namespace Vocaluxe.Base
else else
{ {
Cursor.color = String.Empty; Cursor.color = String.Empty;
CHelper.TryGetFloatValueFromXML("//root/Cursor/R", navigator, ref Cursor.r); xmlReader.TryGetFloatValue("//root/Cursor/R", ref Cursor.r);
CHelper.TryGetFloatValueFromXML("//root/Cursor/G", navigator, ref Cursor.g); xmlReader.TryGetFloatValue("//root/Cursor/G", ref Cursor.g);
CHelper.TryGetFloatValueFromXML("//root/Cursor/B", navigator, ref Cursor.b); xmlReader.TryGetFloatValue("//root/Cursor/B", ref Cursor.b);
CHelper.TryGetFloatValueFromXML("//root/Cursor/A", navigator, ref Cursor.a); xmlReader.TryGetFloatValue("//root/Cursor/A", ref Cursor.a);
} }
} }
#endregion Element loading #endregion Element loading
-2
View File
@@ -6,8 +6,6 @@ using System.Globalization;
using System.IO; using System.IO;
using System.Text; using System.Text;
using System.Windows.Forms; using System.Windows.Forms;
using System.Xml;
using System.Xml.XPath;
using Vocaluxe.Lib.Draw; using Vocaluxe.Lib.Draw;
using Vocaluxe.Menu; using Vocaluxe.Menu;
+39 -53
View File
@@ -3,7 +3,6 @@ using System.Collections.Generic;
using System.IO; using System.IO;
using System.Text; using System.Text;
using System.Xml; using System.Xml;
using System.Xml.XPath;
using Vocaluxe.Base; using Vocaluxe.Base;
using Vocaluxe.GameModes; using Vocaluxe.GameModes;
@@ -122,76 +121,63 @@ namespace Vocaluxe.Lib.Playlist
private void LoadPlaylist() private void LoadPlaylist()
{ {
bool loaded = false; CXMLReader xmlReader;
XPathDocument xPathDoc = null;
XPathNavigator navigator = null;
try try
{ {
xPathDoc = new XPathDocument(PlaylistFile); xmlReader = new CXMLReader(PlaylistFile);
navigator = xPathDoc.CreateNavigator();
loaded = true;
} }
catch (Exception e) catch (Exception e)
{ {
loaded = false;
if (navigator != null)
navigator = null;
if (xPathDoc != null)
xPathDoc = null;
CLog.LogError("Error opening Playlist File " + PlaylistFile + ": " + e.Message); 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; PlaylistName = value;
if (CHelper.GetValueFromXML("//root/Info/PlaylistName", navigator, ref value, 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); for (int s = 0; s < AllSongs.Length; s++)
string artist = String.Empty;
string title = String.Empty;
EGameMode gm = EGameMode.TR_GAMEMODE_NORMAL;
for (int i = 0; i < songs.Count; i++)
{ {
CHelper.GetValueFromXML("//root/Songs/" + songs[i] + "/Artist", navigator, ref artist, String.Empty); if (AllSongs[s].Artist == artist && AllSongs[s].Title == title)
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) song.SongID = AllSongs[s].ID;
{ break;
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);
} }
} }
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 }
{ else
CLog.LogError("Can't find PlaylistName in Playlist File: " + PlaylistFile); {
} CLog.LogError("Can't find PlaylistName in Playlist File: " + PlaylistFile);
} }
} }
+28 -24
View File
@@ -738,6 +738,30 @@ namespace Vocaluxe.Screens
CWebcam.Close(); 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() private void UpdateLyrics()
{ {
if (_FadeOut) if (_FadeOut)
@@ -759,18 +783,8 @@ namespace Vocaluxe.Screens
lines[i] = song.Notes.GetLines(i); lines[i] = song.Notes.GetLines(i);
CLine[] line = lines[i].Line; CLine[] line = lines[i].Line;
// find current line (it must be the same as in CalcFadingAlpha) // find current line
int nr = -1; int nr = FindCurrentLine(line, song);
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;
}
}
}
if (nr != -1) if (nr != -1)
{ {
@@ -1048,18 +1062,8 @@ namespace Vocaluxe.Screens
lines[i] = Song.Notes.GetLines(i); lines[i] = Song.Notes.GetLines(i);
CLine[] line = lines[i].Line; CLine[] line = lines[i].Line;
// find current line for lyric sub fading (it must be the same as in UpdateLyrics) // find current line for lyric sub fading
int CurrentLineSub = 0; int CurrentLineSub = FindCurrentLine(line, Song);
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 main fading // find current line for lyric main fading
int CurrentLine = 0; int CurrentLine = 0;
+9 -10
View File
@@ -4,7 +4,6 @@ using System.Diagnostics;
using System.Drawing; using System.Drawing;
using System.Text; using System.Text;
using System.Xml; using System.Xml;
using System.Xml.XPath;
namespace Vocaluxe.Menu namespace Vocaluxe.Menu
{ {
@@ -55,28 +54,28 @@ namespace Vocaluxe.Menu
#endregion Constructors #endregion Constructors
#region public #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; string item = XmlPath + "/" + ElementName;
_ThemeLoaded = true; _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 vid = xmlReader.GetValue(item + "/Video", ref _Theme.VideoName, String.Empty);
bool tex = CHelper.GetValueFromXML(item + "/Skin", navigator, ref _Theme.TextureName, String.Empty); bool tex = xmlReader.GetValue(item + "/Skin", ref _Theme.TextureName, String.Empty);
_ThemeLoaded &= vid || tex || _Theme.Type == EBackgroundTypes.None; _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); _ThemeLoaded &= _Base.Theme.GetColor(_Theme.ColorName, SkinIndex, ref Color);
} }
else else
{ {
bool success = true; bool success = true;
success &= CHelper.TryGetFloatValueFromXML(item + "/R", navigator, ref Color.R); success &= xmlReader.TryGetFloatValue(item + "/R", ref Color.R);
success &= CHelper.TryGetFloatValueFromXML(item + "/G", navigator, ref Color.G); success &= xmlReader.TryGetFloatValue(item + "/G", ref Color.G);
success &= CHelper.TryGetFloatValueFromXML(item + "/B", navigator, ref Color.B); success &= xmlReader.TryGetFloatValue(item + "/B", ref Color.B);
success &= CHelper.TryGetFloatValueFromXML(item + "/A", navigator, ref Color.A); success &= xmlReader.TryGetFloatValue(item + "/A", ref Color.A);
if (_Theme.Type != EBackgroundTypes.None) if (_Theme.Type != EBackgroundTypes.None)
_ThemeLoaded &= success; _ThemeLoaded &= success;
+27 -28
View File
@@ -3,7 +3,6 @@ using System.Drawing;
using System.Collections.Generic; using System.Collections.Generic;
using System.Text; using System.Text;
using System.Xml; using System.Xml;
using System.Xml.XPath;
namespace Vocaluxe.Menu namespace Vocaluxe.Menu
{ {
@@ -135,69 +134,69 @@ namespace Vocaluxe.Menu
SReflectionSpace = button.SReflectionSpace; 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; string item = XmlPath + "/" + ElementName;
_ThemeLoaded = true; _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.GetValueFromXML(item + "/SkinSelected", navigator, ref _Theme.STextureName, String.Empty); _ThemeLoaded &= xmlReader.GetValue(item + "/SkinSelected", ref _Theme.STextureName, String.Empty);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/X", navigator, ref Rect.X); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/X", ref Rect.X);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/Y", navigator, ref Rect.Y); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Y", ref Rect.Y);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/Z", navigator, ref Rect.Z); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Z", ref Rect.Z);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/W", navigator, ref Rect.W); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/W", ref Rect.W);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/H", navigator, ref Rect.H); _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); _ThemeLoaded &= _Base.Theme.GetColor(_Theme.ColorName, SkinIndex, ref Color);
} }
else else
{ {
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/R", navigator, ref Color.R); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/R", ref Color.R);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/G", navigator, ref Color.G); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/G", ref Color.G);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/B", navigator, ref Color.B); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/B", ref Color.B);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/A", navigator, ref Color.A); _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); _ThemeLoaded &= _Base.Theme.GetColor(_Theme.SColorName, SkinIndex, ref SColor);
} }
else else
{ {
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/SR", navigator, ref SColor.R); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SR", ref SColor.R);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/SG", navigator, ref SColor.G); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SG", ref SColor.G);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/SB", navigator, ref SColor.B); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SB", ref SColor.B);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/SA", navigator, ref SColor.A); _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; Text.Z = Rect.Z;
if (CHelper.ItemExistsInXML(item + "/SText", navigator)) if (xmlReader.ItemExists(item + "/SText"))
{ {
SelText = true; SelText = true;
_ThemeLoaded &= SText.LoadTheme(item, "SText", navigator, SkinIndex, true); _ThemeLoaded &= SText.LoadTheme(item, "SText", xmlReader, SkinIndex, true);
SText.Z = Rect.Z; SText.Z = Rect.Z;
} }
//Reflections //Reflections
if (CHelper.ItemExistsInXML(item + "/Reflection", navigator)) if (xmlReader.ItemExists(item + "/Reflection"))
{ {
Reflection = true; Reflection = true;
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/Reflection/Space", navigator, ref ReflectionSpace); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Reflection/Space", ref ReflectionSpace);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/Reflection/Height", navigator, ref ReflectionHeight); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Reflection/Height", ref ReflectionHeight);
} }
else else
Reflection = false; Reflection = false;
if (CHelper.ItemExistsInXML(item + "/SReflection", navigator)) if (xmlReader.ItemExists(item + "/SReflection"))
{ {
SReflection = true; SReflection = true;
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/SReflection/Space", navigator, ref SReflectionSpace); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SReflection/Space", ref SReflectionSpace);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/SReflection/Height", navigator, ref SReflectionHeight); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SReflection/Height", ref SReflectionHeight);
} }
else else
SReflection = false; SReflection = false;
+24 -25
View File
@@ -3,7 +3,6 @@ using System.Collections.Generic;
using System.Drawing; using System.Drawing;
using System.Text; using System.Text;
using System.Xml; using System.Xml;
using System.Xml.XPath;
namespace Vocaluxe.Menu namespace Vocaluxe.Menu
{ {
@@ -73,57 +72,57 @@ namespace Vocaluxe.Menu
ReflectionHeight = 0f; 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; string item = XmlPath + "/" + ElementName;
_ThemeLoaded = true; _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 &= xmlReader.TryGetFloatValue(item + "/X", ref Rect.X);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/Y", navigator, ref Rect.Y); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Y", ref Rect.Y);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/Z", navigator, ref Rect.Z); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Z", ref Rect.Z);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/W", navigator, ref Rect.W); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/W", ref Rect.W);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/H", navigator, ref Rect.H); _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); _ThemeLoaded &= _Base.Theme.GetColor(_Theme.ColorName, SkinIndex, ref Color);
} }
else else
{ {
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/R", navigator, ref Color.R); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/R", ref Color.R);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/G", navigator, ref Color.G); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/G", ref Color.G);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/B", navigator, ref Color.B); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/B", ref Color.B);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/A", navigator, ref Color.A); _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); _ThemeLoaded &= _Base.Theme.GetColor(_Theme.ColorName, SkinIndex, ref Color);
} }
else else
{ {
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/MaxR", navigator, ref MaxColor.R); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/MaxR", ref MaxColor.R);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/MaxG", navigator, ref MaxColor.G); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/MaxG", ref MaxColor.G);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/MaxB", navigator, ref MaxColor.B); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/MaxB", ref MaxColor.B);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/MaxA", navigator, ref MaxColor.A); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/MaxA", ref MaxColor.A);
} }
//Reflection //Reflection
if (CHelper.ItemExistsInXML(item + "/Reflection", navigator)) if (xmlReader.ItemExists(item + "/Reflection"))
{ {
Reflection = true; Reflection = true;
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/Reflection/Space", navigator, ref ReflectionSpace); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Reflection/Space", ref ReflectionSpace);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/Reflection/Height", navigator, ref ReflectionHeight); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Reflection/Height", ref ReflectionHeight);
} }
else else
Reflection = false; Reflection = false;
-182
View File
@@ -4,8 +4,6 @@ using System.Drawing;
using System.Globalization; using System.Globalization;
using System.IO; using System.IO;
using System.Text; using System.Text;
using System.Xml;
using System.Xml.XPath;
namespace Vocaluxe.Menu namespace Vocaluxe.Menu
{ {
@@ -127,187 +125,7 @@ namespace Vocaluxe.Menu
Rect = new RectangleF(Left, Upper, Rigth - Left, Lower - Upper); 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) public List<string> ListFiles(string path, string cast)
{ {
+16 -17
View File
@@ -3,7 +3,6 @@ using System.Collections.Generic;
using System.Drawing; using System.Drawing;
using System.Text; using System.Text;
using System.Xml; using System.Xml;
using System.Xml.XPath;
using Vocaluxe.Menu.SingNotes; using Vocaluxe.Menu.SingNotes;
@@ -108,39 +107,39 @@ namespace Vocaluxe.Menu
_Style = ELyricStyle.Fill; _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; string item = XmlPath + "/" + ElementName;
_ThemeLoaded = true; _ThemeLoaded = true;
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/X", navigator, ref _X); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/X", ref _X);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/Y", navigator, ref _Y); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Y", ref _Y);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/Z", navigator, ref _Z); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Z", ref _Z);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/W", navigator, ref _MaxW); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/W", ref _MaxW);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/H", navigator, ref _H); _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); _ThemeLoaded &= _Base.Theme.GetColor(_Theme.ColorName, SkinIndex, ref Color);
} }
else else
{ {
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/R", navigator, ref Color.R); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/R", ref Color.R);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/G", navigator, ref Color.G); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/G", ref Color.G);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/B", navigator, ref Color.B); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/B", ref Color.B);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/A", navigator, ref Color.A); _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); _ThemeLoaded &= _Base.Theme.GetColor(_Theme.SColorName, SkinIndex, ref ColorProcessed);
} }
else else
{ {
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/SR", navigator, ref ColorProcessed.R); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SR", ref ColorProcessed.R);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/SG", navigator, ref ColorProcessed.G); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SG", ref ColorProcessed.G);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/SB", navigator, ref ColorProcessed.B); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SB", ref ColorProcessed.B);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/SA", navigator, ref ColorProcessed.A); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SA", ref ColorProcessed.A);
} }
if (_ThemeLoaded) if (_ThemeLoaded)
+28 -41
View File
@@ -6,7 +6,6 @@ using System.IO;
using System.Text; using System.Text;
using System.Windows.Forms; using System.Windows.Forms;
using System.Xml; using System.Xml;
using System.Xml.XPath;
using Vocaluxe.Menu; using Vocaluxe.Menu;
using Vocaluxe.Menu.SingNotes; using Vocaluxe.Menu.SingNotes;
@@ -176,45 +175,37 @@ namespace Vocaluxe.Menu
{ {
string file = Path.Combine(XmlPath, _ThemeName + ".xml"); string file = Path.Combine(XmlPath, _ThemeName + ".xml");
XPathDocument xPathDoc = null; CXMLReader xmlReader = null;
XPathNavigator navigator = null;
bool loaded = false;
try try
{ {
xPathDoc = new XPathDocument(file); xmlReader = new CXMLReader(file);
navigator = xPathDoc.CreateNavigator();
loaded = true;
} }
catch (Exception e) catch (Exception e)
{ {
loaded = false; if (xmlReader != null)
if (navigator != null) xmlReader = null;
navigator = null;
if (xPathDoc != null)
xPathDoc = null;
_Base.Log.LogError("Error loading theme file " + file + ": " + e.Message); _Base.Log.LogError("Error loading theme file " + file + ": " + e.Message);
} }
bool VersionCheck = false; bool VersionCheck = false;
if (loaded) if (xmlReader != null)
VersionCheck = CheckVersion(_ScreenVersion, navigator); VersionCheck = CheckVersion(_ScreenVersion, xmlReader);
int SkinIndex = _Base.Theme.GetSkinIndex(_PartyModeID); int SkinIndex = _Base.Theme.GetSkinIndex(_PartyModeID);
if (loaded && VersionCheck && SkinIndex != -1) if (xmlReader != null && VersionCheck && SkinIndex != -1)
{ {
_ThemePath = XmlPath; _ThemePath = XmlPath;
LoadThemeBasics(navigator, SkinIndex); LoadThemeBasics(xmlReader, SkinIndex);
if (_ThemeBackgrounds != null) if (_ThemeBackgrounds != null)
{ {
for (int i = 0; i < _ThemeBackgrounds.Length; i++) for (int i = 0; i < _ThemeBackgrounds.Length; i++)
{ {
CBackground background = new CBackground(_Base, _PartyModeID); 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)); _htBackgrounds.Add(_ThemeBackgrounds[i], AddBackground(background));
} }
@@ -230,7 +221,7 @@ namespace Vocaluxe.Menu
for (int i = 0; i < _ThemeStatics.Length; i++) for (int i = 0; i < _ThemeStatics.Length; i++)
{ {
CStatic stat = new CStatic(_Base, _PartyModeID); 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)); _htStatics.Add(_ThemeStatics[i], AddStatic(stat));
} }
@@ -246,7 +237,7 @@ namespace Vocaluxe.Menu
for (int i = 0; i < _ThemeTexts.Length; i++) for (int i = 0; i < _ThemeTexts.Length; i++)
{ {
CText text = new CText(_Base, _PartyModeID); 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)); _htTexts.Add(_ThemeTexts[i], AddText(text));
} }
@@ -262,7 +253,7 @@ namespace Vocaluxe.Menu
for (int i = 0; i < _ThemeButtons.Length; i++) for (int i = 0; i < _ThemeButtons.Length; i++)
{ {
CButton button = new CButton(_Base, _PartyModeID); 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)); _htButtons.Add(_ThemeButtons[i], AddButton(button));
} }
@@ -278,7 +269,7 @@ namespace Vocaluxe.Menu
for (int i = 0; i < _ThemeSelectSlides.Length; i++) for (int i = 0; i < _ThemeSelectSlides.Length; i++)
{ {
CSelectSlide slide = new CSelectSlide(_Base, _PartyModeID); 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)); _htSelectSlides.Add(_ThemeSelectSlides[i], AddSelectSlide(slide));
} }
@@ -294,7 +285,7 @@ namespace Vocaluxe.Menu
for (int i = 0; i < _ThemeSongMenus.Length; i++) for (int i = 0; i < _ThemeSongMenus.Length; i++)
{ {
CSongMenu sm = new CSongMenu(_Base, _PartyModeID); 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)); _htSongMenus.Add(_ThemeSongMenus[i], AddSongMenu(sm));
} }
@@ -310,7 +301,7 @@ namespace Vocaluxe.Menu
for (int i = 0; i < _ThemeLyrics.Length; i++) for (int i = 0; i < _ThemeLyrics.Length; i++)
{ {
CLyric lyric = new CLyric(_Base, _PartyModeID); 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)); _htLyrics.Add(_ThemeLyrics[i], AddLyric(lyric));
} }
@@ -326,7 +317,7 @@ namespace Vocaluxe.Menu
for (int i = 0; i < _ThemeSingNotes.Length; i++) for (int i = 0; i < _ThemeSingNotes.Length; i++)
{ {
CSingNotes notes = new CSingNotesClassic(_Base, _PartyModeID); 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)); _htSingNotes.Add(_ThemeSingNotes[i], AddSingNote(notes));
} }
@@ -342,7 +333,7 @@ namespace Vocaluxe.Menu
for (int i = 0; i < _ThemeNameSelections.Length; i++) for (int i = 0; i < _ThemeNameSelections.Length; i++)
{ {
CNameSelection nsel = new CNameSelection(_Base, _PartyModeID); 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)); _htNameSelections.Add(_ThemeNameSelections[i], AddNameSelection(nsel));
} }
@@ -358,7 +349,7 @@ namespace Vocaluxe.Menu
for (int i = 0; i < _ThemeEqualizers.Length; i++) for (int i = 0; i < _ThemeEqualizers.Length; i++)
{ {
CEqualizer eq = new CEqualizer(_Base, _PartyModeID); 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)); _htEqualizers.Add(_ThemeEqualizers[i], AddEqualizer(eq));
} }
@@ -374,7 +365,7 @@ namespace Vocaluxe.Menu
for (int i = 0; i < _ThemePlaylists.Length; i++) for (int i = 0; i < _ThemePlaylists.Length; i++)
{ {
CPlaylist pls = new CPlaylist(_Base, _PartyModeID); 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)); _htPlaylists.Add(_ThemePlaylists[i], AddPlaylist(pls));
} }
@@ -390,7 +381,7 @@ namespace Vocaluxe.Menu
for (int i = 0; i < _ThemeParticleEffects.Length; i++) for (int i = 0; i < _ThemeParticleEffects.Length; i++)
{ {
CParticleEffect pe = new CParticleEffect(_Base, _PartyModeID); 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)); _htParticleEffects.Add(_ThemeParticleEffects[i], AddParticleEffect(pe));
} }
@@ -406,7 +397,7 @@ namespace Vocaluxe.Menu
for (int i = 0; i < _ThemeScreenSettings.Length; i++) for (int i = 0; i < _ThemeScreenSettings.Length; i++)
{ {
CScreenSetting se = new CScreenSetting(_Base, _PartyModeID); 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)); _htScreenSettings.Add(_ThemeScreenSettings[i], AddScreenSetting(se));
} }
@@ -417,10 +408,6 @@ namespace Vocaluxe.Menu
} }
} }
} }
else
{
}
} }
public virtual void SaveTheme() 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; int version = 0;
CHelper.TryGetIntValueFromXML("//root/" + _ThemeName + "/ScreenVersion", navigator, ref version); xmlReader.TryGetIntValue("//root/" + _ThemeName + "/ScreenVersion", ref version);
if (version == Version) if (version == Version)
return true; return true;
@@ -2537,14 +2524,14 @@ namespace Vocaluxe.Menu
return false; return false;
} }
private void LoadThemeBasics(XPathNavigator navigator, int SkinIndex) private void LoadThemeBasics(CXMLReader xmlReader, int SkinIndex)
{ {
string value = String.Empty; string value = String.Empty;
// Backgrounds // Backgrounds
CBackground background = new CBackground(_Base, _PartyModeID); CBackground background = new CBackground(_Base, _PartyModeID);
int i = 1; 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); AddBackground(background);
background = new CBackground(_Base, _PartyModeID); background = new CBackground(_Base, _PartyModeID);
@@ -2554,7 +2541,7 @@ namespace Vocaluxe.Menu
// Statics // Statics
CStatic stat = new CStatic(_Base, _PartyModeID); CStatic stat = new CStatic(_Base, _PartyModeID);
i = 1; i = 1;
while (stat.LoadTheme("//root/" + _ThemeName, "Static" + i.ToString(), navigator, SkinIndex)) while (stat.LoadTheme("//root/" + _ThemeName, "Static" + i.ToString(), xmlReader, SkinIndex))
{ {
AddStatic(stat); AddStatic(stat);
stat = new CStatic(_Base, _PartyModeID); stat = new CStatic(_Base, _PartyModeID);
@@ -2564,7 +2551,7 @@ namespace Vocaluxe.Menu
// Texts // Texts
CText text = new CText(_Base, _PartyModeID); CText text = new CText(_Base, _PartyModeID);
i = 1; i = 1;
while (text.LoadTheme("//root/" + _ThemeName, "Text" + i.ToString(), navigator, SkinIndex)) while (text.LoadTheme("//root/" + _ThemeName, "Text" + i.ToString(), xmlReader, SkinIndex))
{ {
AddText(text); AddText(text);
text = new CText(_Base, _PartyModeID); text = new CText(_Base, _PartyModeID);
@@ -2574,7 +2561,7 @@ namespace Vocaluxe.Menu
// ParticleEffects // ParticleEffects
CParticleEffect partef = new CParticleEffect(_Base, _PartyModeID); CParticleEffect partef = new CParticleEffect(_Base, _PartyModeID);
i = 1; i = 1;
while (partef.LoadTheme("//root/" + _ThemeName, "ParticleEffect" + i.ToString(), navigator, SkinIndex)) while (partef.LoadTheme("//root/" + _ThemeName, "ParticleEffect" + i.ToString(), xmlReader, SkinIndex))
{ {
AddParticleEffect(partef); AddParticleEffect(partef);
partef = new CParticleEffect(_Base, _PartyModeID); partef = new CParticleEffect(_Base, _PartyModeID);
+29 -30
View File
@@ -2,9 +2,8 @@
using System.Collections.Generic; using System.Collections.Generic;
using System.Drawing; using System.Drawing;
using System.Text; using System.Text;
using System.Xml;
using System.Xml.XPath;
using System.Windows.Forms; using System.Windows.Forms;
using System.Xml;
namespace Vocaluxe.Menu namespace Vocaluxe.Menu
{ {
@@ -109,54 +108,54 @@ namespace Vocaluxe.Menu
UpdateList(0); 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; string item = XmlPath + "/" + ElementName;
_ThemeLoaded = true; _ThemeLoaded = true;
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/X", navigator, ref Rect.X); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/X", ref Rect.X);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/Y", navigator, ref Rect.Y); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Y", ref Rect.Y);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/Z", navigator, ref Rect.Z); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Z", ref Rect.Z);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/W", navigator, ref Rect.W); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/W", ref Rect.W);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/H", navigator, ref Rect.H); _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); _ThemeLoaded &= _Base.Theme.GetColor(_Theme.ColorEmptyTileName, SkinIndex, ref ColorEmptyTile);
} }
else else
{ {
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/R", navigator, ref ColorEmptyTile.R); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/R", ref ColorEmptyTile.R);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/G", navigator, ref ColorEmptyTile.G); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/G", ref ColorEmptyTile.G);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/B", navigator, ref ColorEmptyTile.B); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/B", ref ColorEmptyTile.B);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/A", navigator, ref ColorEmptyTile.A); _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 &= xmlReader.TryGetIntValue(item + "/Tiles/W", ref _TileW);
_ThemeLoaded &= CHelper.TryGetIntValueFromXML(item + "/Tiles/H", navigator, ref _TileH); _ThemeLoaded &= xmlReader.TryGetIntValue(item + "/Tiles/H", ref _TileH);
_ThemeLoaded &= CHelper.TryGetIntValueFromXML(item + "/Tiles/NumW", navigator, ref _NumW); _ThemeLoaded &= xmlReader.TryGetIntValue(item + "/Tiles/NumW", ref _NumW);
_ThemeLoaded &= CHelper.TryGetIntValueFromXML(item + "/Tiles/NumH", navigator, ref _NumH); _ThemeLoaded &= xmlReader.TryGetIntValue(item + "/Tiles/NumH", ref _NumH);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/Tiles/SpaceW", navigator, ref _SpaceW); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Tiles/SpaceW", ref _SpaceW);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/Tiles/SpaceH", navigator, ref _SpaceH); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Tiles/SpaceH", ref _SpaceH);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/Tiles/Name/Space", navigator, ref _Theme.NameSpace); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Tiles/Name/Space", ref _Theme.NameSpace);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/Tiles/Name/H", navigator, ref _Theme.NameHeight); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Tiles/Name/H", ref _Theme.NameHeight);
_ThemeLoaded &= CHelper.GetValueFromXML(item + "/Tiles/Name/Font", navigator, ref _Theme.NameFont, "Normal"); _ThemeLoaded &= xmlReader.GetValue(item + "/Tiles/Name/Font", ref _Theme.NameFont, "Normal");
_ThemeLoaded &= CHelper.TryGetEnumValueFromXML<EStyle>(item + "/Tiles/Name/Style", navigator, ref _Theme.NameStyle); _ThemeLoaded &= xmlReader.TryGetEnumValue<EStyle>(item + "/Tiles/Name/Style", ref _Theme.NameStyle);
if (CHelper.GetValueFromXML(item + "/Tiles/Name/Color", navigator, ref _Theme.NameColorName, String.Empty)) if (xmlReader.GetValue(item + "/Tiles/Name/Color", ref _Theme.NameColorName, String.Empty))
{ {
_ThemeLoaded &= _Base.Theme.GetColor(_Theme.NameColorName, SkinIndex, ref _Theme.NameColor); _ThemeLoaded &= _Base.Theme.GetColor(_Theme.NameColorName, SkinIndex, ref _Theme.NameColor);
} }
else 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 &= xmlReader.TryGetFloatValue(item + "/Tiles/Name/G", ref _Theme.NameColor.G);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/Tiles/Name/B", navigator, ref _Theme.NameColor.B); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Tiles/Name/B", ref _Theme.NameColor.B);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/Tiles/Name/A", navigator, ref _Theme.NameColor.A); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Tiles/Name/A", ref _Theme.NameColor.A);
} }
} }
-2
View File
@@ -5,8 +5,6 @@ using System.Drawing;
using System.IO; using System.IO;
using System.Text; using System.Text;
using System.Windows.Forms; using System.Windows.Forms;
using System.Xml;
using System.Xml.XPath;
using Vocaluxe.Menu; using Vocaluxe.Menu;
using Vocaluxe.Menu.SingNotes; using Vocaluxe.Menu.SingNotes;
+15 -16
View File
@@ -3,7 +3,6 @@ using System.Collections.Generic;
using System.Diagnostics; using System.Diagnostics;
using System.Text; using System.Text;
using System.Xml; using System.Xml;
using System.Xml.XPath;
namespace Vocaluxe.Menu namespace Vocaluxe.Menu
{ {
@@ -381,34 +380,34 @@ namespace Vocaluxe.Menu
Visible = true; 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; string item = XmlPath + "/" + ElementName;
_ThemeLoaded = true; _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 &= xmlReader.TryGetFloatValue(item + "/X", ref Rect.X);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/Y", navigator, ref Rect.Y); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Y", ref Rect.Y);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/Z", navigator, ref Rect.Z); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Z", ref Rect.Z);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/W", navigator, ref Rect.W); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/W", ref Rect.W);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/H", navigator, ref Rect.H); _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); _ThemeLoaded &= _Base.Theme.GetColor(_Theme.ColorName, SkinIndex, ref Color);
} }
else else
{ {
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/R", navigator, ref Color.R); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/R", ref Color.R);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/G", navigator, ref Color.G); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/G", ref Color.G);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/B", navigator, ref Color.B); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/B", ref Color.B);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/A", navigator, ref Color.A); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/A", ref Color.A);
} }
_ThemeLoaded &= CHelper.TryGetEnumValueFromXML<EParticleType>(item + "/Type", navigator, ref _Type); _ThemeLoaded &= xmlReader.TryGetEnumValue<EParticleType>(item + "/Type", ref _Type);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/Size", navigator, ref _Size); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Size", ref _Size);
_ThemeLoaded &= CHelper.TryGetIntValueFromXML(item + "/MaxNumber", navigator, ref _MaxNumber); _ThemeLoaded &= xmlReader.TryGetIntValue(item + "/MaxNumber", ref _MaxNumber);
if (_ThemeLoaded) if (_ThemeLoaded)
{ {
+30 -31
View File
@@ -2,9 +2,8 @@
using System.Drawing; using System.Drawing;
using System.Collections.Generic; using System.Collections.Generic;
using System.Text; using System.Text;
using System.Xml;
using System.Xml.XPath;
using System.Windows.Forms; using System.Windows.Forms;
using System.Xml;
using Vocaluxe.Menu.SongMenu; using Vocaluxe.Menu.SongMenu;
@@ -236,57 +235,57 @@ namespace Vocaluxe.Menu
_Interactions.AddButton(_Theme.ButtonPlaylistSing); _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; string item = XmlPath + "/" + ElementName;
_ThemeLoaded = true; _ThemeLoaded = true;
_ThemeLoaded &= CHelper.GetValueFromXML(item + "/SkinBackground", navigator, ref _Theme.TextureBackgroundName, String.Empty); _ThemeLoaded &= xmlReader.GetValue(item + "/SkinBackground", ref _Theme.TextureBackgroundName, String.Empty);
_ThemeLoaded &= CHelper.GetValueFromXML(item + "/SkinBackgroundSelected", navigator, ref _Theme.STextureBackgroundName, String.Empty); _ThemeLoaded &= xmlReader.GetValue(item + "/SkinBackgroundSelected", ref _Theme.STextureBackgroundName, String.Empty);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/X", navigator, ref Rect.X); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/X", ref Rect.X);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/Y", navigator, ref Rect.Y); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Y", ref Rect.Y);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/Z", navigator, ref Rect.Z); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Z", ref Rect.Z);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/W", navigator, ref Rect.W); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/W", ref Rect.W);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/H", navigator, ref Rect.H); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/H", ref Rect.H);
if (CHelper.GetValueFromXML(item + "/ColorBackground", navigator, ref _Theme.ColorBackgroundName, String.Empty)) if (xmlReader.GetValue(item + "/ColorBackground", ref _Theme.ColorBackgroundName, String.Empty))
{ {
_ThemeLoaded &= _Base.Theme.GetColor(_Theme.ColorBackgroundName, SkinIndex, ref BackgroundColor); _ThemeLoaded &= _Base.Theme.GetColor(_Theme.ColorBackgroundName, SkinIndex, ref BackgroundColor);
} }
else else
{ {
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/BackgroundR", navigator, ref BackgroundColor.R); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/BackgroundR", ref BackgroundColor.R);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/BackgroundG", navigator, ref BackgroundColor.G); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/BackgroundG", ref BackgroundColor.G);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/BackgroundB", navigator, ref BackgroundColor.B); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/BackgroundB", ref BackgroundColor.B);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/BackgroundA", navigator, ref BackgroundColor.A); _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); _ThemeLoaded &= _Base.Theme.GetColor(_Theme.SColorBackgroundName, SkinIndex, ref BackgroundSColor);
} }
else else
{ {
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/SBackgroundR", navigator, ref BackgroundSColor.R); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SBackgroundR", ref BackgroundSColor.R);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/SBackgroundG", navigator, ref BackgroundSColor.G); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SBackgroundG", ref BackgroundSColor.G);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/SBackgroundB", navigator, ref BackgroundSColor.B); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SBackgroundB", ref BackgroundSColor.B);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/SBackgroundA", navigator, ref BackgroundSColor.A); _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.StaticCover.LoadTheme(item, "StaticCover", xmlReader, SkinIndex);
_ThemeLoaded &= _Theme.StaticPlaylistHeader.LoadTheme(item, "StaticPlaylistHeader", navigator, SkinIndex); _ThemeLoaded &= _Theme.StaticPlaylistHeader.LoadTheme(item, "StaticPlaylistHeader", xmlReader, SkinIndex);
_ThemeLoaded &= _Theme.StaticPlaylistFooter.LoadTheme(item, "StaticPlaylistFooter", navigator, SkinIndex); _ThemeLoaded &= _Theme.StaticPlaylistFooter.LoadTheme(item, "StaticPlaylistFooter", xmlReader, SkinIndex);
_ThemeLoaded &= _Theme.ButtonPlaylistName.LoadTheme(item, "ButtonPlaylistName", navigator, SkinIndex); _ThemeLoaded &= _Theme.ButtonPlaylistName.LoadTheme(item, "ButtonPlaylistName", xmlReader, SkinIndex);
_ThemeLoaded &= _Theme.ButtonPlaylistSing.LoadTheme(item, "ButtonPlaylistSing", navigator, SkinIndex); _ThemeLoaded &= _Theme.ButtonPlaylistSing.LoadTheme(item, "ButtonPlaylistSing", xmlReader, SkinIndex);
_ThemeLoaded &= _Theme.ButtonPlaylistClose.LoadTheme(item, "ButtonPlaylistClose", navigator, SkinIndex); _ThemeLoaded &= _Theme.ButtonPlaylistClose.LoadTheme(item, "ButtonPlaylistClose", xmlReader, SkinIndex);
_ThemeLoaded &= _Theme.ButtonPlaylistSave.LoadTheme(item, "ButtonPlaylistSave", navigator, SkinIndex); _ThemeLoaded &= _Theme.ButtonPlaylistSave.LoadTheme(item, "ButtonPlaylistSave", xmlReader, SkinIndex);
_ThemeLoaded &= _Theme.ButtonPlaylistDelete.LoadTheme(item, "ButtonPlaylistDelete", navigator, 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) if (_ThemeLoaded)
{ {
_Theme.Name = ElementName; _Theme.Name = ElementName;
+3 -4
View File
@@ -3,7 +3,6 @@ using System.Collections.Generic;
using System.Drawing; using System.Drawing;
using System.Text; using System.Text;
using System.Xml; using System.Xml;
using System.Xml.XPath;
namespace Vocaluxe.Menu namespace Vocaluxe.Menu
{ {
@@ -51,13 +50,13 @@ namespace Vocaluxe.Menu
_ThemeLoaded = ts._ThemeLoaded; _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; string item = XmlPath + "/" + ElementName;
_ThemeLoaded = true; _ThemeLoaded = true;
_ThemeLoaded &= CHelper.GetValueFromXML(item + "/Value", navigator, ref _Theme.Value, String.Empty); _ThemeLoaded &= xmlReader.GetValue(item + "/Value", ref _Theme.Value, String.Empty);
_ThemeLoaded &= CHelper.TryGetEnumValueFromXML<ESettingType>(item + "/Type", navigator, ref _Theme.Type); _ThemeLoaded &= xmlReader.TryGetEnumValue<ESettingType>(item + "/Type", ref _Theme.Type);
if (_ThemeLoaded) if (_ThemeLoaded)
{ {
+67 -68
View File
@@ -3,7 +3,6 @@ using System.Collections.Generic;
using System.Drawing; using System.Drawing;
using System.Text; using System.Text;
using System.Xml; using System.Xml;
using System.Xml.XPath;
namespace Vocaluxe.Menu namespace Vocaluxe.Menu
{ {
@@ -230,133 +229,133 @@ namespace Vocaluxe.Menu
Visible = slide.Visible; 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; string item = XmlPath + "/" + ElementName;
_ThemeLoaded = true; _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.GetValueFromXML(item + "/SkinArrowLeft", navigator, ref _Theme.TextureArrowLeftName, String.Empty); _ThemeLoaded &= xmlReader.GetValue(item + "/SkinArrowLeft", ref _Theme.TextureArrowLeftName, String.Empty);
_ThemeLoaded &= CHelper.GetValueFromXML(item + "/SkinArrowRight", navigator, ref _Theme.TextureArrowRightName, String.Empty); _ThemeLoaded &= xmlReader.GetValue(item + "/SkinArrowRight", ref _Theme.TextureArrowRightName, String.Empty);
_ThemeLoaded &= CHelper.GetValueFromXML(item + "/SkinSelected", navigator, ref _Theme.STextureName, String.Empty); _ThemeLoaded &= xmlReader.GetValue(item + "/SkinSelected", ref _Theme.STextureName, String.Empty);
_ThemeLoaded &= CHelper.GetValueFromXML(item + "/SkinArrowLeftSelected", navigator, ref _Theme.STextureArrowLeftName, String.Empty); _ThemeLoaded &= xmlReader.GetValue(item + "/SkinArrowLeftSelected", ref _Theme.STextureArrowLeftName, String.Empty);
_ThemeLoaded &= CHelper.GetValueFromXML(item + "/SkinArrowRightSelected", navigator, ref _Theme.STextureArrowRightName, 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 &= xmlReader.TryGetFloatValue(item + "/X", ref Rect.X);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/Y", navigator, ref Rect.Y); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Y", ref Rect.Y);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/Z", navigator, ref Rect.Z); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Z", ref Rect.Z);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/W", navigator, ref Rect.W); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/W", ref Rect.W);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/H", navigator, ref Rect.H); _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); _ThemeLoaded &= _Base.Theme.GetColor(_Theme.ColorName, SkinIndex, ref Color);
} }
else else
{ {
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/R", navigator, ref Color.R); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/R", ref Color.R);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/G", navigator, ref Color.G); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/G", ref Color.G);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/B", navigator, ref Color.B); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/B", ref Color.B);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/A", navigator, ref Color.A); _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); _ThemeLoaded &= _Base.Theme.GetColor(_Theme.SColorName, SkinIndex, ref SColor);
} }
else else
{ {
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/SR", navigator, ref SColor.R); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SR", ref SColor.R);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/SG", navigator, ref SColor.G); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SG", ref SColor.G);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/SB", navigator, ref SColor.B); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SB", ref SColor.B);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/SA", navigator, ref SColor.A); _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); _ThemeLoaded &= _Base.Theme.GetColor(_Theme.HColorName, SkinIndex, ref HColor);
} }
else else
{ {
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/HR", navigator, ref HColor.R); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/HR", ref HColor.R);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/HG", navigator, ref HColor.G); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/HG", ref HColor.G);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/HB", navigator, ref HColor.B); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/HB", ref HColor.B);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/HA", navigator, ref HColor.A); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/HA", ref HColor.A);
} }
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/ArrowLeftX", navigator, ref RectArrowLeft.X); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/ArrowLeftX", ref RectArrowLeft.X);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/ArrowLeftY", navigator, ref RectArrowLeft.Y); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/ArrowLeftY", ref RectArrowLeft.Y);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/ArrowLeftZ", navigator, ref RectArrowLeft.Z); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/ArrowLeftZ", ref RectArrowLeft.Z);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/ArrowLeftW", navigator, ref RectArrowLeft.W); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/ArrowLeftW", ref RectArrowLeft.W);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/ArrowLeftH", navigator, ref RectArrowLeft.H); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/ArrowLeftH", ref RectArrowLeft.H);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/ArrowRightX", navigator, ref RectArrowRight.X); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/ArrowRightX", ref RectArrowRight.X);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/ArrowRightY", navigator, ref RectArrowRight.Y); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/ArrowRightY", ref RectArrowRight.Y);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/ArrowRightZ", navigator, ref RectArrowRight.Z); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/ArrowRightZ", ref RectArrowRight.Z);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/ArrowRightW", navigator, ref RectArrowRight.W); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/ArrowRightW", ref RectArrowRight.W);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/ArrowRightH", navigator, ref RectArrowRight.H); _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); _ThemeLoaded &= _Base.Theme.GetColor(_Theme.ArrowColorName, SkinIndex, ref ColorArrow);
} }
else else
{ {
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/ArrowR", navigator, ref ColorArrow.R); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/ArrowR", ref ColorArrow.R);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/ArrowG", navigator, ref ColorArrow.G); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/ArrowG", ref ColorArrow.G);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/ArrowB", navigator, ref ColorArrow.B); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/ArrowB", ref ColorArrow.B);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/ArrowA", navigator, ref ColorArrow.A); _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); _ThemeLoaded &= _Base.Theme.GetColor(_Theme.SArrowColorName, SkinIndex, ref SColorArrow);
} }
else else
{ {
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/ArrowSR", navigator, ref SColorArrow.R); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/ArrowSR", ref SColorArrow.R);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/ArrowSG", navigator, ref SColorArrow.G); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/ArrowSG", ref SColorArrow.G);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/ArrowSB", navigator, ref SColorArrow.B); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/ArrowSB", ref SColorArrow.B);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/ArrowSA", navigator, ref SColorArrow.A); _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); _ThemeLoaded &= _Base.Theme.GetColor(_Theme.TextColorName, SkinIndex, ref TextColor);
} }
else else
{ {
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/TextR", navigator, ref TextColor.R); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/TextR", ref TextColor.R);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/TextG", navigator, ref TextColor.G); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/TextG", ref TextColor.G);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/TextB", navigator, ref TextColor.B); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/TextB", ref TextColor.B);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/TextA", navigator, ref TextColor.A); _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); _ThemeLoaded &= _Base.Theme.GetColor(_Theme.STextColorName, SkinIndex, ref STextColor);
} }
else else
{ {
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/TextSR", navigator, ref STextColor.R); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/TextSR", ref STextColor.R);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/TextSG", navigator, ref STextColor.G); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/TextSG", ref STextColor.G);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/TextSB", navigator, ref STextColor.B); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/TextSB", ref STextColor.B);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/TextSA", navigator, ref STextColor.A); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/TextSA", ref STextColor.A);
} }
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/TextH", navigator, ref TextH); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/TextH", ref TextH);
if(CHelper.TryGetFloatValueFromXML(item + "/TextRelativeX", navigator, ref TextRelativeX)) if(xmlReader.TryGetFloatValue(item + "/TextRelativeX", ref TextRelativeX))
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/TextRelativeX", navigator, ref TextRelativeX); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/TextRelativeX", ref TextRelativeX);
if(CHelper.TryGetFloatValueFromXML(item + "/TextRelativeY", navigator, ref TextRelativeY)) if(xmlReader.TryGetFloatValue(item + "/TextRelativeY", ref TextRelativeY))
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/TextRelativeY", navigator, ref TextRelativeY); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/TextRelativeY", ref TextRelativeY);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/TextMaxW", navigator, ref MaxW); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/TextMaxW", ref MaxW);
_ThemeLoaded &= CHelper.GetValueFromXML(item + "/TextFont", navigator, ref _Theme.TextFont, "Normal"); _ThemeLoaded &= xmlReader.GetValue(item + "/TextFont", ref _Theme.TextFont, "Normal");
_ThemeLoaded &= CHelper.TryGetEnumValueFromXML<EStyle>(item + "/TextStyle", navigator, ref _Theme.TextStyle); _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) if (_ThemeLoaded)
{ {
+15 -16
View File
@@ -3,7 +3,6 @@ using System.Collections.Generic;
using System.Drawing; using System.Drawing;
using System.Text; using System.Text;
using System.Xml; using System.Xml;
using System.Xml.XPath;
namespace Vocaluxe.Menu namespace Vocaluxe.Menu
{ {
@@ -132,36 +131,36 @@ namespace Vocaluxe.Menu
Visible = true; 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; string item = XmlPath + "/" + ElementName;
_ThemeLoaded = true; _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 &= xmlReader.TryGetFloatValue(item + "/X", ref Rect.X);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/Y", navigator, ref Rect.Y); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Y", ref Rect.Y);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/Z", navigator, ref Rect.Z); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Z", ref Rect.Z);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/W", navigator, ref Rect.W); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/W", ref Rect.W);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/H", navigator, ref Rect.H); _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); _ThemeLoaded &= _Base.Theme.GetColor(_Theme.ColorName, SkinIndex, ref Color);
} }
else else
{ {
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/R", navigator, ref Color.R); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/R", ref Color.R);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/G", navigator, ref Color.G); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/G", ref Color.G);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/B", navigator, ref Color.B); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/B", ref Color.B);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/A", navigator, ref Color.A); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/A", ref Color.A);
} }
if (CHelper.ItemExistsInXML(item + "/Reflection", navigator)) if (xmlReader.ItemExists(item + "/Reflection"))
{ {
Reflection = true; Reflection = true;
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/Reflection/Space", navigator, ref ReflectionSpace); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Reflection/Space", ref ReflectionSpace);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/Reflection/Height", navigator, ref ReflectionHeight); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Reflection/Height", ref ReflectionHeight);
} }
else else
Reflection = false; Reflection = false;
+26 -27
View File
@@ -3,7 +3,6 @@ using System.Collections.Generic;
using System.Drawing; using System.Drawing;
using System.Text; using System.Text;
using System.Xml; using System.Xml;
using System.Xml.XPath;
namespace Vocaluxe.Menu namespace Vocaluxe.Menu
{ {
@@ -471,63 +470,63 @@ namespace Vocaluxe.Menu
Reflection = false; 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; string item = XmlPath + "/" + ElementName;
_ThemeLoaded = true; _ThemeLoaded = true;
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/X", navigator, ref _X); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/X", ref _X);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/Y", navigator, ref _Y); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Y", ref _Y);
if (!ButtonText) 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); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/H", ref _Height);
CHelper.TryGetFloatValueFromXML(item + "/MaxW", navigator, ref _MaxWidth); 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); _ThemeLoaded &= _Base.Theme.GetColor(_Theme.ColorName, SkinIndex, ref Color);
} }
else else
{ {
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/R", navigator, ref Color.R); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/R", ref Color.R);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/G", navigator, ref Color.G); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/G", ref Color.G);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/B", navigator, ref Color.B); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/B", ref Color.B);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/A", navigator, ref Color.A); _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); _ThemeLoaded &= _Base.Theme.GetColor(_Theme.SColorName, SkinIndex, ref SColor);
} }
else 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 &= xmlReader.TryGetFloatValue(item + "/SG", ref SColor.G);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/SB", navigator, ref SColor.B); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SB", ref SColor.B);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/SA", navigator, ref SColor.A); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SA", ref SColor.A);
} }
} }
_ThemeLoaded &= CHelper.TryGetEnumValueFromXML<EAlignment>(item + "/Align", navigator, ref _Align); _ThemeLoaded &= xmlReader.TryGetEnumValue<EAlignment>(item + "/Align", ref _Align);
CHelper.TryGetEnumValueFromXML<EHAlignment>(item + "/HAlign", navigator, ref _HAlign); xmlReader.TryGetEnumValue<EHAlignment>(item + "/HAlign", ref _HAlign);
_ThemeLoaded &= CHelper.TryGetEnumValueFromXML<EStyle>(item + "/Style", navigator, ref _Style); _ThemeLoaded &= xmlReader.TryGetEnumValue<EStyle>(item + "/Style", ref _Style);
_ThemeLoaded &= CHelper.GetValueFromXML(item + "/Font", navigator, ref _Fon, "Normal"); _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; Reflection = true;
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/Reflection/Space", navigator, ref ReflectionSpace); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Reflection/Space", ref ReflectionSpace);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/Reflection/Height", navigator, ref ReflectionHeight); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Reflection/Height", ref ReflectionHeight);
} }
else else
Reflection = false; Reflection = false;
+221
View File
@@ -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;
}
}
}
+1 -2
View File
@@ -2,7 +2,6 @@
using System.Collections.Generic; using System.Collections.Generic;
using System.Text; using System.Text;
using System.Xml; using System.Xml;
using System.Xml.XPath;
namespace Vocaluxe.Menu namespace Vocaluxe.Menu
{ {
@@ -10,7 +9,7 @@ namespace Vocaluxe.Menu
{ {
string GetThemeName(); 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); bool SaveTheme(XmlWriter writer);
void UnloadTextures(); void UnloadTextures();
+1 -1
View File
@@ -636,7 +636,7 @@ namespace Vocaluxe.Menu.SingNotes
#region Methods #region Methods
public void AddLine(CLine Line) public void AddLine(CLine Line)
{ {
AddLine(Line, true); AddLine(Line, false);
} }
public void AddLine(CLine Line, bool updateTimings) public void AddLine(CLine Line, bool updateTimings)
{ {
+15 -16
View File
@@ -3,7 +3,6 @@ using System.Collections.Generic;
using System.Diagnostics; using System.Diagnostics;
using System.Text; using System.Text;
using System.Xml; using System.Xml;
using System.Xml.XPath;
namespace Vocaluxe.Menu.SingNotes namespace Vocaluxe.Menu.SingNotes
{ {
@@ -80,22 +79,22 @@ namespace Vocaluxe.Menu.SingNotes
return _Theme.Name; 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; string item = XmlPath + "/" + ElementName;
_ThemeLoaded = true; _ThemeLoaded = true;
_ThemeLoaded &= CHelper.GetValueFromXML(item + "/SkinLeft", navigator, ref _Theme.SkinLeftName, String.Empty); _ThemeLoaded &= xmlReader.GetValue(item + "/SkinLeft", ref _Theme.SkinLeftName, String.Empty);
_ThemeLoaded &= CHelper.GetValueFromXML(item + "/SkinMiddle", navigator, ref _Theme.SkinMiddleName, String.Empty); _ThemeLoaded &= xmlReader.GetValue(item + "/SkinMiddle", ref _Theme.SkinMiddleName, String.Empty);
_ThemeLoaded &= CHelper.GetValueFromXML(item + "/SkinRight", navigator, ref _Theme.SkinRightName, String.Empty); _ThemeLoaded &= xmlReader.GetValue(item + "/SkinRight", ref _Theme.SkinRightName, String.Empty);
_ThemeLoaded &= CHelper.GetValueFromXML(item + "/SkinBackgroundLeft", navigator, ref _Theme.SkinBackgroundLeftName, String.Empty); _ThemeLoaded &= xmlReader.GetValue(item + "/SkinBackgroundLeft", ref _Theme.SkinBackgroundLeftName, String.Empty);
_ThemeLoaded &= CHelper.GetValueFromXML(item + "/SkinBackgroundMiddle", navigator, ref _Theme.SkinBackgroundMiddleName, String.Empty); _ThemeLoaded &= xmlReader.GetValue(item + "/SkinBackgroundMiddle", ref _Theme.SkinBackgroundMiddleName, String.Empty);
_ThemeLoaded &= CHelper.GetValueFromXML(item + "/SkinBackgroundRight", navigator, ref _Theme.SkinBackgroundRightName, String.Empty); _ThemeLoaded &= xmlReader.GetValue(item + "/SkinBackgroundRight", ref _Theme.SkinBackgroundRightName, String.Empty);
_ThemeLoaded &= CHelper.GetValueFromXML(item + "/SkinGoldenStar", navigator, ref _Theme.SkinGoldenStarName, String.Empty); _ThemeLoaded &= xmlReader.GetValue(item + "/SkinGoldenStar", ref _Theme.SkinGoldenStarName, String.Empty);
_ThemeLoaded &= CHelper.GetValueFromXML(item + "/SkinToneHelper", navigator, ref _Theme.SkinToneHelperName, String.Empty); _ThemeLoaded &= xmlReader.GetValue(item + "/SkinToneHelper", ref _Theme.SkinToneHelperName, String.Empty);
_ThemeLoaded &= CHelper.GetValueFromXML(item + "/SkinPerfectNoteStar", navigator, ref _Theme.SkinPerfectNoteStarName, String.Empty); _ThemeLoaded &= xmlReader.GetValue(item + "/SkinPerfectNoteStar", ref _Theme.SkinPerfectNoteStarName, String.Empty);
_BarPos = new SRectF[_Base.Settings.GetMaxNumPlayer(), _Base.Settings.GetMaxNumPlayer()]; _BarPos = new SRectF[_Base.Settings.GetMaxNumPlayer(), _Base.Settings.GetMaxNumPlayer()];
for (int numplayer = 0; numplayer < _Base.Settings.GetMaxNumPlayer(); numplayer++) for (int numplayer = 0; numplayer < _Base.Settings.GetMaxNumPlayer(); numplayer++)
@@ -106,11 +105,11 @@ namespace Vocaluxe.Menu.SingNotes
{ {
_BarPos[player, numplayer] = new SRectF(); _BarPos[player, numplayer] = new SRectF();
string target = "/BarPositions/P" + (player + 1).ToString() + "N" + (numplayer + 1).ToString(); string target = "/BarPositions/P" + (player + 1).ToString() + "N" + (numplayer + 1).ToString();
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + target + "X", navigator, ref _BarPos[player, numplayer].X); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + target + "X", ref _BarPos[player, numplayer].X);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + target + "Y", navigator, ref _BarPos[player, numplayer].Y); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + target + "Y", ref _BarPos[player, numplayer].Y);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + target + "Z", navigator, ref _BarPos[player, numplayer].Z); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + target + "Z", ref _BarPos[player, numplayer].Z);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + target + "W", navigator, ref _BarPos[player, numplayer].W); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + target + "W", ref _BarPos[player, numplayer].W);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + target + "H", navigator, ref _BarPos[player, numplayer].H); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + target + "H", ref _BarPos[player, numplayer].H);
} }
} }
} }
+2 -3
View File
@@ -2,7 +2,6 @@
using System.Collections.Generic; using System.Collections.Generic;
using System.Text; using System.Text;
using System.Xml; using System.Xml;
using System.Xml.XPath;
using Vocaluxe.Menu; using Vocaluxe.Menu;
using Vocaluxe.PartyModes; using Vocaluxe.PartyModes;
@@ -166,9 +165,9 @@ namespace Vocaluxe.Menu.SongMenu
return _SongMenu.GetThemeName(); 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) public bool SaveTheme(XmlWriter writer)
+37 -38
View File
@@ -4,7 +4,6 @@ using System.Collections.Generic;
using System.IO; using System.IO;
using System.Text; using System.Text;
using System.Xml; using System.Xml;
using System.Xml.XPath;
using Vocaluxe.PartyModes; using Vocaluxe.PartyModes;
@@ -259,61 +258,61 @@ namespace Vocaluxe.Menu.SongMenu
return _Theme.Name; 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; string item = XmlPath + "/" + ElementName;
_ThemeLoaded = true; _ThemeLoaded = true;
_ThemeLoaded &= CHelper.GetValueFromXML(item + "/CoverBackground", navigator, ref _Theme.CoverBackgroundName, String.Empty); _ThemeLoaded &= xmlReader.GetValue(item + "/CoverBackground", ref _Theme.CoverBackgroundName, String.Empty);
_ThemeLoaded &= CHelper.GetValueFromXML(item + "/CoverBigBackground", navigator, ref _Theme.CoverBigBackgroundName, String.Empty); _ThemeLoaded &= xmlReader.GetValue(item + "/CoverBigBackground", ref _Theme.CoverBigBackgroundName, String.Empty);
_ThemeLoaded &= CHelper.GetValueFromXML(item + "/DuetIcon", navigator, ref _Theme.DuetIconName, String.Empty); _ThemeLoaded &= xmlReader.GetValue(item + "/DuetIcon", ref _Theme.DuetIconName, String.Empty);
_ThemeLoaded &= CHelper.GetValueFromXML(item + "/VideoIcon", navigator, ref _Theme.VideoIconName, String.Empty); _ThemeLoaded &= xmlReader.GetValue(item + "/VideoIcon", ref _Theme.VideoIconName, String.Empty);
_ThemeLoaded &= CHelper.GetValueFromXML(item + "/MedleyCalcIcon", navigator, ref _Theme.MedleyCalcIcon, String.Empty); _ThemeLoaded &= xmlReader.GetValue(item + "/MedleyCalcIcon", ref _Theme.MedleyCalcIcon, String.Empty);
_ThemeLoaded &= CHelper.GetValueFromXML(item + "/MedleyTagIcon", navigator, ref _Theme.MedleyTagIcon, 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); _ThemeLoaded &= _Base.Theme.GetColor(_Theme.ColorName, SkinIndex, ref _Color);
} }
else else
{ {
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/R", navigator, ref _Color.R); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/R", ref _Color.R);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/G", navigator, ref _Color.G); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/G", ref _Color.G);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/B", navigator, ref _Color.B); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/B", ref _Color.B);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/A", navigator, ref _Color.A); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/A", ref _Color.A);
} }
#region SongMenuTileBoard #region SongMenuTileBoard
_ThemeLoaded &= CHelper.TryGetIntValueFromXML(item + "/SongMenuTileBoard/NumW", navigator, ref _Theme.songMenuTileBoard.numW); _ThemeLoaded &= xmlReader.TryGetIntValue(item + "/SongMenuTileBoard/NumW", ref _Theme.songMenuTileBoard.numW);
_ThemeLoaded &= CHelper.TryGetIntValueFromXML(item + "/SongMenuTileBoard/NumH", navigator, ref _Theme.songMenuTileBoard.numH); _ThemeLoaded &= xmlReader.TryGetIntValue(item + "/SongMenuTileBoard/NumH", ref _Theme.songMenuTileBoard.numH);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/SongMenuTileBoard/SpaceW", navigator, ref _Theme.songMenuTileBoard.spaceW); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SongMenuTileBoard/SpaceW", ref _Theme.songMenuTileBoard.spaceW);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/SongMenuTileBoard/SpaceH", navigator, ref _Theme.songMenuTileBoard.spaceH); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SongMenuTileBoard/SpaceH", ref _Theme.songMenuTileBoard.spaceH);
_ThemeLoaded &= CHelper.TryGetIntValueFromXML(item + "/SongMenuTileBoard/NumWsmall", navigator, ref _Theme.songMenuTileBoard.numWsmall); _ThemeLoaded &= xmlReader.TryGetIntValue(item + "/SongMenuTileBoard/NumWsmall", ref _Theme.songMenuTileBoard.numWsmall);
_ThemeLoaded &= CHelper.TryGetIntValueFromXML(item + "/SongMenuTileBoard/NumHsmall", navigator, ref _Theme.songMenuTileBoard.numHsmall); _ThemeLoaded &= xmlReader.TryGetIntValue(item + "/SongMenuTileBoard/NumHsmall", ref _Theme.songMenuTileBoard.numHsmall);
_ThemeLoaded &= _Theme.songMenuTileBoard.TextArtist.LoadTheme(item + "/SongMenuTileBoard", "TextArtist", navigator, SkinIndex); _ThemeLoaded &= _Theme.songMenuTileBoard.TextArtist.LoadTheme(item + "/SongMenuTileBoard", "TextArtist", xmlReader, SkinIndex);
_ThemeLoaded &= _Theme.songMenuTileBoard.TextTitle.LoadTheme(item + "/SongMenuTileBoard", "TextTitle", navigator, SkinIndex); _ThemeLoaded &= _Theme.songMenuTileBoard.TextTitle.LoadTheme(item + "/SongMenuTileBoard", "TextTitle", xmlReader, SkinIndex);
_ThemeLoaded &= _Theme.songMenuTileBoard.TextSongLength.LoadTheme(item + "/SongMenuTileBoard", "TextSongLength", navigator, SkinIndex); _ThemeLoaded &= _Theme.songMenuTileBoard.TextSongLength.LoadTheme(item + "/SongMenuTileBoard", "TextSongLength", xmlReader, SkinIndex);
_ThemeLoaded &= _Theme.songMenuTileBoard.StaticCoverBig.LoadTheme(item + "/SongMenuTileBoard", "StaticCoverBig", navigator, SkinIndex); _ThemeLoaded &= _Theme.songMenuTileBoard.StaticCoverBig.LoadTheme(item + "/SongMenuTileBoard", "StaticCoverBig", xmlReader, SkinIndex);
_ThemeLoaded &= _Theme.songMenuTileBoard.StaticTextBG.LoadTheme(item + "/SongMenuTileBoard", "StaticTextBG", navigator, SkinIndex); _ThemeLoaded &= _Theme.songMenuTileBoard.StaticTextBG.LoadTheme(item + "/SongMenuTileBoard", "StaticTextBG", xmlReader, SkinIndex);
_ThemeLoaded &= _Theme.songMenuTileBoard.StaticDuetIcon.LoadTheme(item + "/SongMenuTileBoard", "StaticDuetIcon", navigator, SkinIndex); _ThemeLoaded &= _Theme.songMenuTileBoard.StaticDuetIcon.LoadTheme(item + "/SongMenuTileBoard", "StaticDuetIcon", xmlReader, SkinIndex);
_ThemeLoaded &= _Theme.songMenuTileBoard.StaticVideoIcon.LoadTheme(item + "/SongMenuTileBoard", "StaticVideoIcon", navigator, SkinIndex); _ThemeLoaded &= _Theme.songMenuTileBoard.StaticVideoIcon.LoadTheme(item + "/SongMenuTileBoard", "StaticVideoIcon", xmlReader, SkinIndex);
_ThemeLoaded &= _Theme.songMenuTileBoard.StaticMedleyCalcIcon.LoadTheme(item + "/SongMenuTileBoard", "StaticMedleyCalcIcon", navigator, SkinIndex); _ThemeLoaded &= _Theme.songMenuTileBoard.StaticMedleyCalcIcon.LoadTheme(item + "/SongMenuTileBoard", "StaticMedleyCalcIcon", xmlReader, SkinIndex);
_ThemeLoaded &= _Theme.songMenuTileBoard.StaticMedleyTagIcon.LoadTheme(item + "/SongMenuTileBoard", "StaticMedleyTagIcon", navigator, SkinIndex); _ThemeLoaded &= _Theme.songMenuTileBoard.StaticMedleyTagIcon.LoadTheme(item + "/SongMenuTileBoard", "StaticMedleyTagIcon", xmlReader, SkinIndex);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/SongMenuTileBoard/TileRectX", navigator, ref _Theme.songMenuTileBoard.TileRect.X); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SongMenuTileBoard/TileRectX", ref _Theme.songMenuTileBoard.TileRect.X);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/SongMenuTileBoard/TileRectY", navigator, ref _Theme.songMenuTileBoard.TileRect.Y); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SongMenuTileBoard/TileRectY", ref _Theme.songMenuTileBoard.TileRect.Y);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/SongMenuTileBoard/TileRectZ", navigator, ref _Theme.songMenuTileBoard.TileRect.Z); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SongMenuTileBoard/TileRectZ", ref _Theme.songMenuTileBoard.TileRect.Z);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/SongMenuTileBoard/TileRectW", navigator, ref _Theme.songMenuTileBoard.TileRect.W); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SongMenuTileBoard/TileRectW", ref _Theme.songMenuTileBoard.TileRect.W);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/SongMenuTileBoard/TileRectH", navigator, ref _Theme.songMenuTileBoard.TileRect.H); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SongMenuTileBoard/TileRectH", ref _Theme.songMenuTileBoard.TileRect.H);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/SongMenuTileBoard/TileRectSmallX", navigator, ref _Theme.songMenuTileBoard.TileRectSmall.X); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SongMenuTileBoard/TileRectSmallX", ref _Theme.songMenuTileBoard.TileRectSmall.X);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/SongMenuTileBoard/TileRectSmallY", navigator, ref _Theme.songMenuTileBoard.TileRectSmall.Y); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SongMenuTileBoard/TileRectSmallY", ref _Theme.songMenuTileBoard.TileRectSmall.Y);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/SongMenuTileBoard/TileRectSmallZ", navigator, ref _Theme.songMenuTileBoard.TileRectSmall.Z); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SongMenuTileBoard/TileRectSmallZ", ref _Theme.songMenuTileBoard.TileRectSmall.Z);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/SongMenuTileBoard/TileRectSmallW", navigator, ref _Theme.songMenuTileBoard.TileRectSmall.W); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SongMenuTileBoard/TileRectSmallW", ref _Theme.songMenuTileBoard.TileRectSmall.W);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/SongMenuTileBoard/TileRectSmallH", navigator, ref _Theme.songMenuTileBoard.TileRectSmall.H); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SongMenuTileBoard/TileRectSmallH", ref _Theme.songMenuTileBoard.TileRectSmall.H);
#endregion SongMenuTileBoard #endregion SongMenuTileBoard
+1
View File
@@ -126,6 +126,7 @@
<Compile Include="Menu\CStatic.cs" /> <Compile Include="Menu\CStatic.cs" />
<Compile Include="Menu\CText.cs" /> <Compile Include="Menu\CText.cs" />
<Compile Include="Menu\CScreenSetting.cs" /> <Compile Include="Menu\CScreenSetting.cs" />
<Compile Include="Menu\CXMLReader.cs" />
<Compile Include="Menu\IMenu.cs" /> <Compile Include="Menu\IMenu.cs" />
<Compile Include="Menu\IMenuElement.cs" /> <Compile Include="Menu\IMenuElement.cs" />
<Compile Include="Menu\SingNotes\CNotes.cs" /> <Compile Include="Menu\SingNotes\CNotes.cs" />