From a9b3e1d3f8a2475ed4d10788ade72eca8b89e378 Mon Sep 17 00:00:00 2001 From: Flamefire Date: Fri, 11 Oct 2013 14:39:23 +0200 Subject: [PATCH] Simplify song-image detection Store comment as 1 string --- VocaluxeLib/Extensions.cs | 7 ++++++- VocaluxeLib/Songs/CSong.cs | 14 ++++++++------ VocaluxeLib/Songs/CSongLoader.cs | 9 ++++----- 3 files changed, 18 insertions(+), 12 deletions(-) diff --git a/VocaluxeLib/Extensions.cs b/VocaluxeLib/Extensions.cs index f19e4b2b..8f2be91e 100644 --- a/VocaluxeLib/Extensions.cs +++ b/VocaluxeLib/Extensions.cs @@ -54,7 +54,7 @@ namespace VocaluxeLib /// /// /// - public static List GetSetBits(this int value) + public static IEnumerable GetSetBits(this int value) { var result = new List(); int curBit = 0; @@ -68,5 +68,10 @@ namespace VocaluxeLib } return result; } + + public static bool ContainsIgnoreCase(this string value, string other) + { + return value.IndexOf(other, StringComparison.CurrentCultureIgnoreCase) >= 0; + } } } \ No newline at end of file diff --git a/VocaluxeLib/Songs/CSong.cs b/VocaluxeLib/Songs/CSong.cs index 9833e963..6fab1f3b 100644 --- a/VocaluxeLib/Songs/CSong.cs +++ b/VocaluxeLib/Songs/CSong.cs @@ -124,7 +124,7 @@ namespace VocaluxeLib.Songs public float Gap; public float VideoGap; - private readonly List _Comment = new List(); + private string _Comment = ""; // Sorting public int ID; @@ -208,7 +208,7 @@ namespace VocaluxeLib.Songs Gap = song.Gap; VideoGap = song.VideoGap; - _Comment = new List(song._Comment); + _Comment = song._Comment; ID = song.ID; _Visible = song._Visible; @@ -271,11 +271,12 @@ namespace VocaluxeLib.Songs if (CoverFileName == "") { List files = CHelper.ListFiles(Folder, "*.jpg"); + files.AddRange(CHelper.ListFiles(Folder, "*.jpeg")); files.AddRange(CHelper.ListFiles(Folder, "*.png")); foreach (String file in files) { - if (Regex.IsMatch(file, @".[CO].", RegexOptions.IgnoreCase) && - (Regex.IsMatch(file, @"" + Regex.Escape(Title), RegexOptions.IgnoreCase) || Regex.IsMatch(file, @"" + Regex.Escape(Artist), RegexOptions.IgnoreCase))) + if (file.ContainsIgnoreCase("[CO]") && + (file.ContainsIgnoreCase(Title) || file.ContainsIgnoreCase(Artist))) CoverFileName = file; } } @@ -283,11 +284,12 @@ namespace VocaluxeLib.Songs if (BackgroundFileName == "") { List files = CHelper.ListFiles(Folder, "*.jpg"); + files.AddRange(CHelper.ListFiles(Folder, "*.jpeg")); files.AddRange(CHelper.ListFiles(Folder, "*.png")); foreach (String file in files) { - if (Regex.IsMatch(file, @".[BG].", RegexOptions.IgnoreCase) && - (Regex.IsMatch(file, @"" + Regex.Escape(Title), RegexOptions.IgnoreCase) || Regex.IsMatch(file, @"" + Regex.Escape(Artist), RegexOptions.IgnoreCase))) + if (file.ContainsIgnoreCase("[BG]") && + (file.ContainsIgnoreCase(Title) || file.ContainsIgnoreCase(Artist))) BackgroundFileName = file; } } diff --git a/VocaluxeLib/Songs/CSongLoader.cs b/VocaluxeLib/Songs/CSongLoader.cs index cef6e4dd..80395065 100644 --- a/VocaluxeLib/Songs/CSongLoader.cs +++ b/VocaluxeLib/Songs/CSongLoader.cs @@ -81,7 +81,7 @@ namespace VocaluxeLib.Songs _Song.Languages.Clear(); _Song.Genres.Clear(); - _Song._Comment.Clear(); + _Song._Comment = ""; var headerFlags = new EHeaderFlags(); StreamReader sr = null; @@ -196,10 +196,9 @@ namespace VocaluxeLib.Songs _LogWarning("Invalid language"); break; case "COMMENT": - if (value.Length > 1) - _Song._Comment.Add(value); - else - _LogWarning("Invalid comment"); + if (!String.IsNullOrEmpty(_Song._Comment)) + _Song._Comment += "\r\n"; + _Song._Comment += value; break; case "GAP": if (CHelper.TryParse(value, out _Song.Gap))