From 31380a5bd48d8a1a57249254c8f5f2ba793284db Mon Sep 17 00:00:00 2001 From: Mark Date: Mon, 28 Jul 2025 12:30:54 +0200 Subject: [PATCH] CDDASongLoader: Add sort tags --- src/device/cddasongloader.cpp | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/src/device/cddasongloader.cpp b/src/device/cddasongloader.cpp index e8e8fa838..57d07602b 100644 --- a/src/device/cddasongloader.cpp +++ b/src/device/cddasongloader.cpp @@ -248,24 +248,44 @@ void CDDASongLoader::LoadSongsFromCDDA() { g_free(tag); tag = nullptr; } + if (gst_tag_list_get_string(tags, GST_TAG_ALBUM_ARTIST_SORTNAME, &tag)) { + song.set_albumartistsort(QString::fromUtf8(tag)); + g_free(tag); + tag = nullptr; + } if (gst_tag_list_get_string(tags, GST_TAG_ARTIST, &tag)) { song.set_artist(QString::fromUtf8(tag)); g_free(tag); tag = nullptr; ++track_artist_tags; } + if (gst_tag_list_get_string(tags, GST_TAG_ARTIST_SORTNAME, &tag)) { + song.set_artistsort(QString::fromUtf8(tag)); + g_free(tag); + tag = nullptr; + } if (gst_tag_list_get_string(tags, GST_TAG_ALBUM, &tag)) { song.set_album(QString::fromUtf8(tag)); g_free(tag); tag = nullptr; ++track_album_tags; } + if (gst_tag_list_get_string(tags, GST_TAG_ALBUM_SORTNAME, &tag)) { + song.set_albumsort(QString::fromUtf8(tag)); + g_free(tag); + tag = nullptr; + } if (gst_tag_list_get_string(tags, GST_TAG_TITLE, &tag)) { song.set_title(QString::fromUtf8(tag)); g_free(tag); tag = nullptr; ++track_title_tags; } + if (gst_tag_list_get_string(tags, GST_TAG_TITLE_SORTNAME, &tag)) { + song.set_titlesort(QString::fromUtf8(tag)); + g_free(tag); + tag = nullptr; + } if (gst_tag_list_get_string(tags, GST_TAG_GENRE, &tag)) { song.set_genre(QString::fromUtf8(tag)); g_free(tag); @@ -276,6 +296,11 @@ void CDDASongLoader::LoadSongsFromCDDA() { g_free(tag); tag = nullptr; } + if (gst_tag_list_get_string(tags, GST_TAG_COMPOSER_SORTNAME, &tag)) { + song.set_composersort(QString::fromUtf8(tag)); + g_free(tag); + tag = nullptr; + } if (gst_tag_list_get_string(tags, GST_TAG_PERFORMER, &tag)) { song.set_performer(QString::fromUtf8(tag)); g_free(tag);