From f550a22740c7d15fab48993e4033844eff22d9ce Mon Sep 17 00:00:00 2001 From: Florian Ostertag Date: Thu, 30 Mar 2023 11:03:04 +0200 Subject: [PATCH 1/7] Change: Default encoding to UTF-8 without bom --- VocaluxeLib/Songs/CSong.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VocaluxeLib/Songs/CSong.cs b/VocaluxeLib/Songs/CSong.cs index 46fe2267..ae93a16c 100644 --- a/VocaluxeLib/Songs/CSong.cs +++ b/VocaluxeLib/Songs/CSong.cs @@ -88,7 +88,7 @@ namespace VocaluxeLib.Songs public SShortEnd ShortEnd; - public Encoding Encoding = Encoding.Default; + public Encoding Encoding = UTF8Encoding.UTF8Encoding(); public bool ManualEncoding; public string Folder = String.Empty; public string FolderName = String.Empty; From 8bd55b3ef2978b56f9b5f618deb19bdad5b90177 Mon Sep 17 00:00:00 2001 From: Florian Ostertag Date: Thu, 30 Mar 2023 11:18:34 +0200 Subject: [PATCH 2/7] Fix: Syntax error --- VocaluxeLib/Songs/CSong.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VocaluxeLib/Songs/CSong.cs b/VocaluxeLib/Songs/CSong.cs index ae93a16c..993ad6c9 100644 --- a/VocaluxeLib/Songs/CSong.cs +++ b/VocaluxeLib/Songs/CSong.cs @@ -88,7 +88,7 @@ namespace VocaluxeLib.Songs public SShortEnd ShortEnd; - public Encoding Encoding = UTF8Encoding.UTF8Encoding(); + public Encoding Encoding = new UTF8Encoding(); public bool ManualEncoding; public string Folder = String.Empty; public string FolderName = String.Empty; From 90a0d775867503815faff7642ddae71692d54827 Mon Sep 17 00:00:00 2001 From: Florian Ostertag Date: Thu, 23 Nov 2023 14:06:08 +0100 Subject: [PATCH 3/7] #642: Implemented reading of tags --- Vocaluxe/Base/CCover.cs | 2 ++ Vocaluxe/Base/CSongCategorizer.cs | 3 +++ Vocaluxe/Base/CSongSorter.cs | 3 +++ VocaluxeLib/Enums.cs | 2 ++ VocaluxeLib/Songs/CSong.cs | 2 ++ VocaluxeLib/Songs/CSongLoader.cs | 6 ++++++ VocaluxeLib/Songs/CSongWriter.cs | 1 + 7 files changed, 19 insertions(+) diff --git a/Vocaluxe/Base/CCover.cs b/Vocaluxe/Base/CCover.cs index 0a155740..e19484e0 100644 --- a/Vocaluxe/Base/CCover.cs +++ b/Vocaluxe/Base/CCover.cs @@ -246,6 +246,8 @@ namespace Vocaluxe.Base return ECoverGeneratorType.Edition; case ESongSorting.TR_CONFIG_GENRE: return ECoverGeneratorType.Genre; + case ESongSorting.TR_CONFIG_TAGS: + return ECoverGeneratorType.Tags; case ESongSorting.TR_CONFIG_LANGUAGE: return ECoverGeneratorType.Language; case ESongSorting.TR_CONFIG_YEAR: diff --git a/Vocaluxe/Base/CSongCategorizer.cs b/Vocaluxe/Base/CSongCategorizer.cs index 05a9dba4..860ecc07 100644 --- a/Vocaluxe/Base/CSongCategorizer.cs +++ b/Vocaluxe/Base/CSongCategorizer.cs @@ -142,6 +142,9 @@ namespace Vocaluxe.Base case ESongSorting.TR_CONFIG_GENRE: noCategoryName = CLanguage.Translate("TR_SCREENSONG_NOGENRE"); break; + case ESongSorting.TR_CONFIG_TAGS: + noCategoryName = CLanguage.Translate("TR_SCEENSONG_NOTAGS"); + break; case ESongSorting.TR_CONFIG_LANGUAGE: noCategoryName = CLanguage.Translate("TR_SCREENSONG_NOLANGUAGE"); break; diff --git a/Vocaluxe/Base/CSongSorter.cs b/Vocaluxe/Base/CSongSorter.cs index 8a956107..53c02fae 100644 --- a/Vocaluxe/Base/CSongSorter.cs +++ b/Vocaluxe/Base/CSongSorter.cs @@ -136,6 +136,9 @@ namespace Vocaluxe.Base case ESongSorting.TR_CONFIG_GENRE: values = song.Genres; break; + case ESongSorting.TR_CONFIG_TAGS: + values = song.Tags; + break; case ESongSorting.TR_CONFIG_LANGUAGE: values = song.Languages; break; diff --git a/VocaluxeLib/Enums.cs b/VocaluxeLib/Enums.cs index 39e8399f..1de6327d 100644 --- a/VocaluxeLib/Enums.cs +++ b/VocaluxeLib/Enums.cs @@ -28,6 +28,7 @@ namespace VocaluxeLib Letter, Edition, Genre, + Tags, Language, Year, Decade, @@ -224,6 +225,7 @@ namespace VocaluxeLib TR_CONFIG_TITLE_LETTER, TR_CONFIG_EDITION, TR_CONFIG_GENRE, + TR_CONFIG_TAGS, TR_CONFIG_LANGUAGE, TR_CONFIG_YEAR, TR_CONFIG_DECADE, diff --git a/VocaluxeLib/Songs/CSong.cs b/VocaluxeLib/Songs/CSong.cs index 993ad6c9..50310f5e 100644 --- a/VocaluxeLib/Songs/CSong.cs +++ b/VocaluxeLib/Songs/CSong.cs @@ -167,6 +167,7 @@ namespace VocaluxeLib.Songs public readonly List Editions = new List(); public readonly List Genres = new List(); + public readonly List Tags = new List(); public string Album = ""; public string Year = ""; @@ -261,6 +262,7 @@ namespace VocaluxeLib.Songs Editions = new List(song.Editions); Genres = new List(song.Genres); + Tags = new List(song.Tags); Album = song.Album; Year = song.Year; diff --git a/VocaluxeLib/Songs/CSongLoader.cs b/VocaluxeLib/Songs/CSongLoader.cs index b2374e1d..92a21a72 100644 --- a/VocaluxeLib/Songs/CSongLoader.cs +++ b/VocaluxeLib/Songs/CSongLoader.cs @@ -228,6 +228,12 @@ namespace VocaluxeLib.Songs else _LogWarning("Invalid genre"); break; + case "TAGS": + if (value.Length > 1) + _Song.Tags.AddRange(value.Split(',')); + else + _LogWarning("Invalid tags"); + break; case "ALBUM": _Song.Album = value; break; diff --git a/VocaluxeLib/Songs/CSongWriter.cs b/VocaluxeLib/Songs/CSongWriter.cs index 7d5eb4ca..e0c97031 100644 --- a/VocaluxeLib/Songs/CSongWriter.cs +++ b/VocaluxeLib/Songs/CSongWriter.cs @@ -87,6 +87,7 @@ namespace VocaluxeLib.Songs _WriteHeaderEntry("ARTIST-ON-SORTING", _Song.ArtistSorting); _WriteHeaderEntrys("EDITION", _Song.Editions); _WriteHeaderEntrys("GENRE", _Song.Genres); + _WriteHeaderEntry("TAGS", String.Join(",", _Song.Tags.ToArray())); _WriteHeaderEntrys("LANGUAGE", _Song.Languages); _WriteHeaderEntry("ALBUM", _Song.Album); _WriteHeaderEntry("YEAR", _Song.Year); From ebba72af1ed54c60b6e9a8e251f22dccbbb43b98 Mon Sep 17 00:00:00 2001 From: Florian Ostertag Date: Thu, 23 Nov 2023 14:22:35 +0100 Subject: [PATCH 4/7] #642: Fix merge conflict --- VocaluxeLib/Songs/CSongLoader.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VocaluxeLib/Songs/CSongLoader.cs b/VocaluxeLib/Songs/CSongLoader.cs index 79114cfd..f35d5b48 100644 --- a/VocaluxeLib/Songs/CSongLoader.cs +++ b/VocaluxeLib/Songs/CSongLoader.cs @@ -214,7 +214,7 @@ namespace VocaluxeLib.Songs if (value.Length > 1) _Song.Tags.AddRange(value.Split(',')); else - _LogWarning("Invalid tags"); + CLog.CSongLog.Warning("[{SongFileName}] Invalid tags: {Value}", CLog.Params(_Song.FileName, value)); break; case "ALBUM": _Song.Album = value; From 3e4f0931453bb9d49eb056f27216e128de5f9508 Mon Sep 17 00:00:00 2001 From: Florian Ostertag Date: Mon, 8 Jan 2024 20:54:54 +0100 Subject: [PATCH 5/7] Update en.xml --- Output/Languages/en.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/Output/Languages/en.xml b/Output/Languages/en.xml index b315840e..f1cd75e3 100644 --- a/Output/Languages/en.xml +++ b/Output/Languages/en.xml @@ -65,6 +65,7 @@ Artist by letter Title by letter Edition + Tags Genre Year Decade From 5cc4ec212ba3c73c455ff4ca10f4efa361058bca Mon Sep 17 00:00:00 2001 From: Florian Ostertag Date: Tue, 9 Jan 2024 10:36:27 +0100 Subject: [PATCH 6/7] Update en.xml --- Output/Languages/en.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/Output/Languages/en.xml b/Output/Languages/en.xml index f1cd75e3..8ada8fe4 100644 --- a/Output/Languages/en.xml +++ b/Output/Languages/en.xml @@ -149,6 +149,7 @@ No Year No Genre No Edition + No Tags All Songs (%v songs) (%v song) From 4a896b6feaf476128a45def226d54fd8c42688b7 Mon Sep 17 00:00:00 2001 From: Florian Ostertag Date: Tue, 9 Jan 2024 10:37:03 +0100 Subject: [PATCH 7/7] Fix typo --- Vocaluxe/Base/CSongCategorizer.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Vocaluxe/Base/CSongCategorizer.cs b/Vocaluxe/Base/CSongCategorizer.cs index 860ecc07..8354cd3f 100644 --- a/Vocaluxe/Base/CSongCategorizer.cs +++ b/Vocaluxe/Base/CSongCategorizer.cs @@ -143,7 +143,7 @@ namespace Vocaluxe.Base noCategoryName = CLanguage.Translate("TR_SCREENSONG_NOGENRE"); break; case ESongSorting.TR_CONFIG_TAGS: - noCategoryName = CLanguage.Translate("TR_SCEENSONG_NOTAGS"); + noCategoryName = CLanguage.Translate("TR_SCREENSONG_NOTAGS"); break; case ESongSorting.TR_CONFIG_LANGUAGE: noCategoryName = CLanguage.Translate("TR_SCREENSONG_NOLANGUAGE"); @@ -189,4 +189,4 @@ namespace Vocaluxe.Base _Changed = false; } } -} \ No newline at end of file +}