From 622a3e478a2fb19c0d0b60b311b3dd6f1685ad8a Mon Sep 17 00:00:00 2001 From: Jan Suchomel Date: Sun, 18 Sep 2016 14:23:39 +0200 Subject: [PATCH] Add support for displaying lyrics from a Vorbis comment (#5495) * Added support for displaying lyrics from Vorbis Comments. * Fixed style issues --- ext/libclementine-tagreader/tagreader.cpp | 11 +++++++++++ src/songinfo/taglyricsinfoprovider.cpp | 2 +- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/ext/libclementine-tagreader/tagreader.cpp b/ext/libclementine-tagreader/tagreader.cpp index f95583338..a199ac565 100644 --- a/ext/libclementine-tagreader/tagreader.cpp +++ b/ext/libclementine-tagreader/tagreader.cpp @@ -568,6 +568,11 @@ void TagReader::ParseOggTag(const TagLib::Ogg::FieldListMap& map, .trimmed() .toFloat() * 100); + + if (!map["LYRICS"].isEmpty()) + Decode(map["LYRICS"].front(), codec, song->mutable_lyrics()); + else if (!map["UNSYNCEDLYRICS"].isEmpty()) + Decode(map["UNSYNCEDLYRICS"].front(), codec, song->mutable_lyrics()); } void TagReader::SetVorbisComments( @@ -593,9 +598,15 @@ void TagReader::SetVorbisComments( true); // Try to be coherent, the two forms are used but the first one is preferred + vorbis_comments->addField("ALBUMARTIST", StdStringToTaglibString(song.albumartist()), true); vorbis_comments->removeField("ALBUM ARTIST"); + + vorbis_comments->addField("LYRICS", + StdStringToTaglibString(song.lyrics()), true); + vorbis_comments->removeField("UNSYNCEDLYRICS"); + } void TagReader::SetFMPSStatisticsVorbisComments( diff --git a/src/songinfo/taglyricsinfoprovider.cpp b/src/songinfo/taglyricsinfoprovider.cpp index 587eb3040..9b76cac46 100644 --- a/src/songinfo/taglyricsinfoprovider.cpp +++ b/src/songinfo/taglyricsinfoprovider.cpp @@ -26,7 +26,7 @@ void TagLyricsInfoProvider::FetchInfo(int id, const Song& metadata) { if (!lyrics.isEmpty()) { CollapsibleInfoPane::Data data; data.id_ = "tag/lyrics"; - data.title_ = tr("Lyrics from the ID3v2 tag"); + data.title_ = tr("Lyrics from the tag"); data.type_ = CollapsibleInfoPane::Data::Type_Lyrics; SongInfoTextView* editor = new SongInfoTextView;