private void CheckFiles() { CHelper Helper = new CHelper(); if (this.CoverFileName == String.Empty) { List <string> files = Helper.ListFiles(this.Folder, "*.jpg", false); files.AddRange(Helper.ListFiles(this.Folder, "*.png", false)); foreach (String file in files) { if (Regex.IsMatch(file, @".[CO].", RegexOptions.IgnoreCase) && (Regex.IsMatch(file, @"" + Regex.Escape(this.Title), RegexOptions.IgnoreCase) || Regex.IsMatch(file, @"" + Regex.Escape(this.Artist), RegexOptions.IgnoreCase))) { this.CoverFileName = file; } } } if (this.BackgroundFileName == String.Empty) { List <string> files = Helper.ListFiles(this.Folder, "*.jpg", false); files.AddRange(Helper.ListFiles(this.Folder, "*.png", false)); foreach (String file in files) { if (Regex.IsMatch(file, @".[BG].", RegexOptions.IgnoreCase) && (Regex.IsMatch(file, @"" + Regex.Escape(this.Title), RegexOptions.IgnoreCase) || Regex.IsMatch(file, @"" + Regex.Escape(this.Artist), RegexOptions.IgnoreCase))) { this.BackgroundFileName = file; } } } }
public static bool ReadThemesFromFolder(string path, int partyModeID) { List <string> files = CHelper.ListFiles(path, "*.xml", false, true); List <CTheme> newThemes = new List <CTheme>(); foreach (string file in files) { CTheme theme; if (partyModeID < 0) { theme = new CBaseTheme(file); } else { theme = new CPartyTheme(file, partyModeID); } if (theme.Init()) { newThemes.Add(theme); } } if (newThemes.Count == 0) { CLog.LogError("No valid themes found in " + path); return(false); } if (partyModeID >= 0 && newThemes.Count(th => th.Name == CSettings.DefaultName) == 0) { CLog.LogError("Partymode misses default theme in " + path); return(false); } _Themes.AddRange(newThemes); return(true); }
public bool Init() { try { var xml = new CXmlDeserializer(); _Data = xml.Deserialize <STheme>(Path.Combine(_Folder, _FileName)); if (_Data.ThemeSystemVersion != _ThemeSystemVersion) { string errorMsg = _Data.ThemeSystemVersion < _ThemeSystemVersion ? "the file ist outdated!" : "the file is for newer program versions!"; errorMsg += " Current Version is " + _ThemeSystemVersion; throw new Exception(errorMsg); } } catch (Exception e) { CLog.LogError("Can't load theme \"" + _FileName + "\". Invalid file!", false, false, e); return(false); } string path = Path.Combine(_Folder, Name); List <string> files = CHelper.ListFiles(path, "*.xml"); // Load skins, succeed if at least 1 skin was loaded bool ok = false; foreach (string file in files) { CSkin skin = _GetNewSkin(path, file); if (skin.Init()) { _Skins.Add(skin.Name, skin); ok = true; } } return(ok); }
private void CheckFiles() { CHelper Helper = new CHelper(); if(this.CoverFileName == String.Empty){ List<string> files = Helper.ListFiles(this.Folder, "*.jpg", false); files.AddRange(Helper.ListFiles(this.Folder, "*.png", false)); foreach(String file in files) { if (Regex.IsMatch(file, @".[CO].", RegexOptions.IgnoreCase) && (Regex.IsMatch(file, @"" + Regex.Escape(this.Title), RegexOptions.IgnoreCase) || Regex.IsMatch(file, @"" + Regex.Escape(this.Artist), RegexOptions.IgnoreCase))) { this.CoverFileName = file; } } } if (this.BackgroundFileName == String.Empty) { List<string> files = Helper.ListFiles(this.Folder, "*.jpg", false); files.AddRange(Helper.ListFiles(this.Folder, "*.png", false)); foreach (String file in files) { if (Regex.IsMatch(file, @".[BG].", RegexOptions.IgnoreCase) && (Regex.IsMatch(file, @"" + Regex.Escape(this.Title), RegexOptions.IgnoreCase) || Regex.IsMatch(file, @"" + Regex.Escape(this.Artist), RegexOptions.IgnoreCase))) { this.BackgroundFileName = file; } } } }
private static void ListThemes() { CHelper Helper = new CHelper(); _Themes.Clear(); string path = Path.Combine(Directory.GetCurrentDirectory(), CSettings.sFolderThemes); List<string> files = Helper.ListFiles(path, "*.xml", false); foreach (string file in files) { bool loaded = false; XPathDocument xPathDoc = null; XPathNavigator navigator = null; try { xPathDoc = new XPathDocument(Path.Combine(path, file)); navigator = xPathDoc.CreateNavigator(); loaded = true; } catch (Exception e) { CLog.LogError("Error loading theme " + file + ": " + e.Message); loaded = false; if (navigator != null) navigator = null; if (xPathDoc != null) xPathDoc = null; } if (loaded) { Theme theme = new Theme(); int version = 0; CHelper.TryGetIntValueFromXML("//root/ThemeSystemVersion", navigator, ref version); if (version == ThemeSystemVersion) { CHelper.GetValueFromXML("//root/Info/Name", navigator, ref theme.Name, String.Empty); if (theme.Name != String.Empty) { CHelper.GetValueFromXML("//root/Info/Author", navigator, ref theme.Author, String.Empty); CHelper.GetValueFromXML("//root/Info/SkinFolder", navigator, ref theme.SkinFolder, String.Empty); CHelper.TryGetIntValueFromXML("//root/Info/ThemeVersionMajor", navigator, ref theme.ThemeVersionMajor); CHelper.TryGetIntValueFromXML("//root/Info/ThemeVersionMinor", navigator, ref theme.ThemeVersionMinor); theme.Path = path; theme.FileName = file; _Themes.Add(theme); } } else { string msg = "Can't load Theme \"" + file + "\", "; 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); } } } }
public static void ListSkins() { CHelper Helper = new CHelper(); int themeIndex = GetThemeIndex(); _Skins.Clear(); if (themeIndex < 0) { CLog.LogError("Error List Skins. Can't find Theme: " + CConfig.Theme); return; } Theme theme = _Themes[themeIndex]; string path = Path.Combine(theme.Path, theme.SkinFolder); List<string> files = Helper.ListFiles(path, "*.xml", false); foreach (string file in files) { bool loaded = false; XPathDocument xPathDoc = null; XPathNavigator navigator = null; try { xPathDoc = new XPathDocument(Path.Combine(path, file)); navigator = xPathDoc.CreateNavigator(); loaded = true; } catch (Exception e) { CLog.LogError("Error loading skin " + file + ": " + e.Message); loaded = false; if (navigator != null) navigator = null; if (xPathDoc != null) xPathDoc = null; } if (loaded) { Skin skin = new Skin(); int version = 0; CHelper.TryGetIntValueFromXML("//root/SkinSystemVersion", navigator, ref version); if (version == SkinSystemVersion) { CHelper.GetValueFromXML("//root/Info/Name", navigator, ref skin.Name, String.Empty); if (skin.Name != String.Empty) { CHelper.GetValueFromXML("//root/Info/Author", navigator, ref skin.Author, String.Empty); CHelper.TryGetIntValueFromXML("//root/Info/SkinVersionMajor", navigator, ref skin.SkinVersionMajor); CHelper.TryGetIntValueFromXML("//root/Info/SkinVersionMinor", navigator, ref skin.SkinVersionMinor); skin.Path = path; skin.FileName = file; skin.SkinList = new List<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.Add(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(); CLog.LogError(msg); } } } }
/// <summary> /// Loads all cover which are defined in the cover config file. /// </summary> private static void LoadCover(string coverThemeName) { SCoverTheme coverTheme = new SCoverTheme(); coverTheme = CoverTheme(coverThemeName); if (coverTheme.Name != String.Empty) { bool loaded = false; XPathDocument xPathDoc = null; XPathNavigator navigator = null; try { xPathDoc = new XPathDocument(Path.Combine(CSettings.sFolderCover, coverTheme.File)); navigator = xPathDoc.CreateNavigator(); loaded = true; } catch (Exception) { loaded = false; if (navigator != null) navigator = null; if (xPathDoc != null) xPathDoc = null; } if (loaded) { lock (_MutexCover) { _Cover.Clear(); List<string> cover = CHelper.GetValuesFromXML("Cover", navigator); for (int i = 0; i < cover.Count; i++) { SCover sk = new SCover(); string name = String.Empty; string value = String.Empty; CHelper.GetValueFromXML("//root/Cover/" + cover[i] + "/Name", navigator, ref name, String.Empty); CHelper.GetValueFromXML("//root/Cover/" + cover[i] + "/Path", navigator, ref value, String.Empty); sk.Name = name; sk.Value = Path.Combine(coverTheme.Folder,value); if (File.Exists(Path.Combine(CSettings.sFolderCover, Path.Combine(coverTheme.Folder, value)))) { sk.Texture = CDraw.AddTexture(Path.Combine(CSettings.sFolderCover, Path.Combine(coverTheme.Folder, value))); } else { sk.Texture = _NoCover; } _Cover.Add(sk); if (sk.Name == "NoCover") { _NoCover = sk.Texture; } } } } CHelper Helper = new CHelper(); List<string> files = new List<string>(); files.AddRange(Helper.ListFiles(Path.Combine(CSettings.sFolderCover, coverTheme.Folder), "*.png", true, true)); files.AddRange(Helper.ListFiles(Path.Combine(CSettings.sFolderCover, coverTheme.Folder), "*.jpg", true, true)); files.AddRange(Helper.ListFiles(Path.Combine(CSettings.sFolderCover, coverTheme.Folder), "*.jpeg", true, true)); files.AddRange(Helper.ListFiles(Path.Combine(CSettings.sFolderCover, coverTheme.Folder), "*.bmp", true, true)); foreach (string file in files) { string name = Path.GetFileNameWithoutExtension(file); if (!CoverExists(name)) { SCover sk = new SCover(); string value = String.Empty; sk.Name = name; sk.Value = Path.Combine(coverTheme.Folder,Path.GetFileName(file)); sk.Texture = CDraw.AddTexture(Path.Combine(CSettings.sFolderCover, sk.Value)); _Cover.Add(sk); } } } }
/// <summary> /// Loads all cover-themes to list. /// </summary> private static void LoadCoverThemes() { _CoverThemes.Clear(); CHelper Helper = new CHelper(); string path = CSettings.sFolderCover; List<string> files = Helper.ListFiles(path, "*.xml", false); foreach (string file in files) { bool loaded = false; XPathDocument xPathDoc = null; XPathNavigator navigator = null; try { xPathDoc = new XPathDocument(Path.Combine(path, file)); navigator = xPathDoc.CreateNavigator(); loaded = true; } catch (Exception) { loaded = false; if (navigator != null) navigator = null; if (xPathDoc != null) xPathDoc = null; } if (loaded) { SCoverTheme coverTheme = new SCoverTheme(); CHelper.GetValueFromXML("//root/Info/Name", navigator, ref coverTheme.Name, String.Empty); CHelper.GetValueFromXML("//root/Info/Folder", navigator, ref coverTheme.Folder, String.Empty); if (coverTheme.Folder != String.Empty && coverTheme.Name != String.Empty) { coverTheme.File = file; _CoverThemes.Add(coverTheme); } } } }