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))